diff --git a/src/skills/skills.dataset.ts b/src/skills/skills.dataset.ts index f358ab3..5f5c849 100644 --- a/src/skills/skills.dataset.ts +++ b/src/skills/skills.dataset.ts @@ -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[], }; diff --git a/src/skills/skills.service.spec.ts b/src/skills/skills.service.spec.ts index 0cb82a6..f8f4d28 100644 --- a/src/skills/skills.service.spec.ts +++ b/src/skills/skills.service.spec.ts @@ -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, }, ]); diff --git a/src/skills/skills.service.ts b/src/skills/skills.service.ts index ef1407e..64f6535 100644 --- a/src/skills/skills.service.ts +++ b/src/skills/skills.service.ts @@ -15,12 +15,14 @@ export class SkillsService { getMany(filter?: Partial) { 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]))) + ); } } diff --git a/src/skills/skills.types.ts b/src/skills/skills.types.ts index e888b74..9288f11 100644 --- a/src/skills/skills.types.ts +++ b/src/skills/skills.types.ts @@ -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() implements SkillType { @@ -14,6 +16,8 @@ export class SkillDto extends DtoClass() 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() implements SkillTy name: skill.name, category: skill.category, descriptions: skill.description, + stars: skill.stars, }); } }