/ACS-2230-Server-Side-Architectures

πŸ” Build on knowledge of Resourceful and RESTful patterns and dive deep into the Node and Express ecosystem.

Primary LanguageCSS

ACS 2230 - Server-Side Architectures & Frameworks

Table of Contents

  1. Course Description
  2. Prerequisites
  3. Learning Outcomes
  4. Class Schedule
  5. Class Recordings
  6. Class Assignments
  7. Evaluation
  8. Late Assignment Policy
  9. Additional Resources
    1. Information Resources
    2. Interview Topics

Course Description

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.

Prerequisites

  1. WEB 1.1

Learning Outcomes

Students by the end of the course will be able to…

  1. Diagram and implement resource associations using a document-based database.
  2. Write advanced db queries with a focus on optimum performance and efficiency.
  3. Discern between differing levels of persistence and the use cases that best fit each.
  4. Implement authentication using JWT tokens and sessions.
  5. Invent, create, test, deploy, and deliver a custom, fully secured API.

Class Schedule

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

Class Recordings

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.

Class Assignments

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.

  1. Make Parties (Tutorial)
  2. Reddit.js (Tutorial)
  3. Passport Authentication Challenge
  4. TDD/BDD Challenges
  5. API Project

Evaluation

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 Assignment Policy

  • 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.

Additional Resources

Information Resources

Any additional resources you may need (online books, etc.) can be found here. You can also find additional resources through the library linked below:

Interview Topics

Algorithmic/Computer Science

Topics:

  • authentication
  • unit testing
  • async practices

Technical Discussion

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.