└── README.md
/README.md:
--------------------------------------------------------------------------------
1 | # Backend with NodeJS Roadmap
2 | By [Seif El-Din Sweilam](https://github.com/saifsweelam) for Backend Circle in [CAT-Reloaded](https://github.com/CATReloaded)
3 |
4 | ## Inroduction
5 | The purpose of this roadmap is to collect and organize open-source resources for learners seeking to learn Back-End Development and use `node.js` as a development environment. There are direct and indirect topics that are supposed to improve the technical skills of the learner.
6 |
7 | Topics are ordered and organized according to the vision of the planner, this order isn't at all obligatory but it's recommended to ensure that the learner doesn't face much problems.
8 |
9 | > #### **NOTE**
10 | > This is **Version 1** of the roadmap.
11 | > 🚧 **Version 2 is currently in progress** in the [`v2` branch](https://github.com/cat-backend-nodejs/nodejs-roadmap/tree/v2). It will have more updated resources.
12 |
13 | ## Content
14 |
15 | ### Level 0
16 |
17 | #### Objectives
18 | _By the end of this level, the learner should know_
19 | * How the internet and the web browser work
20 | * How frontend code works
21 | * Version Control Systems
22 | * What are relational and non-relational databases
23 | * Basic Data Structures and Algorithms
24 | * Basic Knowledge with Operating Systems
25 |
26 | #### Plan
27 |
| Phase | 31 |Content | 32 |
|---|---|
| Week 1 | 37 |
38 | 🎯 Topics39 |
🎞️ Resources45 |🌏 Arabic46 |
🌏 English52 | 56 |📃 Task57 | Level 0: Week 1 Quiz 58 | |
59 |
| Week 2 | 62 |
63 | 🎯 Topics64 |
🎞️ Resources69 |🌏 Arabic70 |
🌏 English76 |
📃 Task82 | Level 0: Week 2 Quiz 83 | |
84 |
| Week 3 | 87 |
88 | 🎯 Topics89 |
🎞️ Resources94 |🌏 Arabic95 |
🌏 English99 |
📃 Task104 | Level 0: Week 3 Quiz 105 | |
106 |
| Phase | 125 |Content | 126 |
|---|---|
| Week 1 | 131 |
132 | 🎯 Topics133 |
🎞️ Resources139 |🌏 Arabic140 |
🌏 English144 |
📃 Task148 | Level 1: Week 1 Quiz 149 | |
150 |
| Week 2 | 153 |
154 | 🎯 Topics155 |
🎞️ Resources161 |🌏 Arabic162 |
🌏 English166 |
📃 Task171 | Level 1: Week 2 Quiz 172 | |
173 |
| Week 3 | 176 |
177 | 🎯 Topics178 |
🎞️ Resources185 |🌏 Arabic186 |
🌏 English191 |
📃 Task197 | Level 1: Week 3 Quiz 198 | |
199 |
| Week 4 | 202 |
203 | 🎯 Topics204 |
🎞️ Resources212 |🌏 Arabic213 |
🌏 English218 |
📃 Task229 | Level 1: Week 4 Quiz 230 | |
231 |
| Week 5 | 234 |
235 | 🎯 Topics236 |
🎞️ Resources243 |🌏 Arabic244 |
🌏 English248 |
📃 Task256 | Level 1: Week 5 Quiz 257 | |
258 |
| Week 6 | 261 |
262 | 🎯 Topics263 |
🎞️ Resources277 |🌏 Arabic278 |
🌏 English282 |
📃 Task288 | Level 1: Week 6 Quiz 289 | |
290 |
| Week 7 | 293 |
294 | 🎯 Topics295 |
🎞️ Resources300 |🌏 Arabic301 |
🌏 English307 |
📃 Task313 | Level 1: Week 7 Quiz 314 | |
315 |
| Week 8 | 318 |
319 | 🎯 Topics320 |
🎞️ Resources325 |🌏 Arabic326 |
🌏 English333 |
📃 Task342 | Level 1: Week 8 Quiz 343 | |
344 |
| Final Project | 347 |
348 | 🎯 Required349 | Implement a URL Shortener web application using what you have learnt in Express and MongoDB. 350 |351 | The way a URL shortener works is that the user enters a long URL through some form and submits, then the web application generates a short URL which redirects them into the desired URL. 352 | 🫵 Criteria353 |
📃 Task360 | Starter Code & Description 361 | |
362 |
| Phase | 381 |Content | 382 |
|---|---|
| Week 1 | 387 |
388 | 🎯 Topics389 |
🎞️ Resources396 |🌏 Arabic397 |
🌏 English402 |
📃 Task407 | Level 2: Week 1 Quiz 408 | |
409 |
| Week 2 | 412 |
413 | 🎯 Topics414 |
🎞️ Resources420 |🌏 Arabic421 |
🌏 English429 |
📃 Task436 | Level 2: Week 2 Quiz 437 | |
438 |
| Week 3 | 441 |
442 | 🎯 Topics443 |444 | CRUD Application Part I 445 |
🎞️ Tutorials452 |🌏 Arabic453 |
🌏 English458 |
📃 Task463 |Choose one project from the above, follow along with the tutorials and upload your code on GitHub 464 | Level 2: Week 3 Quiz 465 | |
466 |
| Week 4 | 469 |
470 | 🎯 Topics471 |472 | CRUD Application Part II 473 |
🎞️ Tutorials481 |🌏 Arabic482 |
🌏 English487 |
📃 Task492 |Choose one project from the above, follow along with the tutorials and upload your code on GitHub 493 | Level 2: Week 4 Quiz 494 | |
495 |
| Week 5 | 498 |
499 | 🎯 Topics500 |
🎞️ Resources507 |🌏 Arabic508 |
🌏 English518 |
📃 Task528 |529 | Mini Tasks 530 |
|
537 |
| Week 6 | 540 |
541 | 🎯 Topics542 |
🎞️ Resources548 |🌏 Arabic549 |
🌏 English559 |
📃 Task570 | Level 2: Week 6 Quiz 571 | |
572 |
| Week 7 | 575 |
576 | 🎯 Topics577 |
🎞️ Resources582 |🌏 Arabic583 |
🌏 English587 |
📃 Task591 | Level 2: Week 7 Quiz 592 | |
593 |
| Week 8 | 596 |
597 | 🎯 Topics598 |599 | Build REST API 600 |
🎞️ Tutorials608 |🌏 Arabic609 |
🌏 English614 |
📃 Task620 |Choose one project from the above, follow along with the tutorials and upload your code on GitHub 621 | Level 2: Week 8 Quiz 622 | |
623 |
| Week 9 | 626 |
627 | 🎯 Topics628 |
🎞️ Resources635 |🌏 Arabic636 |
🌏 English644 |
📃 Task654 |Implement OAuth2.0 Authentication with Passport.js using two third-party providers 655 | Level 2: Week 9 Quiz 656 | |
657 |
| Week 10 | 660 |
661 | 🎯 Topics662 |
🎞️ Resources668 |🌏 Arabic669 |
🌏 English674 |
📃 Task680 |Implement simple user registration system with Email Confirmation 681 | Level 2: Week 10 Quiz 682 | |
683 |
| Week 11 | 686 |
687 | 🎯 Topics688 |
🎞️ Resources695 |🌏 Arabic696 |
🌏 English704 |
📃 Task713 |Implement Unit Tests and API Documentation for the application you created at week 6, then deploy it on railway. 714 | Level 2: Week 11 Quiz 715 | |
716 |
| Final Project | 719 |
720 | 🎯 Required721 | Dr. Hossam teaches programming, but he is tired of manually collecting tasks from students and grading them one by one. He asks you if you can make an application for him where students make an account and upload their tasks. Only Dr. Hossam can add new tasks and give them grades. Can you make a Task Grading Hub for him? 722 |🫵 Criteria723 |
📃 Task733 | Project Description 734 | |
735 |
| Phase | 755 |Content | 756 |
|---|---|
| Week 1 | 761 |
762 | 🎯 Topics763 |
🎞️ Resources767 |🌏 Arabic768 |769 | Choose only one DBMS 770 |
🌏 English802 |803 | Choose only one DBMS 804 |
📃 Task837 | Part 1838 | Part 2 839 | |
840 |
| Week 2 | 843 |
844 | 🎯 Topics845 |
🎞️ Resources850 |🌏 Arabic851 |852 |
🌏 English864 |865 |
📃 Task879 | Level 3: Week 2 Quiz 880 | |
881 |
| Week 3 | 884 |
885 | 🎯 Topics886 |
🎞️ Resources892 |🌏 Arabic893 |
🌏 English898 |
Note: Sequelize, Prisma and TypeORM do the same job, so you don't have to learn all of them. 927 |📃 Task928 | |
929 |
| Mid Project | 932 |
933 | 934 | The Egyptian League wanted to stop using paper any more and wanted to create a dashboard to handle all players signed to different teams. Using an ORM connected to a relational database of your choice, implement a REST API for the Egyptian League Dashboard. You should have a route for teams and another one for players. The client using the dashboard should be able to: 935 |
|
949 |
| Week 4 | 952 |
953 | 🎯 Topics954 |
🎞️ Resources959 |🌏 Arabic960 |
🌏 English967 |
📃 Task973 | |
974 |
| Week 5 | 977 |
978 | 🎯 Topics979 |
🎞️ Resources983 |🌏 Arabic984 |
🌏 English988 |
📃 Task994 | |
995 |
| Week 6 | 998 |
999 | 🎯 Topics1000 |
🎞️ Resources1004 |🌏 Arabic1005 | 1009 |🌏 English1010 |
📃 Task1015 |Implement a Job Stalker App using |
1017 |
| Week 7 | 1020 |
1021 | 🎯 Topics1022 |
🎞️ Resources1026 |🌏 Arabic1027 |
🌏 English1032 |
Note: There are other payment gates that are commonly used in the middle east like Paymob and 2Checkout, but there's no specific YouTube Content on how to integrate them using Node.js, so you will have to take a look at their documentations if you need them in a job. 1037 |📃 Task1038 | |
1039 |
| Week 8 | 1042 |
1043 | 🎯 Topics1044 |
🎞️ Resources1048 |🌏 Arabic1049 |
🌏 English1056 |
📃 Task1061 | |
1062 |
| Week 9 | 1065 |
1066 | 🎯 Topics1067 |
🎞️ Resources1072 |🌏 Arabic1073 |
🌏 English1077 |
📃 Task1086 | |
1087 |
| Final Project | 1090 |
1091 | 🎯 Required1092 |Mr. Samer is a seasoned entrepreneur who is looking to build an online marketplace platform. He wants to create a platform where users can buy and sell various products, while also providing real-time communication between buyers and sellers. Can you help Mr. Samer build this Online Marketplace with GraphQL, Socket.IO, and PayPal Integration? 1093 |🫵 Criteria1094 |
📃 Project: Online Marketplace1105 | |
1106 |
| Phase | 1129 |Content | 1130 |
|---|---|
| Week 1 | 1135 |
1136 | 🎯 Topics1137 |
🎞️ Resources1149 |🌏 Arabic1150 |1151 |
🌏 English1157 |1158 |
📃 Task1163 | |
1164 |
| Week 2 | 1167 |
1168 | 🎯 Topics1169 |
🎞️ Resources1184 |🌏 Arabic1185 |1186 |
🌏 English1193 |1194 |
📃 Task1199 | |
1200 |
| Week 3 | 1203 |
1204 | 🎯 Topics1205 |
🎞️ Resources1218 |🌏 Arabic1219 |1220 |
🌏 English1225 |1226 |
📃 Task1231 | |
1232 |
| Week 4 | 1235 |
1236 | 🎯 Topics1237 |
🎞️ Resources1251 |🌏 Arabic1252 |1253 |
🌏 English1258 |1259 |
📃 Task1264 | |
1265 |