Added a skill rating to all skills

This commit is contained in:
Thom Werring 2023-10-27 18:30:05 +02:00
parent f37bcad333
commit 6d7b0220a1
4 changed files with 33 additions and 2 deletions

View file

@ -8,115 +8,136 @@ export default {
description:
"Efficiently manage Git repositories, handling pull/merge requests, and ensuring version control integrity.",
category: "Version control systems",
stars: 4,
},
{
name: "NodeJs, TypeScript, and Javascript",
description: "Develop and maintain scalable microservices using NodeJs, TypeScript, and Javascript.",
category: "Programming languages",
stars: 5,
},
{
name: "Docker",
description:
"Containerize and orchestrate microservices in local development environments using Docker.",
category: "Containerization",
stars: 5,
},
{
name: "Kubernetes",
description: "Deploy and manage containerized microservices on AWS (EKS) using Kubernetes.",
category: "Containerization",
stars: 4,
},
{
name: "EKS",
description: "Administer and optimize Elastic Kubernetes Service (EKS) on AWS.",
category: "AWS",
stars: 3,
},
{
name: "API Gateway",
description: "Design, implement, and deploy cloud-based applications using API Gateway on AWS.",
category: "AWS",
stars: 3,
},
{
name: "Lambda",
description: "Develop and deploy serverless cloud-based applications using Lambda on AWS.",
category: "AWS",
stars: 3,
},
{
name: "CloudWatch",
description: "Monitor and analyze cloud-based applications using CloudWatch on AWS.",
category: "AWS",
stars: 4,
},
{
name: "ElasticSearch, Logstash and Kibana (ELK Stack)",
description:
"Extract valuable insights and generate comprehensive statistics from SaaS platform data using the ELK Stack.",
category: "Business Intelligence",
stars: 3,
},
{
name: "CI/CD pipelines",
description: "Automate testing, building, and deployment processes using CI/CD pipelines.",
category: "DevOps",
stars: 5,
},
{
name: "Server Management",
description: "Configure, maintain, and troubleshoot hosting servers to ensure optimal performance.",
category: "DevOps",
stars: 5,
},
{
name: "Webhosting",
description: "Provision and manage web hosting environments for websites and email services.",
category: "DevOps",
stars: 3,
},
{
name: "Web development",
description: "Design and develop custom WordPress websites using industry best practices.",
category: "Web development",
stars: 2,
},
{
name: "PHP",
description: "Build and maintain dynamic websites and applications using PHP Laravel framework.",
category: "Programming languages",
stars: 4,
},
{
name: "One-on-ones",
description:
"Conduct regular one-on-one meetings with junior developers and interns to guide their professional growth.",
category: "Team Management",
stars: 4,
},
{
name: "Scrum Master",
description:
"Facilitate Scrum meetings, manage sprint backlogs, refine user stories, and collaborate with the Product Owner.",
category: "Collaboration",
stars: 2,
},
{
name: "Finances",
description:
"Oversee financial operations, manage budgets, and ensure financial compliance for a student organization.",
category: "Finance",
stars: 2,
},
{
name: "Event Organization",
description:
"Plan, organize, and execute educational events for students, ensuring engaging and informative experiences.",
category: "Organization",
stars: 3,
},
{
name: "Communication",
description:
"Effectively communicate ideas and information both verbally and in writing, adapting communication style to suit the audience and purpose.",
category: "Collaboration",
stars: 4,
},
{
name: "Problem-solving",
description:
"Apply analytical and creative thinking to identify, analyze, and resolve complex technical challenges, considering multiple perspectives and potential solutions.",
category: "Problem-solving",
stars: 5,
},
{
name: "Teamwork",
description:
"Collaborate effectively with team members in a Scrum environment, sharing knowledge, providing constructive feedback, and contributing to a positive and productive team dynamic.",
category: "Collaboration",
stars: 5,
},
] satisfies SkillType[],
};

View file

@ -15,16 +15,19 @@ describe("SkillsService", () => {
name: "Writing tests",
description: "Writing tests",
category: "Testing",
stars: 5,
},
{
name: "TDD",
description: "Test Driven Development",
category: "Testing",
stars: 5,
},
{
name: "OOP",
description: "Object Orientated Programming",
category: "Programming style",
stars: 5,
},
]);

View file

@ -15,12 +15,14 @@ export class SkillsService {
getMany(filter?: Partial<SkillType>) {
const filtersValues = Object.entries(filter ?? {}).map(([key, filterValue]) => [
key,
new RegExp(filterValue, "i"),
new RegExp(String(filterValue), "i"),
]) as Array<[keyof SkillType, RegExp]>;
if (!filter || filtersValues.length === 0) {
return this.skills;
}
return this.skills.filter((skill) => filtersValues.some(([key, filterValue]) => filterValue.test(skill[key])));
return this.skills.filter((skill) =>
filtersValues.some(([key, filterValue]) => filterValue.test(String(skill[key])))
);
}
}

View file

@ -1,10 +1,12 @@
import { ApiProperty } from "@nestjs/swagger";
import { DtoClass } from "@/common/dtoClass.factory";
type StarRating = 0 | 1 | 2 | 3 | 4 | 5;
export type SkillType = {
name: string;
category: string;
description: string;
stars: StarRating;
};
export class SkillDto extends DtoClass<SkillType, SkillDto>() implements SkillType {
@ -14,6 +16,8 @@ export class SkillDto extends DtoClass<SkillType, SkillDto>() implements SkillTy
readonly category: string;
@ApiProperty()
readonly description: string;
@ApiProperty()
readonly stars: StarRating;
constructor(skill: SkillType) {
super(skill);
@ -21,6 +25,7 @@ export class SkillDto extends DtoClass<SkillType, SkillDto>() implements SkillTy
name: skill.name,
category: skill.category,
descriptions: skill.description,
stars: skill.stars,
});
}
}