1
0
mirror of https://github.com/kamranahmedse/developer-roadmap.git synced 2025-09-01 05:21:43 +02:00

Filtering of roadmaps

This commit is contained in:
Kamran Ahmed
2024-03-29 17:17:58 +00:00
parent 40c8bfc312
commit e4e0f9ac98

View File

@@ -25,6 +25,7 @@ type GroupType = {
title: string; title: string;
link: string; link: string;
type: 'role' | 'skill'; type: 'role' | 'skill';
otherGroups?: AllowGroupNames[];
}[]; }[];
}; };
@@ -49,7 +50,7 @@ const groups: GroupType[] = [
}, },
{ {
title: 'Full-Stack Developer', title: 'Full-Stack Developer',
link: '/fullstack', link: '/full-stack',
type: 'role', type: 'role',
}, },
], ],
@@ -61,11 +62,13 @@ const groups: GroupType[] = [
title: 'Frontend', title: 'Frontend',
link: '/frontend', link: '/frontend',
type: 'role', type: 'role',
otherGroups: ['Web Development'],
}, },
{ {
title: 'Backend', title: 'Backend',
link: '/backend', link: '/backend',
type: 'role', type: 'role',
otherGroups: ['Web Development'],
}, },
{ {
title: 'DevOps', title: 'DevOps',
@@ -76,6 +79,7 @@ const groups: GroupType[] = [
title: 'Full Stack', title: 'Full Stack',
link: '/full-stack', link: '/full-stack',
type: 'role', type: 'role',
otherGroups: ['Web Development'],
}, },
{ {
title: 'QA', title: 'QA',
@@ -86,81 +90,7 @@ const groups: GroupType[] = [
title: 'GraphQL', title: 'GraphQL',
link: '/graphql', link: '/graphql',
type: 'skill', type: 'skill',
}, otherGroups: ['Web Development'],
],
},
{
group: 'DevOps',
roadmaps: [
{
title: 'DevOps',
link: '/devops',
type: 'role',
},
{
title: 'Docker',
link: '/docker',
type: 'skill',
},
{
title: 'Kubernetes',
link: '/kubernetes',
type: 'skill',
},
{
title: 'AWS',
link: '/aws',
type: 'skill',
},
],
},
{
group: 'Languages / Platforms',
roadmaps: [
{
title: 'JavaScript',
link: '/javascript',
type: 'skill',
},
{
title: 'TypeScript',
link: '/typescript',
type: 'skill',
},
{
title: 'Node.js',
link: '/nodejs',
type: 'skill',
},
{
title: 'C++',
link: '/cpp',
type: 'skill',
},
{
title: 'Go',
link: '/golang',
type: 'skill',
},
{
title: 'Rust',
link: '/rust',
type: 'skill',
},
{
title: 'Python',
link: '/python',
type: 'skill',
},
{
title: 'Java',
link: '/java',
type: 'skill',
},
{
title: 'SQL',
link: '/sql',
type: 'skill',
}, },
], ],
}, },
@@ -171,32 +101,129 @@ const groups: GroupType[] = [
title: 'React', title: 'React',
link: '/react', link: '/react',
type: 'skill', type: 'skill',
otherGroups: ['Web Development'],
}, },
{ {
title: 'Vue', title: 'Vue',
link: '/vue', link: '/vue',
type: 'skill', type: 'skill',
otherGroups: ['Web Development'],
}, },
{ {
title: 'Angular', title: 'Angular',
link: '/angular', link: '/angular',
type: 'skill', type: 'skill',
otherGroups: ['Web Development'],
}, },
{ {
title: 'Spring Boot', title: 'Spring Boot',
link: '/spring-boot', link: '/spring-boot',
type: 'skill', type: 'skill',
otherGroups: ['Web Development'],
}, },
{ {
title: 'ASP.NET Core', title: 'ASP.NET Core',
link: '/aspnet-core', link: '/aspnet-core',
type: 'skill', type: 'skill',
otherGroups: ['Web Development'],
},
],
},
{
group: 'DevOps',
roadmaps: [
{
title: 'DevOps',
link: '/devops',
type: 'role',
otherGroups: ['Web Development'],
},
{
title: 'Docker',
link: '/docker',
type: 'skill',
otherGroups: ['Web Development'],
},
{
title: 'Kubernetes',
link: '/kubernetes',
type: 'skill',
otherGroups: ['Web Development'],
},
{
title: 'AWS',
link: '/aws',
type: 'skill',
otherGroups: ['Web Development'],
},
],
},
{
group: 'Languages / Platforms',
roadmaps: [
{
title: 'JavaScript',
link: '/javascript',
type: 'skill',
otherGroups: ['Web Development', 'DevOps', 'Mobile Development'],
},
{
title: 'TypeScript',
link: '/typescript',
type: 'skill',
otherGroups: ['Web Development', 'Mobile Development'],
},
{
title: 'Node.js',
link: '/nodejs',
type: 'skill',
otherGroups: ['Web Development', 'DevOps'],
},
{
title: 'C++',
link: '/cpp',
type: 'skill',
},
{
title: 'Go',
link: '/golang',
type: 'skill',
otherGroups: ['Web Development', 'DevOps'],
},
{
title: 'Rust',
link: '/rust',
type: 'skill',
otherGroups: ['Web Development', 'DevOps'],
},
{
title: 'Python',
link: '/python',
type: 'skill',
otherGroups: ['Web Development', 'DevOps'],
},
{
title: 'Java',
link: '/java',
type: 'skill',
otherGroups: ['Web Development'],
},
{
title: 'SQL',
link: '/sql',
type: 'skill',
otherGroups: ['Web Development', 'Databases', 'DevOps'],
}, },
], ],
}, },
{ {
group: 'Mobile Development', group: 'Mobile Development',
roadmaps: [ roadmaps: [
{
title: 'Android',
link: '/android',
type: 'role',
},
{ {
title: 'React Native', title: 'React Native',
link: '/react-native', link: '/react-native',
@@ -207,11 +234,6 @@ const groups: GroupType[] = [
link: '/flutter', link: '/flutter',
type: 'role', type: 'role',
}, },
{
title: 'Android',
link: '/android',
type: 'role',
},
], ],
}, },
{ {
@@ -221,11 +243,13 @@ const groups: GroupType[] = [
title: 'PostgreSQL', title: 'PostgreSQL',
link: '/postgresql-dba', link: '/postgresql-dba',
type: 'role', type: 'role',
otherGroups: ['Web Development'],
}, },
{ {
title: 'MongoDB', title: 'MongoDB',
link: '/mongodb', link: '/mongodb',
type: 'skill', type: 'skill',
otherGroups: ['Web Development'],
}, },
], ],
}, },
@@ -236,31 +260,37 @@ const groups: GroupType[] = [
title: 'Computer Science', title: 'Computer Science',
link: '/computer-science', link: '/computer-science',
type: 'skill', type: 'skill',
otherGroups: ['Web Development'],
}, },
{ {
title: 'Data Structures', title: 'Data Structures',
link: '/data-structures-and-algorithms', link: '/data-structures-and-algorithms',
type: 'skill', type: 'skill',
otherGroups: ['Web Development'],
}, },
{ {
title: 'System Design', title: 'System Design',
link: '/system-design', link: '/system-design',
type: 'skill', type: 'skill',
otherGroups: ['Web Development'],
}, },
{ {
title: 'Design and Architecture', title: 'Design and Architecture',
link: '/software-design-architecture', link: '/software-design-architecture',
type: 'skill', type: 'skill',
otherGroups: ['Web Development'],
}, },
{ {
title: 'Software Architect', title: 'Software Architect',
link: '/software-architect', link: '/software-architect',
type: 'role', type: 'role',
otherGroups: ['Web Development'],
}, },
{ {
title: 'Code Review', title: 'Code Review',
link: '/code-review', link: '/code-review',
type: 'skill', type: 'skill',
otherGroups: ['Web Development'],
}, },
{ {
title: 'Technical Writer', title: 'Technical Writer',
@@ -316,6 +346,7 @@ const groups: GroupType[] = [
title: 'Design System', title: 'Design System',
link: '/design-system', link: '/design-system',
type: 'skill', type: 'skill',
otherGroups: ['Web Development'],
}, },
], ],
}, },
@@ -368,7 +399,25 @@ export function RoadmapsPage() {
const group = groups.find((group) => group.group === activeGroup); const group = groups.find((group) => group.group === activeGroup);
if (group) { if (group) {
setVisibleGroups([group]); // other groups that have a roadmap that is in the same group
const otherGroups = groups.filter((g) => {
return (
g.group !== group.group &&
g.roadmaps.some((roadmap) => {
return roadmap.otherGroups?.includes(group.group);
})
);
});
setVisibleGroups([
group,
...otherGroups.map((g) => ({
...g,
roadmaps: g.roadmaps.filter((roadmap) =>
roadmap.otherGroups?.includes(group.group),
),
})),
]);
} }
} }
}, [activeGroup]); }, [activeGroup]);