WEB322 Course Notes

Class Notes


Week Topics Notes
  1. Course Introduction
  • Development Environment / Technology / Tools
  • Web Servers & HTTP Request / Response Paradigm
  • HTTP Protocol Overview
    • Verbs
    • Status Codes
    • Headers
    • Request / Response Formats
  1. Node.js Introduction
  • What is Node.js / Why use it?
  • Modules explained
  • NPM – Node Package Manager
  • Package.json Explained
  • Building a simple web server using Node.js with Express.js
    • Files / Directory Structure
    • Downloading dependencies (Express.js) with NPM
    • Coding a simple server using Express
    • Sending Data back from a “get” request
  1. JavaScript
    Concept Review
  • Object Oriented JavaScript Review:
    • Custom Objects using Object Literal Notation & Function Constructors
    • Error handling with try / catch / finally & throw
    • Prototypal Inheritance
  • Advanced JavaScript / ES6 Features:
    • Promises
    • “var” vs “let” vs “const”
    • “class” keyword
    • “this” keyword & arrow functions (lexical “this”)
  1. Express.js Introduction
  • What is Express.js?
  • Configuration & Settings
  • Routing
  • Middleware
  • Error Handling
  • Chrome Dev tools – Network tab, Response data
  1. Processing Forms with Express.js
  • HTML Forms Review
  • Processing Forms in Express.js
    • HTTP Post & Urlencoded data
    • Content-Type in POST header & enctype in HTML forms
    • body-parser module (urlencoded form data)
    • Multer module (multipart form data – file uploads)
  1. Template Engines – Handlebars.js
  • Template Engines in Express.js
    • What is a Template Engine / Why do we need one
  • Handlebars.js
    • Including the express-handlebars module
    • Getting Started with Handlebars.js & Samples
    • Block Expressions / Helpers
    • Built-In Helpers
      • if, unless, each
    • Partials
  1. Relational Database
  • Setting up a “Postgres” Database
  • Downloading the “sequelize” & “pg” modules
  • Object-Relational Mapping Explained & Requesting Data
  • Returning & Formatting data using Handlebars.js
  1. MongoDB
  • What is a NoSQL Database? Advances / Disadvantages
  • Configuring a NoSQL Database (MongoDB)
  • Downloading / installing MongoDB Driver (module) for Node
  • Queries
  • Tools – Robo 3T (Robomongo)
  • Mongoose.js
  • Schema, indexes
  1. AJAX Review / Practical AJAX Programming
  • Review: What is AJAX? Why do we need it?
  • Requesting data (JSON) on the Client Side using JavaScript
    • XMLHttpRequest Object
    • Handling State Changes & Processing the Response
    • Updating the DOM
  • Processing XMLHttpRequest Requests on the server and returning data
  • RESTful API Introduction
  1. Managing State Information
  • Cookies
  • Sessions
  • Authorization vs. Authentication
  1. Introduction to jQuery & Bootstrap Frameworks
  • jQuery Introduction
    • Selectors, event handlers, AJAX
  • Introduction to the Bootstrap UI Framework
    • Responsive Layouts, HTML / CSS & jQuery Components
  1. Security Considerations
  • HTTPS
  • Letsencypt.org, free https certificates forever
  • Password Encryption, bcrypt.js
  1. Course Review
  • Course Review
  • Help with any outstanding Projects