ITP 405: Advanced Back-End Web Development

(4/23) Week 16 - Real-time Web Applications with WebSockets, Conclusion

  1. Review written exam
  2. Demo: Chat Frontend Starter
  3. Demo: Chat Frontend
  4. Demo: Chat Backend
  5. Conclusion (slides)
  6. Final project requirements (due Sunday, 5/4 at 11:59pm)

(4/21) Week 15 - Written Exam

  1. Written Exam
  2. Assignment 8 (due on 4/28 at 5pm)

(4/14) Week 14 - Building a REST API (Part 2), Introduction to Node.js

  1. Demo (See commits on 4/13)
  2. Laravel documentation: Laravel Sanctum
  3. Introduction to Node.js (slides)
  4. Install Node.js with Volta
  5. Demo (Node.js)
  6. Assignment 8 (due in 2 weeks on 4/28 at 5pm)
  7. Final Project Extra Credit
  8. Upcoming: Written Exam on 4/21

(4/7) Week 13 - Building a REST API (Part 1)

  1. What is an API? (slides)
  2. Insomnia app
  3. Demo (See commits on 4/6 - 4/7)
  4. Laravel documentation: Laravel Sanctum
  5. Laravel documenation: Resource controllers
  6. Laravel Documentation: Route model binding
  7. Laravel Documentation: Global response() function
  8. Laravel Documentation: Eloquent Serialization
  9. Laravel Documentation: Eloquent API Resources
  10. The JSON:API Specification
  11. Upcoming: Written Exam in 2 weeks on 4/21

(3/31) Week 12 - Consuming Third-Party APIs, Caching

No class. Recorded lecture. See Brightspace for link to recording.

  1. What is an API? (slides)
  2. Demo
  3. Laravel Documentation: Cache
  4. Laravel Documentation: HTTP Client
  5. Assignment 7 (due in 2 weeks on 4/14 at 5pm)

(3/24) Week 11 - Writing Migrations, Custom Middleware, Sending Email, and Queues

  1. Demo (See commits on 3/24)
  2. Laravel Documentation: Migrations
  3. Laravel Documentation: Middleware
  4. Laravel Documentation: Mail
  5. Laravel Documentation: Queues
  6. Assignment 5 (due on 3/31 at 11:59pm)
  7. Assignment 6 (due in 2 weeks on 4/7 at 5pm)
  8. Final project (due Sunday, 5/4 at 11:59pm)

(3/17) Week 10 - Spring Break

No class

(3/10) Week 9 - Midterm Practical

  1. Midterm Practical

(3/3) Week 8 - Authentication

  1. Example: Putting logic in models
  2. Laravel Documentation: Accessors
  3. Demo (See commits on 3/3)
  4. Laravel Documentation: Migrations
  5. Laravel Documentation: Authentication
  6. Laravel Documentation: Authentication Starter Kits
  7. Upcoming: Midterm Practical next week on 3/10
  8. No assignment

(2/24) Week 7 - Object-Relational Mapping

  1. Review Assignment 3
  2. ORM slides
  3. Laravel Debugbar
  4. Demo (See commits on 2/23 and 2/24)
  5. Laravel Documentation: Eloquent
  6. Laravel 12 released today
  7. Assignment 4 (due 3/3 at 5pm)

(2/17) Week 6 - Presidents' Day

No class

(2/10) Week 5 - Inserting data with the query builder, validation, and flash data

No class. Recorded lecture. See Brightspace for link to recording.

  1. Review Assignment 2
  2. Laravel VS Code Extension
  3. CSRF slides
  4. Demo (See commits on 2/8)
  5. HTML for album form
  6. Assignment 3 (due in 2 weeks on 2/24 at 5pm)
  7. Reading: Protecting Web Applications Against Cross-Site Request Forgery (CSRF) Attacks
  8. Laravel Documentation: Validation
  9. Laravel Documentation: Redirecting With Flashed Session Data

(2/3) Week 4 - Introduction to Laravel

  1. Review Assignment 1
  2. MVC Slides
  3. Demo (See commits on 2/2 and 2/3)
  4. Essential Laravel Sail Commands
  5. Video: PHP Namespaces in under 5 Minutes
  6. Assignment 2 (due 2/10 at 5pm)
  7. Action item: Before you leave class, create a Laravel application for Assignment 2 and push it to GitHub

(1/27) Week 3 - Review of Database-driven Web Pages with PHP and SQL

  1. Install and Configure MAMP
  2. Demo
  3. Assignment 1 (due 2/3 at 5pm)
  4. Markdown and README.md files
  5. Action Item: Create a Laravel application called "music-app"

(1/20) Week 2 - MLK

No class

(1/13) Week 1 - Course Introduction, Git, GitHub, and GitHub Classroom

  1. Slides: Course introduction
  2. TA introduction
  3. USC Viterbi Slack
  4. How to ask me code related questions on Slack
  5. Introduction to Git and GitHub
  6. How to submit code through GitHub Classroom
  7. Practice assignment
  8. Download TablePlus database GUI
  9. Accessing this SQLite database via TablePlus
  10. Cheatsheet for accessing SQLite from the CLI
  11. Action item: Familiarize yourself with this SQLite database
  12. Action item: Familiarize yourself with OOP