ITP 404: Advanced Front-End Web Development

(11/26) Week 14 - Thanksgiving (No Class)

(11/19) Week 13 - Introduction to Ember

  1. Convention Over Configuration
  2. Ember.js
  3. Ember CLI Surge
  4. Wildcard / Globbing Routes
  5. Extra Credit (due 11/26 at 11:59pm)
  6. Code
  7. Lecture Recording

(11/12) Week 12 - Environment Variables in React / React Hooks

  1. Environment Variables with Create React App
  1. React Hooks Documentation
  2. Counter with a class
  3. Counter with a hook
  4. Fetching data with useEffect
  5. Tip: Optimizing Performance by Skipping Effects
  6. Fetching data with componentDidUpdate vs. useEffect
  7. Lab 5 - Research Convention Over Configuration (due 11/19 at 11:59pm)
  8. Lecture Recording

(11/5) Week 11 - Apps with CRUD (Part 2) - The Frontend

  1. Node.js Environment Variables
  2. Hosting a Node.js API on Heroku
  3. Cross-origin Resource Sharing (CORs)
  1. <Redirect>
  2. Assignment 8 (due 11/12 at 11:59pm)
  3. Code (see Pull Requests)
  1. Lecture Recording

(10/29) Week 10 - Midterm Review

  1. Curved Midterm Score Calculator
  2. Lab 4 - Final Project Proposal (due 11/5 at 11:59pm)

(10/22) Week 9 - Midterm

(10/15) Week 8 - Apps with CRUD (Part 1) - The API

  1. Review Component Testing
  2. REST APIs (slides)
  3. JSON:API
  4. Building an API in Node.js with Express
  5. nodemon
  6. Postman App
  7. No Assignment or Lab
  8. Code
  9. Lecture Recording

(10/8) Week 7 - Testing Components and Continuous Integration

  1. Prettier
  2. Jest Testing Framework
  1. React Testing Library
  2. Travis Continuous Integration (CI)
  1. Assignment 7 (due 10/15 at 11:59pm)
  2. Lab 3 - Research JSON:API (due 10/15 at 6pm)
  3. Starter Files
  4. Code
  5. Lecture Recording

(10/1) Week 6 - Client-side Routing

  1. React Router
  2. componentDidUpdate
  3. Nested Routes
  4. Assignment 6 (due 10/8 at 11:59pm)
  5. Lab 2 - Research Testing (due 10/8 at 6pm)
  6. Code
  7. Lecture Recording

(9/24) Week 5 - Building Reusable Components Part 1 (React)

  1. One-Way Data Flow
  2. React Fragments
  3. children prop
  4. Typechecking with PropTypes
  5. Assignment 5 (due 10/1 at midnight)
  6. Code
  7. Lecture Recording

(9/17) Week 4 - Events, Data Flow, and Managing Component State (React)

  1. Handling Events
  2. Forms
  3. Controlled Components Demo
  4. Lifting State Up
  5. Lowest Common Ancestor
  6. Assignment 4 (due 9/24 at midnight)
  7. Code
  8. Lecture Recording

(9/10) Week 3 - Introduction to Components (React)

  1. create-react-app
  2. JSX
  3. Components, Props, and State
  4. State and Lifecycle
  5. Conditional Rendering
  6. Promise.all
  7. fetch()
  8. Deploying React Projects to Surge.sh
  9. Quiz Time on Kahoot!
  10. Assignment 3 (due 9/17 at midnight)
  11. Lecture Recording
  12. Code

(9/3) Week 2

  1. Lecture Recording
  2. Async/Await and Try/Catch Blocks
  3. Client-side Templating with Handlebars
  4. Moment.js
  5. Event Delegation
  6. Starter files
  7. Assignment 2 (due 9/10 at midnight)
  8. Lab 1 - Research React (due 9/10 at midnight)
  9. TODO: Install Node.js before class next week

(8/27) Week 1

  1. Command Line Basics
  2. Introduction to Git, GitHub, and Slack
  3. Quiz Time on Kahoot!
  4. Traditional Web Apps vs. Single Page Apps (SPAs)
  5. Ajax
  6. Synchronous vs Asynchronous Demo
  7. Promises Part 1
  8. HTTP response status codes
  9. JSON
  10. Client-Side Rendering Without a Library
  11. XSS
  12. DOMPurify
  13. Quiz Time on Kahoot!
  14. Assignment 1 (due 9/3 at midnight)
  15. Lecture Recording
  16. Code