Welcome To The Course!
  • Where Do We Begin?
The 10 Days of JavaScript: The Language Itself
  • Getting Started
  • Functions
  • Objects
  • Arrays
  • Arrays Exercise
  • Making Decisions
  • Higher-Order Functions
  • Returning vs Mutating
  • Scope & Context (Part 1)
  • Scope & Context (Part 2)
  • Miscellaneous Info (Part 1)
  • Miscellaneous Info (Part 2)
  • Building To-Do App (Part 1)
  • Building To-Do App (Part 2)
Server Basics
  • Why Do We Need a Server?
  • Node.js Intro
  • Text Editor Software
  • Our First Basic Server
  • Express Intro (Part 1)
  • Express Intro (Part 2)
  • What's Next? (Big Picture)
Database Basics
  • First Taste of a Database
  • Note for Advanced Students
  • CRUD: Actually Working With A Database
  • Initial Setup for App #1
  • Save Time: Automatic Node App Restarts
  • Quick Note About MongoDB Warning in Command-Line
  • Connecting Node App to Database
  • Solution to Common Database Problem
  • Installing NPM Packages Without Stopping Server/App
  • Reading Data from a Database
  • Updating a Database Item (Part 1)
  • Updating a Database Item (Part 2)
  • Deleting a Database Item
  • Create New Item Without Page Reload
  • Client-Side Rendering
  • What About Security?
  • Quick Note For Mac Users
  • Note For GitHub Users
  • Pushing Our App Onto The Internet
  • Pushing Future Changes To Your Heroku App
Starting Our Complex App (App #2)
  • What's Next?
  • Let's Begin App #2
  • Always Have The Current Year In The Footer
  • Important Note About Package Versions To Save You Frustration
  • What Is A Router?
  • What Is A Controller?
  • Security Note
  • What Is A Model?
  • Note About Arrow Functions & The "this" Keyword
  • Adding Validation To Our Model
  • Quick Misc. Clean Up
  • Quick Note About Connecting to Database
  • Connecting To Database In a Reusable Fashion
  • Best Practice Time Out: Environment Variables
  • Quick Note
  • Letting Users Log In
  • What is a Promise? (Part 1)
  • What is a Promise? (Part 2)
  • Running Multiple Promises Efficiently When Order Doesn't Matter
  • Hashing User Passwords
  • How Can We "Identify" or "Trust" a Request?
  • For Those Who Are In a Hurry (Security Note)
  • Understanding Sessions
  • Letting Users Logout
  • Adding Flash Messages
  • User Registration Improvements (Part 1)
  • User Registration Improvements (Part 2)
  • Adding User Profile Photos
User Created Posts
  • Letting Users Create Posts (Part 1)
  • Letting Users Create Posts (Part 2)
  • Post Model (Part 1)
  • Post Model (Part 2)
  • Viewing a Post (Part 1)
  • Viewing a Post (Part 2)
  • Performing a Lookup in MongoDB (Part 1)
  • Performing a Lookup in MongoDB (Part 2)
  • User Profile Screen
  • View Posts by Author
  • Is the Current Visitor the Owner of the Post?
  • The "Edit" Screen for a Post
  • Updating Posts in Database (Part 1)
  • Updating Posts in Database (Part 2)
  • Miscellaneous Improvements
  • Markdown: Safe User Generated HTML
  • Make This Quick Edit To Your Code
  • Let Users Delete a Post
Live Search Feature
  • Staying Organized: Front-End JavaScript
  • Showing and Hiding Search Overlay
  • Responding to Key Press Events
  • Back-End Aspect of Search
  • How To Create DB Indexes From Within Node.js Code