Documenting my path into backend development, starting with Node.js fundamentals.
-  JavaScript Runtime Environment (01_script.js)
-  Module Systems (CommonJS & ES) (03_moduleExport.js,05_import.js)
-  NPM & Package Management (04_npm.js)
-  Command Line Arguments (02_processArgv.js)
-  Basic Math Operations (math.js)
- Basic Express Server
- HTTP Methods (GET, POST)
- Route Parameters
- Query Strings
- Static Files
- Template Engine Setup
- Dynamic Content Rendering
- Loops & Conditionals
- Partials & Includes
- Passing Data to Views
-  OOP Basics (01_OOPS.js)
-  Object Prototypes (02_objectPrototypes.js)
-  Factory Functions (03_factoryFunctions.js)
-  Constructor Functions (04_newOperator.js)
-  ES6 Classes (05_classes.js)
-  Inheritance & Polymorphism (06_inheritance.js)
- REST Architecture Principles
- CRUD Operations
- RESTful Routes Pattern
- Resource Naming Conventions
-  Client-Server Integration (public/script.js)
-  View Templates
- Index View (views/index.ejs)
- Show View (views/show.ejs)
- Create View (views/new.ejs)
- Edit View (views/edit.ejs)
 
- Index View (
CommonJS Style
// math.js
const add = (a, b) => a + b;
const subtract = (a, b) => a - b;
module.exports = { add, subtract };
// Using in another file
const mathOperations = require('./math');
mathOperations.add(5, 3);ES Module Style
// Using ES import/export
import { PI, g } from './math.js';
console.log(PI, g);// Reading user inputs from terminal
const args = process.argv.slice(2);
console.log('User provided:', args);const express = require('express');
const app = express();
app.get('/', (req, res) => {
    res.send('Hello Express');
});
app.listen(3000);app.set('view engine', 'ejs');
app.get('/home', (req, res) => {
    res.render('home', { name: 'World' });
});Classes and Objects
class User {
    constructor(username, email) {
        this.username = username;
        this.email = email;
    }
    
    getInfo() {
        return `${this.username} (${this.email})`;
    }
}
const user = new User('john', 'john@example.com');Inheritance
class Admin extends User {
    constructor(username, email, role) {
        super(username, email);
        this.role = role;
    }
}// Basic REST routes setup
app.get('/resources', (req, res) => {
    // Index - Show all resources
});
app.post('/resources', (req, res) => {
    // Create - Add new resource
});
app.get('/resources/:id', (req, res) => {
    // Show - Display specific resource
});
app.put('/resources/:id', (req, res) => {
    // Update - Modify existing resource
});
app.delete('/resources/:id', (req, res) => {
    // Delete - Remove resource
});What is Node.js?
- Node.js executes JavaScript outside browser
- Uses V8 JavaScript engine
- Enables server-side JavaScript
Module Patterns
- CommonJS module system
- ES module implementation
- Directory-based modules (Fruits example)
Package Management
- NPM basics
- Installing and using packages (Figlet example)
- Package.json structure
Express Framework
- Web application framework
- Routing system
- Middleware concept
- Request/Response cycle
EJS Template Engine
- Dynamic HTML generation
- Template syntax (<%= %>)
- Includes & partials
- Data passing to views
Object-Oriented Programming
- Class-based vs Prototype-based OOP
- Constructor functions and 'new' operator
- Inheritance patterns in JavaScript
- Factory function patterns
- 'this' keyword behavior
- Prototypal inheritance chain
RESTful API Design
- Resource-based routing
- HTTP methods semantics (GET, POST, PUT, DELETE)
- Route naming conventions
- Client-server architecture
- Stateless communication
- CRUD operations mapping
- View templates organization
- Database Integration
- Authentication & Authorization
- API Security
- Error Handling
- Advanced Design Patterns
Started: October 2025
Last Updated: October 2025
Learning and documenting every step of the way 🚀