By Seif El-Din Sweilam for Backend Circle in CAT-Reloaded
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.
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.
By the end of this level, the learner should know
- How the internet and the web browser work
- How frontend code works
- Version Control Systems
- What are relational and non-relational databases
- Basic Data Structures and Algorithms
- Basic Knowledge with Operating Systems
Phase | Content |
---|---|
Week 1 |
|
Week 2 |
|
Week 3 |
|
By the end of this level, the learner should learn
- JavaScript: Syntax, Features, OOP, Asynchronous Programming
- NodeJS: Development, Packages, Modules, Processes,
http
module - Express: Basics, Middlewares
- MongoDB: CRUD Operations, Integration with
express
Phase | Content |
---|---|
Week 1 |
|
Week 2 |
|
Week 3 |
|
Week 4 |
|
Week 5 |
|
Week 6 |
|
Week 7 |
|
Week 8 |
|
Final Project |
Implement a URL Shortener web application using what you have learnt in Express and MongoDB.
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.
|
By the end of this level, the learner should learn
- TypeScript: Syntax, Features, Usage
- Architecture: MVC and other design patterns
- Express: Validation, Authentication, Authorization, Sessions, APIs, JWT
- API Documentation: Rules, using Swagger & Postman
- Unit Testing: Test-Driven Development, Using tools like
jest
andsupertest
Phase | Content |
---|---|
Week 1 |
|
Week 2 |
|
Week 3 |
CRUD Application Part I
Choose one project from the above, follow along with the tutorials and upload your code on GitHub Level 2: Week 3 Quiz |
Week 4 |
CRUD Application Part II
Choose one project from the above, follow along with the tutorials and upload your code on GitHub Level 2: Week 4 Quiz |
Week 5 |
Mini Tasks
|
Week 6 |
|
Week 7 |
|
Week 8 |
Build REST API
Choose one project from the above, follow along with the tutorials and upload your code on GitHub Level 2: Week 8 Quiz |
Week 9 |
Implement OAuth2.0 Authentication with Passport.js using two third-party providers Level 2: Week 9 Quiz |
Week 10 |
Implement simple user registration system with Email Confirmation Level 2: Week 10 Quiz |
Week 11 |
Implement Unit Tests and API Documentation for the application you created at week 6, then deploy it on railway. Level 2: Week 11 Quiz |
Final Project |
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?
|
By the end of this level, the learner should learn
- Database: SQL Syntax, DB-APIs, ORMs, Migrations
- Modern APIs:
GraphQL
- Real Time Connections: Using
socket.io
andWebRTC
- Caching: Caching Techniques, Redis for server-side caching
- Task Scheduling:
node-schedule
- Browser Automation: E2E Testing and Web Scraping using
puppeteer
Phase | Content |
---|---|
Week 1 |
Choose only one DBMS
Choose only one DBMS
Part 2 |
Week 2 |
|
Week 3 |
Note: Sequelize, Prisma and TypeORM do the same job, so you don't have to learn all of them. |
Mid Project |
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:
|
Week 4 |
|
Week 5 |
|
Week 6 |
Implement a Job Stalker App using |
Week 7 |
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. |
Week 8 |
|
Week 9 |
|
Final Project |
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?
|
By the end of this level, the learner should learn
- Hosting: Linux operating system, SSH protocol, VPS hosting
- Web Security: Avoiding Attacks and designing security layers
- Architecture: Microservices, Nodejs Design Patterns
- Automation: Tasks and pipelines
- System Design: Fundamentals of designing complex software
- Software Engineering: SDLC, Agile Workflow, DevOps Workflow
- Containers: Concept, Intro to Kubernetes
TO BE DETERMINED