Backend with NodeJS Roadmap
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.
π§ This version of the roadmap is still under development.
You can refer to Version 1 in the v1 branch to find any missing resources until this is done.
By the end of this level, the learner should learn
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
HTML Crash Course
CSS Crash Course
Chrome Dev Tools
HTML & CSS Crash Course
Chrome Dev Tools
Level 0: Week 1 Quiz
Week 2
Git & GitHub
What is a database?
SQL vs NoSQL Databases
Git & GitHub
What is a database?
SQL vs NoSQL Databases
Level 0: Week 2 Quiz
Week 3
Networking for Web Developers
Level 0: Week 3 Quiz
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
JavaScript Syntax, Variables, DataTypes and Operators
JavaScript Syntax, Variables, DataTypes and Operators
Level 1: Week 1 Quiz
Week 2
Arrays and Control Flow (Conditional and Iteration Statements)
Functions, Objects and Higher Order Functions
Hoisting
Arrays
Control Flow (Conditional and Iteration Statements)
Functions and Objects
Higher Order Functions
Hoisting
Level 1: Week 2 Quiz
Week 3
Objects and Arrays Destructing, Spread Operator
Data Structures (Map, Set, ...) & Array Methods
Regular Expressions
Closures
Objects and Arrays Destructing
Spread Operator
Data Structures (Map, Set, ...)
Array Methods
ΩRegular Expressions
Closures
Level 1: Week 3 Quiz
Week 4
OOP Mindset (Recommended)
Object-Oriented Programming
Dates (Halal)
Generator Functions
EcmaScript Modules
Object-Oriented Programming
Dates
Generator Functions
EcmaScript Modules
Level 1: Week 4 Quiz
Week 5
Asynchronous Programming, JSON, Utilizing APIs
Error Handling
Asynchronous Programming, JSON, Utilizing APIs
JSON
Error Handling
Level 1: Week 5 Quiz
Week 6
Node.js Runtime Environment
Node.js Runtime Environment
Level 1: Week 6 Quiz
Week 7
Backend Principles
MongoDB
Week 8
Express.js, Mongoose & Template Engines
Express.js, Mongoose & Template Engines
Express.js
Level 1: Week 8 Quiz
Final Project
Starter Code & Description
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 and `supertest
Phase
Content
Week 1
TypeScript
TypeScript with Backend Apps
TypeScript
TypeScript Builders & Runners
TypeScript with Backend Apps
Level 2: Week 1 Quiz
Week 2
Project Structure: Controllers, Services and Repositories
Project Structure: Environment Variables in OS
Project Structure: Environment Variables in Node.js
Project Structure: Controllers and Services
Project Structure: Environment Variables in OS
Project Structure: Environment Variables in Node.js
Level 2: Week 2 Quiz
Week 3
Validation with `express-validator`
Schema Validation with `zod`
Zod inside Express
Error Handling
Validation with `express-validator`
Schema Validation with `zod`
Zod inside Express
Error Handling
Level 2: Week 3 Quiz
Week 4
MVC Project Tutorial: Follow Along and submit your code in the task form
Sessions
Session-Based Authentication
Password Security
`bcrypt` in Node.js
MVC Project Tutorial: Follow Along and submit your code in the task form
Sessions
Session-Based Authentication
Password Security
`bcrypt` in Node.js
Level 2: Week 4 Quiz
Week 5
Express's Multer
Build your own Pinterest with Password Auth and Image Uploads
urlencoded vs multipart Form Data
Express's Multer
Build your own Pinterest with Password Auth and Image Uploads
Level 2: Week 5 Quiz
Week 6
Web Rendering: Server-Side vs Client-Side
Intro to REST APIs
JSON Recap
REST in Action with Express
Web Rendering: Server-Side vs Client-Side
Intro to REST APIs
JSON Recap
REST in Action with Express
Level 2: Week 6 Quiz
Week 7
Session-Based vs. Token-Based Authentication
JWT Authentication
API Query Features: Filtering, Sorting, Field Limiting and Pagination
Session-Based vs. Token-Based Authentication
JWT Authentication
API Query Features: Filtering, Sorting, Field Limiting and Pagination
REST API in Action (with Authentication)
Level 2: Week 7 Quiz
Week 8
OAuth 2.0 Workflow
Passport.js Local Strategy
Passport.js OAuth2.0 Strategies
API Security
Rate Limiting
OAuth 2.0 Workflow
Google OAuth 2.0
Passport.js Local Strategy
Passport.js OAuth2.0 Strategies
API Security
Rate Limiting
Level 2: Week 8 Quiz
Week 9
SMTP Protocol
Sending Emails with `nodemailer`
SMTP Protocol
Sending Emails with `nodemailer`
Third-Party Email Services
Sending SMS Messages with Twilio API
Level 2: Week 10 Quiz
Week 10
Software Testing
OpenAPI & Swagger.io API Documentation
Deployment on Cyclic
Jest Testing Framework
Vitest Testing Framework
API Testing
OpenAPI & Swagger.io API Documentation
Deployment on Railway
Level 2: Week 11 Quiz
Final Project
Project Description
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 and WebRTC
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
SQL Queries (DDL/DML)
SQL Joins
SQL Aggregations
SQL Queries (DDL/DML)
SQL Joins
SQL Aggregations
SQL Fundamentals Task
Week 2
SQL Subqueries
Database Normalization
SQL Views
Normalization & Views Task
Week 3
Database Indexing
Database Transactions
Concurrency & Locks
Internals Task
Week 4
Week 5
Intro to Websockets
Websocket via `socket.io`
WebRTC & Peer-to-Peer Connections
Websocket via `ws`
Websocket via `socket.io`
WebRTC & Peer-to-Peer Connections
Week 6
Project: Building a Chat App with `socket.io`
Project: Building a Chat App with `socket.io`
Week 7
Browser Automation & Web Scraping using puppeteer
Browser Automation & Web Scraping using puppeteer
Week 8
Session: Challenges in Payment Integration
PayPal Integration
Paymob Integration
Stripe Integration
PayPal Integration
Week 9
Intro to GraphQL
GraphQL in Action
Intro to GraphQL
GraphQL in Action
Week 10
Session: Backend Caching Strategies
Intro to Redis
Backend Caching Strategies
Redis Crash Course
API Caching with Redis
CRON Jobs and Schedules
Mid Project
Final Project
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, Docker and Kubernetes
Phase
Content
Week 1
Design Patterns Introduction
Creational Design Patterns: Factory
Creational Design Patterns: Abstract Factory
Creational Design Patterns: Singleton
Creational Design Patterns: Builder
Creational Design Patterns: Prototype
Design Patterns Introduction
Creational Design Patterns: Factory
Creational Design Patterns: Abstract Factory
Creational Design Patterns: Singleton
Creational Design Patterns: Builder
Creational Design Patterns: Prototype
Week 2
Structural Design Patterns: Adapter
Structural Design Patterns: Bridge
Structural Design Patterns: Composite
Structural Design Patterns: Decorator
Structural Design Patterns: Facade
Structural Design Patterns: Flyweight
Structural Design Patterns: Proxy
Structural Design Patterns: Adapter
Structural Design Patterns: Bridge
Structural Design Patterns: Composite
Structural Design Patterns: Decorator
Structural Design Patterns: Facade
Structural Design Patterns: Flyweight
Structural Design Patterns: Proxy
Week 3
Behavioral Design Patterns: Chain of Responsibility
Behavioral Design Patterns: Observer
Behavioral Design Patterns: Command
Behavioral Design Patterns: Interpreter
Behavioral Design Patterns: Iterator
Behavioral Design Patterns: Chain of Responsibility
Behavioral Design Patterns: Observer
Behavioral Design Patterns: Command
Behavioral Design Patterns: Interpreter
Behavioral Design Patterns: Iterator
Week 4
Behavioral Design Patterns: Mediator
Behavioral Design Patterns: Memento
Behavioral Design Patterns: State
Behavioral Design Patterns: Strategy
Behavioral Design Patterns: Template
Behavioral Design Patterns: Visitor
Behavioral Design Patterns: Mediator
Behavioral Design Patterns: Memento
Behavioral Design Patterns: State
Behavioral Design Patterns: Strategy
Behavioral Design Patterns: Template
Behavioral Design Patterns: Visitor