diff --git a/content/roadmaps.json b/content/roadmaps.json index b97cf9295..4d9d8835c 100644 --- a/content/roadmaps.json +++ b/content/roadmaps.json @@ -31,7 +31,6 @@ "description": "Step by step guide to becoming a modern frontend developer in 2021", "featuredTitle": "Frontend", "featuredDescription": "Step by step guide to becoming a frontend developer in 2021", - "isUpcoming": false, "author": { "name": "Kamran Ahmed", "url": "https://twitter.com/kamranahmedse" @@ -39,7 +38,9 @@ "featured": true, "imagePath": "/roadmaps/frontend.png", "resourcesPath": "/roadmaps/1-frontend/resources.md", - "id": "frontend" + "pdfUrl": "https://kamranahmedse.gumroad.com/l/frontend-roadmap", + "id": "frontend", + "isUpcoming": false }, { "seo": { @@ -76,12 +77,13 @@ "featured": true, "imagePath": "/roadmaps/backend.png", "resourcesPath": "/roadmaps/2-backend/resources.md", - "isUpcoming": false, "author": { "name": "Kamran Ahmed", "url": "https://twitter.com/kamranahmedse" }, - "id": "backend" + "pdfUrl": "https://kamranahmedse.gumroad.com/l/backend-roadmap", + "id": "backend", + "isUpcoming": false }, { "seo": { @@ -117,12 +119,13 @@ "2018", "2017" ], - "isUpcoming": false, "author": { "name": "Kamran Ahmed", "url": "https://twitter.com/kamranahmedse" }, - "id": "devops" + "pdfUrl": "https://kamranahmedse.gumroad.com/l/devops-roadmap", + "id": "devops", + "isUpcoming": false }, { "seo": { @@ -156,12 +159,13 @@ "2018", "2017" ], - "isUpcoming": false, "author": { "name": "Kamran Ahmed", "url": "https://twitter.com/kamranahmedse" }, - "id": "react" + "pdfUrl": "https://kamranahmedse.gumroad.com/l/react-roadmap", + "id": "react", + "isUpcoming": false }, { "seo": { @@ -194,7 +198,6 @@ "featuredDescription": "Step by step guide to become a PostgreSQL DBA in 2021", "contentPath": "/roadmaps/5-postgresql-dba/landscape.md", "resourcesPath": "/roadmaps/5-postgresql-dba/resources.md", - "isUpcoming": false, "author": { "name": "Alexey Lesovsky", "url": "https://github.com/lesovsky" @@ -204,7 +207,8 @@ "featured": true, "detailed": false, "versions": [], - "id": "postgresql-dba" + "id": "postgresql-dba", + "isUpcoming": false }, { "seo": { @@ -238,12 +242,12 @@ "2018", "2017" ], - "isUpcoming": false, "author": { "name": "Kamran Ahmed", "url": "https://twitter.com/kamranahmedse" }, - "id": "android" + "id": "android", + "isUpcoming": false }, { "seo": { @@ -268,13 +272,13 @@ "description": "Steps to follow in order to become a modern QA Engineer in 2021", "featuredTitle": "QA", "featuredDescription": "Step by step guide to becoming a modern QA Engineer in 2021", + "isUpcoming": true, "contentPath": "/roadmaps/7-qa/landscape.md", "resourcesPath": "/roadmaps/7-qa/resources.md", - "isUpcoming": true, "author": { "name": "Anas Fitiani", "url": "https://github.com/anas-qa" }, "id": "qa" } -] +] \ No newline at end of file diff --git a/content/roadmaps/1-frontend/meta.json b/content/roadmaps/1-frontend/meta.json index 58228239d..08a0470ab 100644 --- a/content/roadmaps/1-frontend/meta.json +++ b/content/roadmaps/1-frontend/meta.json @@ -27,7 +27,7 @@ ] }, "title": "Frontend Developer", - "description": "Step by step guide to becoming a modern frontend developer", + "description": "Step by step guide to becoming a modern frontend developer in 2021", "featuredTitle": "Frontend", "featuredDescription": "Step by step guide to becoming a frontend developer in 2021", "author": { @@ -36,5 +36,6 @@ }, "featured": true, "imagePath": "/roadmaps/frontend.png", - "resourcesPath": "./resources.md" + "resourcesPath": "./resources.md", + "pdfUrl": "https://kamranahmedse.gumroad.com/l/frontend-roadmap" } diff --git a/content/roadmaps/2-backend/meta.json b/content/roadmaps/2-backend/meta.json index 09f6a7a75..076cd855e 100644 --- a/content/roadmaps/2-backend/meta.json +++ b/content/roadmaps/2-backend/meta.json @@ -27,7 +27,7 @@ ] }, "title": "Backend Developer", - "description": "Step by step guide to becoming a modern backend developer", + "description": "Step by step guide to becoming a modern backend developer in 2021", "featuredTitle": "Backend", "featuredDescription": "Step by step guide to becoming a backend developer in 2021", "featured": true, @@ -36,5 +36,6 @@ "author": { "name": "Kamran Ahmed", "url": "https://twitter.com/kamranahmedse" - } + }, + "pdfUrl": "https://kamranahmedse.gumroad.com/l/backend-roadmap" } diff --git a/content/roadmaps/3-devops/meta.json b/content/roadmaps/3-devops/meta.json index 5b6b1056c..238876eea 100644 --- a/content/roadmaps/3-devops/meta.json +++ b/content/roadmaps/3-devops/meta.json @@ -21,7 +21,7 @@ ] }, "title": "DevOps Roadmap", - "description": "Step by step guide for DevOps or any other Operations Role", + "description": "Step by step guide for DevOps, SRE or any other Operations Role in 2021", "featuredTitle": "DevOps", "featuredDescription": "Step by step guide for DevOps or operations role in 2021", "featured": true, @@ -35,5 +35,6 @@ "author": { "name": "Kamran Ahmed", "url": "https://twitter.com/kamranahmedse" - } + }, + "pdfUrl": "https://kamranahmedse.gumroad.com/l/devops-roadmap" } diff --git a/content/roadmaps/4-react/meta.json b/content/roadmaps/4-react/meta.json index be3888b13..4d5e28212 100644 --- a/content/roadmaps/4-react/meta.json +++ b/content/roadmaps/4-react/meta.json @@ -33,5 +33,6 @@ "author": { "name": "Kamran Ahmed", "url": "https://twitter.com/kamranahmedse" - } + }, + "pdfUrl": "https://kamranahmedse.gumroad.com/l/react-roadmap" } diff --git a/content/roadmaps/5-postgresql-dba/meta.json b/content/roadmaps/5-postgresql-dba/meta.json index 26a53dceb..cffbbc4f9 100644 --- a/content/roadmaps/5-postgresql-dba/meta.json +++ b/content/roadmaps/5-postgresql-dba/meta.json @@ -24,7 +24,7 @@ ] }, "title": "PostgreSQL DBA", - "description": "Step by step guide to becoming a modern PostgreSQL DBA", + "description": "Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021", "featuredTitle": "DBA", "featuredDescription": "Step by step guide to become a PostgreSQL DBA in 2021", "contentPath": "./landscape.md", diff --git a/content/roadmaps/6-android/meta.json b/content/roadmaps/6-android/meta.json index 023551add..d52ee4884 100644 --- a/content/roadmaps/6-android/meta.json +++ b/content/roadmaps/6-android/meta.json @@ -17,7 +17,7 @@ ] }, "title": "Android Developer", - "description": "Step by step guide to becoming an Android developer", + "description": "Step by step guide to becoming an Android developer in 2021", "featuredTitle": "Android", "featuredDescription": "Step by step guide to becoming an Android Developer in 2021", "isTextHeavy": true, diff --git a/content/roadmaps/7-qa/meta.json b/content/roadmaps/7-qa/meta.json index 5d35c136e..0ad4591fc 100644 --- a/content/roadmaps/7-qa/meta.json +++ b/content/roadmaps/7-qa/meta.json @@ -21,7 +21,7 @@ "description": "Steps to follow in order to become a modern QA Engineer in 2021", "featuredTitle": "QA", "featuredDescription": "Step by step guide to becoming a modern QA Engineer in 2021", - "upcoming": true, + "isUpcoming": true, "contentPath": "./landscape.md", "resourcesPath": "./resources.md", "author": { diff --git a/lib/roadmap.ts b/lib/roadmap.ts index 526992029..53909a4eb 100644 --- a/lib/roadmap.ts +++ b/lib/roadmap.ts @@ -21,6 +21,7 @@ export type RoadmapType = { isCommunity: boolean; isUpcoming: boolean; id: string; + pdfUrl?: string; }; export function getRoadmapById(id: string): RoadmapType | undefined { diff --git a/pages/[roadmap]/index.tsx b/pages/[roadmap]/index.tsx index fef1962ed..a276b3d71 100644 --- a/pages/[roadmap]/index.tsx +++ b/pages/[roadmap]/index.tsx @@ -1,4 +1,4 @@ -import { Box, Button, Container, Stack } from '@chakra-ui/react'; +import { Box, Button, Container, Link, Stack } from '@chakra-ui/react'; import { DownloadIcon, EmailIcon } from '@chakra-ui/icons'; import { GlobalHeader } from '../../components/global-header'; import { OpensourceBanner } from '../../components/opensource-banner'; @@ -54,14 +54,26 @@ export default function Roadmap(props: RoadmapProps) { - - + )} + diff --git a/scripts/roadmaps-meta.js b/scripts/roadmaps-meta.js index e3f6acf71..5b06c1a7b 100644 --- a/scripts/roadmaps-meta.js +++ b/scripts/roadmaps-meta.js @@ -34,9 +34,9 @@ const roadmapsMeta = roadmapDirs.reduce((metaAcc, roadmapDirName) => { { ...roadmapMeta, id: roadmapSlug, - url: `/${roadmapSlug}`, contentPath: contentPath, - resourcesPath: resourcesPath + resourcesPath: resourcesPath, + isUpcoming: roadmapMeta.isUpcoming || false } ]; }, []);