This course is divided into 8 Modules, extending over 2 sections.
The first half of the course (the "Backend Section") is made up of 4 modules:
- REST APIs
- Authentication and Authorization
- Realtime (Sockets, Messages, Queuing)
- Serverless Applications
The second half of the course (the "Frontend Section") is comprised of 4 modules, focused on React
- React Basics / Component Based Design
- Hooks and Context
- Redux
- React Native and other Frameworks
- Mastery of JavaScript Fundamentals
- Objects, Factories, Classes
- Standard and Arrow Functions
- Looping, Iteration, Traversal of Arrays and Objects
- Recursion
- Documentation best practices with JSDoc
- Understanding of core data structures
- When each structure is most appropriate
- Real world applications of each structure
- Looping, Iteration, Traversal
- Stacks & Queues
- Linked Lists
- Trees
- Graphs
- Hash Tables
- Creation and operation of an Express web server
- Static Routes
- Dynamic Routes
- Creation and operation of an Express API Server
- RESTful, Dynamic Model Management
- Authenticated Access with RBAC
- Swagger Documentation
- Event driven application development using Socket.io and Web Sockets
- Creation and operation of a Socket.io Message Queue Server and Client Library
- Creation of a single page web app in React
- Creation of a mobile app with React Native
- Deploy a website to AWS, Heroku, Netlify
- Deploy an API, Database, Lambda Functions, and Queueing Service at AWS
It's advisable that students first make an new organization in Github (perhaps called '401-js-their-name') that these repositories can be created in, to organize things better.
-
READING (Due before each lecture)
- Reading assignments should be done as articles/notes in the *wiki- of their repo fork
-
LAB Assignments (4 per module)
- 10 Points (graded on the rubric)
- ~ 3-5 Hours
- Should be completed in a new repository for each day
- Generally, these are smaller implementations, refactors, and practice to support the lecture concept. Not necessarily a full-scale application.
- Code must be tested through GitHub Actions and deployed through either Heroku or AWS
- JS Code must be documented with JSDoc
- Students must use the README.md template (from the resources folder) to complete their assignment
- The README requires working links to deployed code, GitHub Actions tests, functional documentation, test documentation and a UML and/or data-flow diagram.
-
DS&A IMPLEMENTATION
- 10 Points (complete/incomplete)
- Installed at the root level of your
data-structures-and-algorithms
repository - These will be used as libraries to solve code challenges
-
DS&A CODE CHALLENGE (4 per module)
- 5 points (3 points for whiteboard, 1 point for testing, 1 point for working code)
- Generally requires a working implementation (above) to work
- TimeBox execution to ~ 1 Hour
-
END OF EACH MODULE
- New Data Structure (as noted above): Modules 1,2,3 & 6,7,8
- Project Group Prep: Modules 4 and 8
- Generally Paired
- Takes the learnings/components/modules from the previous 4 classes and has the students assemble them into a larger/full-scale application.
Module 1 (Project: Dynamic API) | Module 2 (Project: Authenticated API) | Module 3 (Project: CAPS Delivery System) | Module 4 (Project: Serverless) |
---|---|---|---|
01: JS Fundamentals | 06: Basic Authentication | 11: Events | 16: Serverless Apps |
02: Express, Testing | 07: Bearer Authentication | 12: Socket.io | 17: Lambda & S3 |
03: REST APIs | 08: Authentication / ACL | 13: Message Queues | 18: Serverless API |
04: Data Modeling | 09: Authenticated API | 14: Event Driven Apps | 19: Cloud Events |
05: Career Coaching, DS&A | 10: Career Coaching, DS&A | 15: Career Coaching, DS&A | [20: Project Preparation |
Module 5: Mid-Term Projects | |||
Module 6 (Project: RESTy) | Module 7 (Project: TO DO, Bootstrap) | Module 8 (Project: e-Commerce, Material UI) | Module 9 (Project: Personal Projects) |
26: React Basics | 31: Hooks API | 36: Redux | 41: React Native |
27: Testing & Deployment | 32: Custom Hooks | 37: Combined Reducers | 42: React Native |
28: Props & State | 33: Context API | 38: Async Actions | 43: UI Frameworks |
29: Routing & Composition | 34: Login/Auth | 39: Redux Toolkit | 44: Open Source Contributions . |
30: Career Coaching, DS&A | 35: Career Coaching, DS&A | 40: Career Coaching, DS&A | 45: Project Preparation |
Module 20: Final Projects |