• Skip to primary navigation
  • Skip to main content
  • Skip to footer
Code The Dream School
Code the Dream Labs Logo

Code The Dream School

Main hub for class materials for Code the Dream’s classes

  • Code the Dream Home

Search Code The Dream School

FERRET: Node/Express Class

Welcome to the Code the Dream’s Node/Express class, Ferret!

Node, short for Node.js, is an implementation of the Chrome JavaScript engine, but one that runs outside of the browser, so that it can be used to write standalone programs as well as web serving applications. Express is a framework for Node that makes the creation of web applications very easy. These are complemented by a vast library of NPM packages to make adding common functions easy. The combination is a leading framework throughout the IT industry, and continues to grow in adoption. And, all programming in Node and Express is in JavaScript, so the back end engine for an application can be written in the same language as the front end.

Below is a quick outline of this course. Remember to keep pace with the mentor sessions, and don’t hesitate to ask lots of questions! Slack is the best place for your questions, and you have a Slack channel for that purpose (#ferret-discussion). Get oriented on the Student Resources page. See below for information on mentor sessions.

If you need assistance with non-curriculum items please contact your Cohort Instructional Leader, Chase Allman-Knieper, on Slack or by this email: ferret@codethedream.org

Course Calendar

WeekStart DateDue DateLessons
Pre-ClassSept 26, 2023Machine Setup
Github Cookbook
Gear up for Class
1Sept 27, 2023Oct 3, 2023Node Introduction
2Oct 4, 2023Oct 10, 2023NPM and Async Patterns
3Oct 11, 2023Oct 17, 2023Introduction To Express
4Oct 18, 2023Oct 24, 2023Middleware, REST Methods,
and Postman
5Oct 25, 2023Oct 31, 2023Task Manager API Part 1
6Nov 1, 2023Nov 7, 2023Task Manager API Part 2
7Nov 8, 2023Nov 14, 2023Using Query Parameters
8Nov 15, 2023Nov 21, 2023JWT Basics
–Nov 22, 2023Nov 28, 2023HOLIDAY
9Nov 29, 2023Dec 5, 2023Jobs API Part 1
10Dec 6, 2023Dec 12, 2023Jobs API Part 2
11Dec 13, 2023Dec 19, 2023Catch Up Week
–Dec 20, 2023Jan 2, 2024HOLIDAY
12Jan 3, 2024Jan 9, 2024A Front End for the Jobs API
13Jan 10, 2024Jan 16, 2024Server Side Rendering with EJS
14Jan 17, 2024Jan 23, 2024Authentication with Passport
15Jan 24, 2024Jan 30, 2024Using EJS in a Database
Application
16Jan 31, 2024Feb 6, 2024Final Project Begins
17Feb 7, 2024Feb 13, 2024Final Project Completed
Feb 14, 2024Feb 16, 2024Final Project Presentations
Mar 4, 2024TBDPracticum

Before You Begin

You should plan to use the VSCode editor for this course. You should already know how to access your terminal. Refer to the Pre-Class week above to help with any environment setup.

This is a cheat sheet for some of the concepts of this course.

Submitting Your Assignments

For each lesson, you will have a coding assignment and a mindset assignment. Follow the coding assignment instructions and make changes to your code as instructed. You should have basic familiarity with git before starting this course, but if you aren’t confident in your git skills, see this Github Cookbook. For each assignment, you will do the following steps:

  1. Create a branch for your lesson. Commit changes to that branch periodically, and push it to GitHub.
  2. When the lesson is complete and all your work has been pushed to GitHub, open a pull request for your branch. Note: The target for your pull request should be the main branch of your own repository, not the Code-the-Dream-School Repository.
  3. Then use the Assignment Submission Form to submit the link to your pull request, your mindset answers, and feedback.

Please review the homework submission tips at this link before you begin.

When Submitting Your Code

When you submit your code, it should be working. If you are not able to get your code working, ask for help on Slack, or bring up questions in a mentor session, or arrange a 1:1 mentor session.

All code should be readable. There are many aspects to good code style, but the most important for right now is indentation! The content of blocks, methods, and classes should be indented two spaces. The end statement should line up, being indented the same number of spaces, with the statement that begins the block, method, or class. Here’s an example:

function my_function(parameter) {
  if (x === 0) {
    return x;
  else {
    return error;
  }
}

We need proper indentation in order to be able to review your assignments. You need proper indentation to make sure your code is structured correctly. There are two npm packages that will help you (once you know how to use npm): prettier and eslint. Prettier can reformat your code. Eslint can find syntax errors and bad practices.

Having useful commenting in your code is also advised. It helps you, your reviewer, and anyone else who may work with your code find needed areas during review or debugging. Here’s an example of a useful comment on the example code from above:

//ERROR CATCH FUNCTION
function my_function(parameter) {
  if (parameter === 0) {
    return parameter;
  else {
    throw new Error("Failure occurred.");
  }
}

Final Project

For the final project, each student implements an Express application that includes authentication and CRUD operations to a MongoDB database. The application may be implemented as APIs plus a front end (full stack) or using Server Side Rendering with EJS templates. The rubric is below:

Rubric for Express Final Project

A sample final project is described here. The provided sample is for EJS, but all students should read the description at the link, as it provides an important introduction to security in web applications. Look at the rubric for a warning about reusing this code.

Mentor Session Calendar / Links

Group Instructors

Group Instructors are volunteer mentors who will host one or more one-hour long group sessions weekly. You do not need to sign up for the sessions anymore; the mentors will inform Code the Dream or your attendance. You must attend a minimum of 1 session (group or 1:1) each week. The mentor session schedule for your class can be found here: Ferret Mentor Session Schedule

1:1 (One-on-One) Mentors

One-on-One Mentors are volunteer mentors who will be assigned specific students. They will be reviewing your assignments as you turn them in and will be reaching out to you by Slack every week to see how you’re doing with the materials/lessons. Feel free to reach out to them by direct messaging them on Slack if you have questions you need help with outside of group sessions. If you have more than a quick question for them, please schedule an appointment with them using the links on the session schedule sheet. If your assigned mentor is unavailable when you are, please reach out to any of the other 1:1 mentors with availability that matches yours.

Footer

Copyright © 2025 Code the Dream School | All Rights Reserved | Privacy Policy