Foundations of Web Development
PART 1 - Core Web
1.
Introduction
1.1.
What, Who, Why
1.2.
Languages and Organization
1.3.
The Field of Web Development
2.
Networks
2.1.
Protocols and the IP Protocol
2.2.
Transport Control Protocol (TCP)
2.3.
Socket Programming
2.4.
Echo Client and Server
2.5.
Internet History
3.
Hypertext Transfer Protocol
3.1.
Hypertext
3.2.
Nouns - URLS and Domains
3.3.
Verbs - Requests and Responses
3.4.
HTTP Implementation - The Hard Way
4.
Hypertext Markup Language (HTML) - Part 1
4.1.
HTML Basics
4.2.
HTML Structure
4.3.
Inline Elements, Text, and Links
4.4.
Block Elements
4.5.
Media Types and Media Elements
5.
JavaScript Kickstart
5.1.
Background
5.2.
Language Basics
5.3.
Variables and Scope
5.4.
Control Flow
5.5.
Objects
5.6.
Arrays
5.7.
Functions
5.8.
Class-like Features & Prototypes
5.9.
Real Classes
6.
HTML Part 2 - Forms
6.1.
Forms and Responses
6.2.
Form Controls
6.3.
Guessing Game - Version 1
PART 2 - Server-side Level-ups
7.
Asynchronous JavaScript
7.1.
Server-side Level-ups
7.2.
Asynchronous Programming and Callbacks
7.3.
Promises
7.4.
Async and Await
8.
Routing, Routers, and a Framework
8.1.
Matching and Routing
8.2.
Modules
8.3.
Guessing Game - Version 2 - Framework
9.
Working with Databases
9.1.
Working with Databases
9.2.
Database maintenance
9.3.
Guessing Game Version 3 - Database
10.
The NPM Ecosystem
10.1.
Using NPM
10.2.
Publishing to NPM
11.
Templating
11.1.
HTML Templates
11.2.
PUG Templates
11.3.
Guessing Game Version 4 and 5 - Templates
12.
Express Framework
12.1.
Using Express
12.2.
Guessing game Version 6 - Express
13.
Cookies and Sessions
13.1.
Cookies
13.2.
Sessions
13.3.
Guessing game Version 7 - Session until complete
14.
Authentication and Authorization
14.1.
Authentication
14.2.
Encryption - HTTPS and TLS
14.3.
Authentication - Revisited
14.4.
Credentials on the Server
14.5.
Guessing game Version 8 - Logging in
PART 3 - Client-side
15.
Cascading Style Sheets
15.1.
Part 3 - Client-side
15.2.
Styles
15.3.
Cascade
15.4.
Text and Inline Control
15.5.
Lists and tables
16.
CSS Layout
16.1.
Box Model
16.2.
Flow Layout
16.3.
Positioning
16.4.
Flexbox
16.5.
Grid Layout
16.6.
Responsive Design
16.7.
Guessing Game version 9 - with style
16.8.
More on CSS
17.
CSS Frameworks
17.1.
Framework Designs
17.2.
Example: Bootstrap
18.
Client-side JavaScript
18.1.
Where are we?
18.2.
Adding JS and using I/O
18.3.
Document Object Model
18.4.
Events and Timers
18.5.
Guessing Game in the browser
18.6.
How did we get here?
19.
JavaScript and HTTP (AJAX, REST)
19.1.
Overview of AJAX
19.2.
Web APIs and REST
19.3.
Guessing Game - with AJAX
20.
Single Page Applications & Vue
20.1.
Reactive Frameworks
20.2.
Vue.js
20.3.
Guessing Game - with Vue
PART 4 - Ops and Infra
21.
Web Security
21.1.
Overview
21.2.
Encrypted HTTP
21.3.
Cross-site Attacks
21.4.
Content Security
21.5.
Client data
21.6.
Client input
21.7.
Multi-tenant concerns
22.
Web Application Deployment
Light
Rust
Coal
Navy
Ayu
Foundations of Web Development
Authentication and Authorization