TechCrush Backend Development Bootcamp Curriculum

Bootcamp Overview and Parameters

  • Program Title: TechCrush Backend development Bootcamp Curriculum

  • Total Duration: 8 weeks

  • Session Frequency: 2 sessions per week

  • Session Duration: 2 hours per session

  • Total Course Length: 16 sessions (32 total instructional hours)

Week 1: Introduction to Node.js

  • Session 1: Course Overview and Environment Setup

    • Course Overview and Objectives

    • Introduction to Server-Side JavaScript

    • Setting Up the Development Environment (Node.js and npm)

    • Introduction to Node.js: History and Use Cases

  • Session 2: Node.js Fundamentals and HTTP Server Creation

    • Basic Node.js Syntax and REPL

    • Understanding Modules and require()

    • Creating a Simple HTTP Server

Week 2: Core Modules and File System

  • Session 3: Native Utility Modules and File I/O

    • Exploring Core Modules (path, url, querystring)

    • Working with the File System (fs module)

    • Reading and Writing Files

  • Session 4: Asynchronous Operations and File Manipulation

    • Handling File Operations Asynchronously

    • Practical Examples and Exercises

Week 3: Event-Driven Programming

  • Session 5: Principles of Event-Driven Architecture

    • Understanding Event-Driven Architecture

    • Working with Event Emitters

    • Creating Custom Events

  • Session 6: Implementation of the Events Module

    • Using the events Module

    • Practical Examples and Exercises

Week 4: Working with npm and Package Management

  • Session 7: Dependency Management and Package Architecture

    • Introduction to npm

    • Installing and Managing Packages

    • Understanding package.json

  • Session 8: Module Publishing and Distribution

    • Creating and Publishing Your Own Packages

    • Practical Exercises and Projects

Week 5: Building Web Servers with Express.js

  • Session 9: Express.js Foundations

    • Introduction to Express.js

    • Setting Up an Express Server

    • Middleware and Routing Basics

  • Session 10: HTTP Handling and Static Asset Serving

    • Handling HTTP Methods and Status Codes

    • Serving Static Files

    • Practical Examples and Exercises

Week 6: Templating Engines and Dynamic Content

  • Session 11: Server-Side Rendering Tools

    • Introduction to Templating Engines (EJS, Handlebars, Pug)

    • Setting Up and Using Templating Engines with Express

  • Session 12: Dynamic Content Integration

    • Creating Dynamic Content

    • Practical Exercises and Projects

Week 7: Building a RESTful API

  • Session 13: API Design and Architecture

    • Introduction to RESTful APIs

    • Setting Up the API Structure with Express

    • Handling HTTP Requests and Responses

  • Session 14: Advanced API Operations and Security

    • CRUD Operations in the API

    • Error Handling and Validation

    • Authentication and Authorization

Week 8: Final Project and Review

  • Session 15: Guided Project Development

    • Developing a Dynamic Application with a RESTful API

    • Project Implementation and Guidance

  • Session 16: Synthesis and Presentations

    • Project Presentation

    • Course Recap and Q&A


Bootcamp Overview and Parameters
  • Program Title: TechCrush Backend Development Bootcamp Curriculum

  • Total Duration: 8 weeks (2 sessions per week, 2 hours per session)

  • Total Course Length: 16 sessions (32 total instructional hours)

Week 1: Introduction to Node.js
  • Session 1: Course Overview and Environment Setup

    • Course Overview and Objectives: Focuses on building scalable server-side systems that power web and mobile applications.

    • Introduction to Server-Side JavaScript: Running JavaScript on the server via Google Chrome's V8 engine, enabling full-stack JavaScript development for unified mobile app API development.

    • Setting Up the Development Environment: Installing Node.js runtime and npm (Node Package Manager) to manage external packages and backend dependencies.

    • Node.js History and Use Cases: Created by Ryan Dahl in 2009; ideal for non-blocking, I/O-intensive operations such as real-time mobile app backends, chat applications, and push notification services.

  • Session 2: Node.js Fundamentals and HTTP Server Creation

    • Basic Node.js Syntax and REPL: Read-Eval-Print Loop terminal environment for interactively testing JavaScript code snippets.

    • Understanding Modules and require(): Using CommonJS modular design (module.exports and require()) to structure backend code cleanly.

    • Creating a Simple HTTP Server: Utilizing the native http module to create a server listening on a specific port for incoming mobile app client HTTP requests.

Week 2: Core Modules and File System
  • Session 3: Native Utility Modules and File I/O

    • Core Utility Modules:

    • path: Safely joining and resolving file system paths across operating systems.

    • url: Parsing URL strings and query parameters sent from mobile clients.

    • querystring: Encoding and decoding URL query parameters.

    • Working with the File System (fs module): Performing read, write, update, and delete operations on server files (e.g., saving user uploads or reading configuration files).

  • Session 4: Asynchronous Operations and File Manipulation

    • Handling File Operations Asynchronously: Using callbacks, Promises, and async/await to perform file operations without blocking the event loop, ensuring high concurrency for multiple mobile clients.

Week 3: Event-Driven Programming
  • Session 5: Principles of Event-Driven Architecture

    • Event-Driven Architecture: Design pattern where application flow is determined by events (e.g., HTTP requests, database events).

    • Working with Event Emitters: Objects that emit named events that execute registered listener callback functions.

    • Creating Custom Events: Designing application-specific event flows, such as triggering background email processing when a mobile user registers.

  • Session 6: Implementation of the Events Module

    • Using the events Module: Instantiating EventEmitter, attaching listeners with .on(), and triggering events with .emit().

Week 4: Working with npm and Package Management
  • Session 7: Dependency Management and Package Architecture

    • Introduction to npm: The standard package manager for Node.js to install third-party libraries.

    • Installing and Managing Packages: Distinguishing between production dependencies, development dependencies (--save-dev), and global tools (-g).

    • Understanding package.json: Manifest file tracking project metadata, scripts, and package versioning (package-lock.json ensures deterministic installs).

  • Session 8: Module Publishing and Distribution

    • Creating and Publishing Packages: Building reusable Node modules and publishing them to npm registries to share code across mobile backend development teams.

Week 5: Building Web Servers with Express.js
  • Session 9: Express.js Foundations

    • Introduction to Express.js: Minimalist and flexible Node.js web application framework that simplifies routing and HTTP handling.

    • Setting Up an Express Server: Instantiating Express and binding it to a port.

    • Middleware and Routing Basics:

    • Routing maps HTTP methods and URLs to specific controller handlers.

    • Middleware functions execute during the request-response cycle for authentication, logging, and body parsing.

  • Session 10: HTTP Handling and Static Asset Serving

    • Handling HTTP Methods and Status Codes: Utilizing REST methods (GET, POST, PUT, DELETE, PATCH) and standard status codes (200 OK, 201 Created, 400 Bad Request, 401 Unauthorized, 404 Not Found, 500 Internal Server Error).

    • Serving Static Files: Using express.static() to serve media assets, images, or configuration files consumed by mobile frontends.

Week 6: Templating Engines and Dynamic Content
  • Session 11: Server-Side Rendering Tools

    • Introduction to Templating Engines: EJS, Handlebars, and Pug render dynamic HTML on the server, useful for mobile web views or admin portals.

    • Setting Up and Using Templating Engines: Integrating engines with Express using app.set('view engine', ...).

  • Session 12: Dynamic Content Integration

    • Creating Dynamic Content: Injecting backend data dynamically into views before serving them to clients.

Week 7: Building a RESTful API
  • Session 13: API Design and Architecture
    -