- Syllabus
- TA / Grader: Devansh Shah
- TA: Yingzhe (Nikki) Liu / Office Hours: 2:30 - 4:00pm every Friday on Zoom
- Final Project Requirements (due 12/5 at 11:59pm)
(11/30) Week 15 - React Function Components and Hooks / Authentication for SPAs
- Demo: Converting Class Components to Function Components (STARTER - Clone or download this repo)
- Demo: Converting Class Components to Function Components (Pull Requests)
- Documentation: Introducing Hooks
- Break
- Sign up for an Auth0 account. I signed in with GitHub.
- Demo: Authentication for SPAs (STARTER - Clone or download this repo)
- Demo: Authentication for SPAs (Pull Requests)
- Tutorial: The Complete Guide to React User Authentication with Auth0
- Break
- Demo: Prop Drilling
- Demo: React Context
- Documentation: Context
- Documentation: useContext
(11/23) Week 14 - Guest Lecture with Kousha Hamidi on Cloud Computing
(11/16) Week 13 - WebSockets, Environment Variables, and Async/Await
- Slides: HTTP vs. WebSockets
- Chat Demo
- Chat Demo: Frontend Code (React)
- Chat Demo: Backend Code (Node.js)
- Async/Await Demo
- Documentation: Create React App Environment Variables
- Tutorial: Async/Await
(11/9) Week 12 - Introduction to Building a REST API in Node.js
- Download: TablePlus database GUI
- Download: Postman App
- Demo: Blog API in Node.js using Postgres
- Demo: Blog React app using our Node API
- Documentation: Express
- Documentation: node-postgres
(11/2) Week 11 - Testing React Components
- Slides: Testing
- Demo: StarRating with tests (STARTER)
- Demo: StarRating with tests (COMPLETED)
- Documentation: Jest JavaScript Testing Framework
- Documentation: React Testing Library
- Assignment 9 (due 11/9 at 11:59pm)
(10/26) Week 10 - Patterns for Building Reusable Components
(10/19) Week 9 - Building Modals with React Portals
Class was cancelled but a Zoom recording was announced that covers this week's material.
(10/12) Week 8 - Midterm
(10/5) Week 7 - Building a React Application with CRUD (Part 2 / POST, DELETE, PUT)
- Topics: Client-side Routing, REST APIs, CRUD, JSON Server, and Notifications
- React Demo
- React Router Documentation
- React Toastify Documentation
- Assignment 7 - Final Project Overview (due 10/19 at 11:59pm)
(9/28) Week 6 - Building a React Application with CRUD (Part 1 / GET)
This week will be taught remotely over Zoom.
- Topics: Client-side Routing, REST APIs, CRUD, and JSON Server
- Slides: REST APIs
- JSON Server (GitHub)
- React Demo
- React Router Documentation
- Assignment 6 (due 10/5 at 11:59pm)
(9/21) Week 5 - React: Data Flow, Forms with Bootstrap, and Controlled Components
- Slides: React Data Flow
- React Demo
- Function Binding
- Bootstrap Documentation: Forms
- React Documentation: Forms
- Assignment 5 (due 9/28 at 11:59pm)
(9/14) Week 4 - The Fetch API, Promises (Part 2) / React: Lifecycle Methods, Rendering Arrays
- Slides: Promises (Part 2), Fetch, Mapping Arrays
- Playing with
fetch
- React Demo
- React Documentation: Lists and Keys
- React Documentation: Life Cycle Methods
- React Documentation: Inline If with Logical && Operator
- Assignment 4 (due 9/21 at 11:59pm)
(9/7) Week 3 - Introduction to JavaScript Frameworks (React)
- Download RunJS
- Object-Oriented Programming (OOP) in JavaScript - Classes, objects, properties,
constructor
, methods,this
, and inheritance - Slides: An Introduction to JavaScript Frameworks
- Assignment 3 (due 9/14 at 11:59pm)
(8/31) Week 2 - Client-side Templating with Handlebars, Event Delegation
(8/24) Week 1 - Course Intro, Asynchronous vs. Synchronous, JSON, AJAX, Promises, XSS
- Slides: Course Intro, Asynchronous vs. Synchronous, AJAX, JSON, Promises (Part 1)
- Demo starter files (Click Code > Download Zip)
- Demo pull requests
- Assignment 1 (due 8/31 at 11:59pm)