Skip to content

pupilfirst/wd201-scripts

Repository files navigation

Scripts for WD201 videos

This repository contains the scripts for videos and content for the WD201 course, to be hosted at Pupilfirst School.

License

CC BY-SA 4.0

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

© Pupilfirst Pvt. Ltd.

CC BY-SA 4.0

More details regarding the licensing history of this content can be found in the relevant section of the current version of the WD201 course.

L1. Introduction to Node.js

Welcome to the course

  1. A detailed guide to getting help
  2. Recording and sharing your screen

Intro to Node.js

  1. What is Node.js and how to install it
  2. Running our first program
  3. Using Node.js REPL

Intro to Git and GitHub

  1. Using git to version control our code
  2. Git & Github: A quick demonstration

Code Quality

  1. Code quality using ESLint

Milestone

  1. Milestone

L2. Working with NPM

Working with NPM

  1. Why is there a need for a library ecosystem?
  2. What is NPM?
  3. What is package.json
  4. What are NPM scripts
  5. Explore built in fs module
  6. Explore streams
  7. Working with npm install
  8. Accepting command line arguments
  9. Let's write a program!

Level up

  1. Orientation: Why plagiarism is a bad idea
  2. Milestone

L3. Node.js deep dive

Key Concepts

  1. What is an event loop?
  2. What is Closure in JavaScript?
  3. Callbacks, Promises, and async - await

Apply closure

  1. Let’s write a to-do application
  2. Milestone

L4. Testing

  1. What is testing, and why do we need it?
  2. TDD workflow
  3. What is jest?
  4. Git hooks: pre-commit hook
  5. Running tests, and linting automatically as pre-commit hook using Husky, lint staged
  6. Milestone

L5. Databases and Sequelize

  1. Why Database?
  2. Setting up Postgres
  3. Connect to Database and create table
  4. Creating Sequelize model and manipulating data
  5. Database migrations
  6. Using separate database for testing
  7. Milestone

L6. Backend Web development with Express.js

  1. Hello world with Express.js!
  2. Connect our PostgreSQL database to the Express.js application
  3. Routes in Express.js
  4. Add two features: create a new to-do, and mark an existing to-do as completed
  5. Add tests to Express.js application
  6. Milestone

L7. EJS Templating

  1. Render dynamic data inside HTML with EJS templates
  2. Using view templates
  3. What is MVC?
  4. Heroku: deploy your application
  5. Milestone

L8. Add User Interface for To-do Application

  1. Converting a design into a webpage
  2. Create an interface for accepting a new to-do
  3. Create an interface for listing the todos
  4. Create an interface to delete a to-do
  5. Milestone

L9. HTML forms to save and accept user inputs

HTML Forms

  1. Adding a new to-do with the help of form
  2. Updating a to-do with help of form
  3. Deleting a to-do with help of form

CSRF token

  1. What are APIs
  2. Send JSON or HTML response based on request headers
  3. What is Cross Site Request Forgery (CSRF) and why should we care?
  4. Use csurf package in express.js application
  5. Milestone

L10. User Authentication and final wrap-up

Sequelize associations

  1. Introduction
  2. Create the users table with a sequelize migration
  3. Associations: adding owners to todo

Signing up new users

  1. Creating a user sign-up page
  2. Add user authentication using passport.js
  3. Storing passwords with bcrypt

Cookies, sessions, and the user authentication workflow

  1. Create a simple sign-in page which verifies the user's password

  2. What exactly is a cookie and why should you care?

  3. Implement sign-out by resetting the user session

  4. A logged-in user should see and modify only their own to-dos and nobody else's

  5. Fix the failing tests

Flash messages and sequelize validations

  1. Showing one-off messages to users with connect-flash
  2. Ensure no blank to-dos are ever created, with Sequelize validations
  3. Milestone

Releases

No releases published

Packages

No packages published