Build a Feature Rich, Production Ready, Web Application with Node JS

What you will learn

Intermediate to advanced level web development and programming with Node and Express JS

How to debug errors on the fly

How to pick up new technologies fast

How to build features like pagination, search, filtering, geolocation, clustering, geospatial indexing, authentication, authorization, admin dashboard, user profiles, image upload, payments, and more!

How to build on pre-existing skills learned from courses like The Web Developer Bootcamp or Free Code Camp


Code w/ Node is a web developer course that teaches you how to create production grade features for a robust web app using Node and Express JS. The course is also designed to help you become a self-sufficient developer who can solve complex problems on the fly.

Elevate your developer skills in this learn by doing course where we will be building a feature rich, production ready, web application with the NEMO stack (Node Express MongoDB & Other stuff).

In this course you will build a production ready RESTful CRUD application that has:
– Bootstrap 4 styling
– ES6 (and later) syntax
– Maps with Mapbox
– Geospatial indexing
– Search
– Filtering
– Pagination
– Image upload (single and multiple)
– Mailers
– Password reset
– And much more!

Master key skills, including:
– Debugging effectively with locus
– Looking up solutions online
– Problem solving on the fly

Code with Node features a strong Discord community, where you can find help with bugs or make new friends to chat about code with.

This isn’t your average run-of-the-mill follow along course. We’ll be running into real-world bugs and solving them together.

By the end of this course you will not only have what it takes to build a complex web application, but you will likely be a more confident developer who can solve problems and learn new skills on the fly.

Are you ready to become a self-sufficient developer?

Let’s get started! 🙂




Intro & Overview


How to Get Help with a Bug or Issue

Introduction & Trello Setup

Bootstrapping of Express & Database Design

Course Note About Express-generator Update

Setting up Express with Express-generator

Database Design

Source Code: Database Design


Post Routes

Source Code: Post Routes

Review Routes

Source Code: Review Routes

User Routes

Source code: User Routes


User Model

Post Model

Review Model

Source Code: Models

User Authentication

Set Up Passport

Configure Passport & Create Index Controller

Test postRegister Method

Note about the next lecture

Connect to MongoDB & Test /register POST Route

Add User Email & Profile Image

Source Code: User Authentication (1-5)

Refactor /register Post Route

Refactor postRegister & errorHandler

Source Code: User Authentication (6-7)

/login and /logout Routes

Source Code: User Authentication (8)

Refactor /login and /logout Routes

Source Code: User Authentication (9)

Post Resource

Posts – Index

Source Code: Posts Index

Posts – New

Source Code: Posts New

Posts – Create

Source Code: Posts Create

Posts – Show

Source Code: Posts Show

Posts – Index (Revisited)

Source Code: Posts Index Revisited

Posts – Edit

Source Code: Posts Edit

Posts – Quick Refactor

Source Code: Posts Quick Refactor

Posts – Update

Source Code: Posts Update

Posts – Destroy

Source Code: Posts Destroy

Images Upload with Cloudinary

Posts – Images Upload – Create

Source Code: Posts – Images Upload – Create

Posts – Images Upload – Review

Source Code: Posts – Images Upload – Review

Posts – Images Upload – Client Validation

Source Code: Posts – Images Upload – Client Validation

Posts – Images Upload – Edit/Update

Source Code: Posts – Images – Upload Edit/Update

Posts – Images Upload – Edit/Update – Review

Posts – Images Upload – Delete

Source Code: Posts – Images Upload – Delete

Geolocation with Mapbox

Important note about the following lecture

Posts – Mapbox – Signup and Geocode

Source Code: Posts – Mapbox – Signup and Geocode

Posts – Mapbox – Displaying the Map

Source Code: Posts – Mapbox – Displaying the Map

Posts – Mapbox – Dynamic Map

Source Code: Posts – Mapbox – Dynamic Map

Posts – Mapbox – Update Location

Source Code: Posts – Mapbox – Update Location

EJS Layouts

Layouts – Intro

Layouts – Show

Source Code: Layouts – Intro & Show

Layouts – Navbar

Source Code: Layouts – Navbar

Layouts – Flash Messages – Part 1

Layouts – Flash Messages – Part 2

Source Code: Layouts – Flash Messages

Review Resource

Reviews – Initial Setup

Source Code: Reviews – Initial Setup

Reviews – Create

Source Code: Reviews – Create

Reviews – cURL

Source Code: Reviews – cURL

Get Instant Notification of New Courses on our Telegram channel.

Reviews – Author

Source Code: Reviews – Author

Reviews – Toggle Edit Form

Reviews – Update

Reviews – Cleanup of Client JS

Source Code: Reviews – Edit/Update

Reviews – Authorization

Source Code: Reviews – Authorization

Reviews – Delete

Source Code: Reviews – Delete

Reviews – Restrict

Source Code: Reviews – Restrict

Reviews – Delete Refs

Source Code: Reviews – Delete Refs

Reviews – Star Rating

Source Code: Reviews – Star Rating

Sublime Text – Markdown Preview Package

Reviews – Clear Rating Button

Source Code: Reviews – Clear Rating Button

Post – Seeds & Pagination

Posts – Seeds & Pagination Pt. 1

Posts – Seeds & Pagination Pt. 2

Source Code: Posts – Seeds & Pagination

Post – Average Rating

Posts – Average Rating Pt. 1

Posts – Average Rating Pt. 2

Source Code: Posts – Average Rating

Cluster Maps

Cluster Maps Pt. 1 – Follow Along

Cluster Maps Pt. 2 – Follow Along

Cluster Maps Pt. 3 – Explanation

Cluster Maps Pt. 4 – Explanation

Cluster Maps Pt. 5 – Explanation

Cluster Maps Pt. 6 – Post Create and Update

Source Code: Cluster Maps

Multer Storage Cloudinary

Multer Storage Cloudinary Pt 1.

Multer Storage Cloudinary Pt 2.

Source Code: Multer Storage Cloudinary

User Authentication and Authorization (Cont.)

Pt. 1 – Add methods to routes

Pt. 2 – Add views and validation middleware

Source Code: User Auth. Continued (Pt.1 & 2)

Pt. 3 – Remove checkIfUserExists and update postLogin

Pt. 4 – Update postRegister, add email validation, and fix Not Found error

Source Code: User Auth. Continued (Pt.3 & 4)

Pt. 5 – Add isAuthor Middleware

Pt. 6 – Update UI and Test Pt. 5 Changes

Source Code: User Auth. Continued (Pt.5 & 6)

Housekeeping – Bug Fixes and Updates

Intro – Skit

Bug Fixes and Updates Pt. 1

Source Code: Bug Fixes and Updates Pt. 1

Bug Fixes and Updates Pt. 2

Source Code: Bug Fixes and Updates Pt. 2

User Profile

Pt. 1 – Create profile and add recent posts

Source Code: User Profile Pt. 1

Pt. 2 – Add update profile form and update navbar

Pt. 3 – Add client JS for form validation

User Profile (4)

Source Code: User Profile (2 – 4)

User Profile (5)

Source Code: User Profile (5)

Profile Image

Feature Overview

Client Setup and User Model Update

Add deleteProfileImage Middleware

Update Index Controller

Update User (Index) Routes

Source Code: Profile Image

Forgot Password / Reset

Pt. 1 – Feature Overview

Pt 2. – Sign Up for SendGrid

Pt. 3 – New Guide Format

Pt. 4 – Add API key, Install SendGrid, & Update User Model

Pt. 5 – Views

Pt. 6 – Index Controller (1)

Pt. 7 – Index Controller (2)

Pt. 8 – Index Controller (3)

Pt. 9 – Routes

Source Code: Forgot Password / Reset

Search and Filter

Pt. 1 – Feature Overview

Pt. 2 – Code Overview

Pt. 3 – Add 2dsphere Index to Post Model

Pt. 4 – Update Seeds File & Re-seed Database

Pt. 5 – Views (boilerplate & paginatePosts)

Pt. 6 – Views (searchFilter)

Pt. 7 – Views (searchFilter cont.)

Pt. 8 – Views (posts/index)

Pt. 9 – Controllers (posts)

Pt. 10 – Views Refactor (1)

Pt. 11 – Views Refactor (2)

Pt. 12 – Middleware (1)

Pt. 13 – Middleware (2)

Pt. 14 – Middleware (3)

Pt. 15 – Middleware (4)

Pt. 16 – Middleware (5)

Pt. 17 – Middleware (6)

Pt. 18 – Routes, Public, and Feature Test

Pt. 19 – Use My Location

Note: Bug Fix

Source Code: Search and Filter


Pt. 1 – Feature Overview

Pt. 2 – Copy Theme Files and Install Moment

Pt. 3 – Update Seeds, Index Controller, Styles, and Client JS