Skip to content

mostafalotfy-dev/Node-Js-30-days-Challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node.js 30 Days Challenge 🚀

A comprehensive 30-day journey to mastering Node.js, from core concepts to building full-scale web applications.

📅 Roadmap

Week 1: Node.js Basics & Express

  • Day 1: Initializing the project and understanding the runtime.
  • Day 2: Node.js core modules (HTTP, FS) and handling basic server logic.
  • Day 3: Introduction to Express.js (Middleware, Routing, Static Files, and HTML).
  • Day 4: Template Engines (EJS, Pug, and Handlebars).
  • Day 5: The Model View Controller (MVC) pattern.
  • Day 6: Dynamic Content & EJS.
  • Day 7: Working with Dynamic Data & Pug (MVC).

Week 2: Databases & State Management

  • Day 8: Introduction to Databases (SQL vs. NoSQL).
  • Day 9: Mastering Sequelize & MySQL.
  • Day 10: Deep Dive into MongoDB.
  • Day 11: Object Data Modeling with Mongoose.
  • Day 12: Sessions & Cookies for State Management.
  • Day 13: Authentication & Authorization Foundations.
  • Day 14: CSRF Protection & Security Enhancements.

Week 3: Advanced Features

  • Day 15: Advanced Auth: Emails & Password Resets.
  • Day 17: Robust Error Handling & Middleware.
  • Day 18: File Uploads, Management & PDF Generation.
  • Day 19: Pagination logic for high-performance data fetching.
  • Day 20: Asynchronous Requests (AJAX/Fetch API) for seamless UX.
  • Day 21: Payment Integration with Stripe.

🛠️ Tech Stack

  • Runtime: Node.js
  • Framework: Express.js
  • Databases: MySQL (Sequelize), MongoDB (Mongoose)
  • Templating Engines: EJS, Pug, Handlebars
  • Security: CSRF Protection, Password Hashing (bcrypt)
  • Session Management: express-session with MongoDB storage
  • Communication: Email Integration (Nodemailer)
  • File Handling: Multer for uploads and image management
  • PDF Generation: PDFKit for dynamic document creation
  • Architecture: MVC (Model-View-Controller)
  • Tools: Nodemon, Body-Parser, Dotenv

📖 How to Run

  1. Navigate to the specific day's folder:
    cd "Day X"
  2. Install dependencies:
    npm install
  3. Start the application:
    ```bash
    npm start

📈 Progress Highlights

Week 1: Foundation

  • Day 1-2: Mastered the core Node.js request/response lifecycle and asynchronous filesystem operations.
  • Day 3-4: Transitioned to Express.js for streamlined routing and explored various Templating Engines (EJS/Pug) for dynamic UI generation.
  • Day 5-7: Implemented proper MVC Architecture, decoupling logic into Models/Controllers, and mastered Dynamic Content rendering with EJS and Pug.

Week 2: Database Mastery & Sessions

  • Day 8-9: Transitioned from file storage to Relational Databases using SQL and Sequelize ORM, mastering schemas and relations.
  • Day 10-11: Explored NoSQL with MongoDB and utilized Mongoose for elegant data modeling and complex query handling.
  • Day 12: Implemented Sessions & Cookies for secure state management, moving beyond local request-only state.
  • Day 13-14: Built a robust Authentication System, including password hashing with bcrypt and CSRF Protection for secure form submissions.

Week 3: Production Ready Features

  • Day 15-16: Added Email Support, a secure Password Reset flow, and mastered Input Validation using express-validator.
  • Day 17: Implemented robust Error Handling middleware to manage both synchronous and asynchronous errors gracefully.
  • Day 18: Integrated File Uploads with Multer, managed file storage, and implemented on-the-fly PDF Generation with PDFKit.
  • Day 19: Mastered Pagination to efficiently handle large datasets by fetching only the required chunks of data from the database.
  • Day 20: Implemented Asynchronous Requests (AJAX/Fetch API) to delete items without page reloads, significantly improving the user experience.
  • Day 21: Integrated Stripe Payments to handle checkout sessions and secure transactions.

Week 4: Modern APIs & Decoupled Architecture

  • Day 22: Implemented REST APIs to handle data requests and responses.

Follow my journey as I build and learn Node.js in 30 days!

About

Node Js 30 Days Challenge

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors