-
-
Notifications
You must be signed in to change notification settings - Fork 97
Update NodeJS_Concepts_Checklist.md #63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,82 +1,115 @@ | ||||||
| # Node.js Concepts Checklist | ||||||
| # 🚀 Node.js Learning Roadmap | ||||||
|
|
||||||
| A curated list of Node.js concepts to help learners track their progress. Mark each item ✅ as you master it. | ||||||
| A structured path to mastering **Node.js** for back-end development and building production-ready APIs. | ||||||
|
|
||||||
| ## Basics | ||||||
| --- | ||||||
|
|
||||||
| ## 📌 1. Node.js Fundamentals & Servers (✅ 7% Done) | ||||||
|
|
||||||
| **What to Learn:** | ||||||
| - What Node.js is and why it’s used in back-end development. | ||||||
| - How the **event loop** and **asynchronous programming** work. | ||||||
| - Using **Node.js core modules**: `fs`, `path`, `os`, `http`. | ||||||
| - Creating a basic **HTTP server** with Node.js. | ||||||
| - Handling requests and responses manually. | ||||||
|
|
||||||
| **Milestone Project:** | ||||||
| 📝 Build a simple **HTTP server** that serves static HTML, CSS, and JS files. | ||||||
|
|
||||||
| --- | ||||||
|
|
||||||
| ## 📌 2. Express.js Fundamentals (✅ 13% Done) | ||||||
|
|
||||||
| **What to Learn:** | ||||||
| - Setting up an Express server. | ||||||
| - Defining **routes** (`GET`, `POST`, `PUT`, `DELETE`). | ||||||
| - Using **middleware** (built-in & custom). | ||||||
| - Serving static files with Express. | ||||||
| - Templating engines (EJS, Handlebars, or Pug). | ||||||
|
|
||||||
| **Milestone Project:** | ||||||
| 📝 Build a **Blog server** with Express.js that supports multiple routes and serves HTML pages. | ||||||
|
|
||||||
| --- | ||||||
|
|
||||||
| ## 📌 3. Database Integration with MongoDB & Mongoose (✅ 6% Done) | ||||||
|
|
||||||
| - [ ] What is Node.js and its use cases | ||||||
| - [ ] Installing Node.js and npm | ||||||
| - [ ] Understanding Node.js runtime and V8 engine | ||||||
| - [ ] Node.js REPL (Read-Eval-Print Loop) | ||||||
| - [ ] Event Loop and Asynchronous Programming | ||||||
| - [ ] Global Objects in Node.js (`__dirname`, `__filename`, `global`) | ||||||
| **What to Learn:** | ||||||
| - Introduction to **NoSQL** and MongoDB basics. | ||||||
| - Connecting Node.js to MongoDB using **Mongoose**. | ||||||
| - CRUD operations (Create, Read, Update, Delete). | ||||||
| - Schema design: One-to-Many and Many-to-Many relationships. | ||||||
| - Data validation & error handling. | ||||||
|
|
||||||
| ## Core Modules | ||||||
| **Milestone Project:** | ||||||
| 📝 Build a **Task Manager** app where users can add, update, and delete tasks stored in MongoDB. | ||||||
|
|
||||||
| - [ ] File System (`fs`) – reading/writing files, streams | ||||||
| - [ ] Path module (`path`) – handling file paths | ||||||
| - [ ] OS module (`os`) – system information | ||||||
| - [ ] HTTP/HTTPS module – creating servers, making requests | ||||||
| - [ ] Events module – EventEmitter usage | ||||||
| - [ ] Timers module (`setTimeout`, `setInterval`, `setImmediate`, `process.nextTick`) | ||||||
| --- | ||||||
|
|
||||||
| ## NPM & Modules | ||||||
| ## 📌 4. Building Complete APIs (✅ 7% Done) | ||||||
|
|
||||||
| - [ ] Creating and exporting custom modules | ||||||
| - [ ] Importing modules (CommonJS `require`, ES Modules `import`) | ||||||
| - [ ] Understanding package.json | ||||||
| - [ ] Installing dependencies and devDependencies | ||||||
| - [ ] Semantic versioning in npm | ||||||
| - [ ] Using popular packages (e.g., Express, dotenv, axios) | ||||||
| **What to Learn:** | ||||||
| - REST API design principles (resources, endpoints, status codes). | ||||||
| - Express Router for modular APIs. | ||||||
| - File upload handling with `multer`. | ||||||
| - Integrating with external APIs (e.g., weather, payment gateways). | ||||||
| - Returning JSON responses with proper error handling. | ||||||
|
|
||||||
| ## Advanced Node.js | ||||||
| **Milestone Project:** | ||||||
| 📝 Build a **Movies API** with endpoints to fetch, add, update, and delete movies. | ||||||
|
|
||||||
| --- | ||||||
|
|
||||||
| - [ ] Streams (Readable, Writable, Duplex, Transform) | ||||||
| - [ ] Buffers and binary data | ||||||
| - [ ] Error handling patterns (try/catch, callbacks, Promises) | ||||||
| - [ ] Debugging Node.js applications | ||||||
| - [ ] Process object and environment variables | ||||||
| - [ ] Child processes (`child_process` module) | ||||||
| - [ ] Cluster module for scaling | ||||||
| ## 📌 5. User Authentication (✅ 50% Done) | ||||||
|
|
||||||
| ## Networking & APIs | ||||||
| **What to Learn:** | ||||||
| - Authentication vs Authorization. | ||||||
| - Password hashing with **bcrypt**. | ||||||
| - Session-based authentication (cookies & sessions). | ||||||
| - **JWT authentication** for stateless APIs. | ||||||
| - Role-based access control (User vs Admin). | ||||||
|
|
||||||
| - [ ] Building HTTP servers with Express.js | ||||||
| - [ ] REST API design principles | ||||||
| - [ ] WebSockets for real-time communication | ||||||
| - [ ] Middleware in Express | ||||||
| - [ ] Routing and route parameters | ||||||
| - [ ] Working with JSON and query parameters | ||||||
| **Milestone Project:** | ||||||
| 📝 Create an **Auth API** with user registration, login, logout, and JWT-protected routes. | ||||||
|
|
||||||
| ## Databases | ||||||
| --- | ||||||
|
|
||||||
| - [ ] Connecting Node.js with MongoDB | ||||||
| - [ ] Using MySQL/PostgreSQL with Node.js | ||||||
| - [ ] CRUD operations from Node.js | ||||||
| - [ ] Using ORMs (Sequelize, TypeORM, Mongoose) | ||||||
| ## 📌 6. Capstone Project: Core Banking API 💳 | ||||||
|
|
||||||
| ## Testing & Performance | ||||||
| **Stack:** MERN (MongoDB, Express.js, React, Node.js) | ||||||
|
|
||||||
| - [ ] Unit testing Node.js apps (Mocha, Jest) | ||||||
| - [ ] Logging best practices | ||||||
| - [ ] Handling uncaught exceptions and rejections | ||||||
| - [ ] Profiling and performance monitoring | ||||||
| **Features to Implement:** | ||||||
| - Secure **JWT authentication** for users. | ||||||
| - Users can **send money** to each other. | ||||||
| - Transaction records stored in MongoDB. | ||||||
| - Admin dashboard with full **transaction log**. | ||||||
| - Simple **frontend** with HTML/CSS (or React if ready). | ||||||
|
Comment on lines
+79
to
+86
|
||||||
|
|
||||||
| ## Best Practices & Patterns | ||||||
| **Stretch Goals:** | ||||||
|
Comment on lines
+86
to
+88
|
||||||
| - Add **rate limiting** (to prevent abuse). | ||||||
| - Add **input validation** with `Joi` or `Zod`. | ||||||
| - Deploy backend to **Render/Heroku** and database to **MongoDB Atlas**. | ||||||
|
||||||
| - Deploy backend to **Render/Heroku** and database to **MongoDB Atlas**. | |
| - Deploy backend to **Render/Railway/Vercel** and database to **MongoDB Atlas**. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The progress percentages (7%, 13%, 6%, 7%, 50%) appear to be arbitrary without clear criteria for how completion is measured. Consider adding a note explaining how these percentages are calculated or removing them to avoid confusion.