- Course Description
- Prerequisites
- Learning Outcomes
- Class Schedule
- Class Recordings
- Class Assignments
- Evaluation
- Late Assignment Policy
- Additional Resources
In this course, students build on knowledge of RESTful web patterns and dive deep into the Node and Express ecosystems. Students learn how to manage greater scope and complexity in their code while consistently keeping the user's experience in mind through implementing a clone of the popular website, Reddit. The course will also cover the procedures required to authenticate and authorize web application users.
Students by the end of the course will be able toβ¦
- Diagram and implement resource associations using a document-based database.
- Write advanced db queries with a focus on optimum performance and efficiency.
- Discern between differing levels of persistence and the use cases that best fit each.
- Implement authentication using JWT tokens and sessions.
- Invent, create, test, deploy, and deliver a custom, fully secured API.
Course Dates: Monday, March 29 β Wednesday, May 10, 2023 (7 weeks)
Class Times: Monday, Wednesday at 1:00β3:45pm
Class | Topics | Assignment Due |
---|---|---|
1 | Intro to Node | - |
2 | JS Intro & Asynchronous Programming | GIF Search Tutorial |
3 | HTTP Methods & Endpoint Design | Codecademy JS: Promises & Async/Await Promise Challenges |
4 | Databases | Reddit.js Part 1-3 |
5 | Testing with Mocha & Chai | Reddit.js Part 4-6 |
6 | Documentation with Docsify | TDD/BDD Challenges |
7 | Testing Express Routes | API Project Proposal/Documentation |
8 | Review/Lab Day | Chai Testing Challenges |
9 | Authentication with JWT | Reddit.js Part 7-9 |
10 | API Project Office Hours + Lab Day | |
11 | ACS 3210 Sneak Preview Node: Beyond Express Show & Tell: API Project |
API Project due Sunday @ 11:59pm PST |
All class recordings for Dani's class will be available here no later than 24 hours after the class session. For privacy reasons, please do not share the recordings outside of the ACS student body.
We will be using Gradescope this term, which allows us to provide fast and accurate feedback on your work. All assigned work will be submitted through Gradescope, and assignment and exam grades will be returned through Gradescope. As soon as grades are posted, you will be notified immediately so that you can log in and see your feedback. You may also submit regrade requests if you feel we have made a mistake.
- Make Parties (Tutorial)
- Reddit.js (Tutorial)
- Passport Authentication Challenge
- TDD/BDD Challenges
- API Project
To pass this course, you must earn at least a 70% weighted average, according to the following breakdown:
- API Project: 30%
- Tutorials, Assignments, Projects, & Class Participation: 50%
- All tutorials graded on completion
- Midterm and Final Assessment: 20%
In order to pass this course, you must also:
- Actively participate in class and abide by the attendance policy
- Make up all classwork from all absences
- Late assignments that are submitted more than 5 days (120 hours) after the deadline will be given a 25% late penalty.
- The absolute last day to submit any assignment will be Monday, March 3 at 11:59 PM.
If you require accommodations or have extenuating circumstances such as prolonged illness, please contact your instructor to request an extension.
Any additional resources you may need (online books, etc.) can be found here. You can also find additional resources through the library linked below:
- Eloquent JavaScript (Textbook)
- jwt.io: JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. JWT.IO allows you to decode, verify and generate JWT.
- make.sc/library
Topics:
- authentication
- unit testing
- async practices
Topics:
- Selecting a Stack: How do I choose the right stack? When should I use Node?
- Configuration vs. Convention: Determining your personal preferences regarding frameworks.