
Table of Contents
CSCI 3916: Web API Technologies
Course Syllabus
Spring, 2024
Instructor: Shawn McCarthy
Email: shawn.mccarthy@ucdenver.edu
Phone: (303) 900-8613
Class: Microsoft Teams / 330PM (Monday)
Office Hours: 445pm-545pm M/W Teams
Catalog Data: Topics in JavaScript Web technologies for front-end development and back-end development. Building a full end to end solution with a mobile or web front-end, Web API and NoSQL database
Co-requisites: N/A
Prerequisites: CSCI 2421-3 Data Structures & Program Design
Note: Each student must sign and return the attached Prerequisites Agreement form to receive any credit for any assignment or exam. If this form is not returned by the 1st week, the student will be administratively dropped from the course.
Expected Knowledge at the Start of the Course:
- Data structures for simplifying algorithm design
Expected Knowledge Gained at the end of the Course:
- Solid understanding of JavaScript, NodeJS, Development of Web APIs, NoSQL Databases and React front-end complete solution
ABET Assessment Criteria:
- This is a Computer Science Tech Elective, specifically students design, implement and test Web APIs in the context of this course.
- (2) Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the programโs discipline
Course Objectives: Full stack development (GitHub, Unit Testing, Integration Testing) focused on building Web APIs.
Textbook:
- Full-Stack React Projects
- MERN Projects for Beginners (Only if you choose to do an individual project)
- Optional: Beginning MERN Stack
- Optional: Learning JavaScript
Topics: Web APIs (Design, Best Practices and Development). JavaScript, NodeJS, TypeScript, React, MongoDB
Course Outline:
Lecture/Week | Date | Topic | Reading | Assignments |
---|---|---|---|---|
1 | Jan 17th | GitHub, PostMan | MERN: Chapter 1 MERN Setup, Full Stack: Preparing the Development Environment, JavaScript Making Sense of the Madness (YouTube) | |
2 | Jan 22nd | HTTP | Learn JavaScript - Full Course for Beginners | Due Jan 28th |
3 | Jan 29th | ES6/JavaScript, Heroku, Pick Teams | The Modern JavaScript Tutorial | Due Feb 4th |
4 | Feb 5th | NodeJS, Authorization, Basic Auth, oAuth | Full Stack: Auth with JWT | |
5 | Feb 12th | Swagger, Node Security, Unit Testing, Pre-React | Getting Started with React - Quick Start and Tutorial | |
6 | Feb 19th | API Design / Swagger / Best Practices, React Auth | Full Stack: Following Best practices, Full Stack: Adding a React Frontend | Due Feb 25th |
7 | Feb 26th | MongoDB | Full Stack: Building a Backend with MongoDB | |
8 | Mar 4th | API Management, TypeScript | Due Mar 10th | |
9 | Mar 11th | Analytics, Code Smells (Spec topic) | Code Smells and how to fix them (YouTube) | |
10 | Mar 18th | Spring Break | ||
11 | Mar 25th | CSS | Due Mar 31st | |
12 | Apr 1st | React Movie, Patterns (Spec Topic) | ||
13 | Apr 8th | React | Due Apr 14th | |
14 | Apr 15th | Mobile, Monetization | ||
15 | April 22nd | Project Days | ||
16 | April 29th | Project Presentations |
Lecture Videos
Lecture/Week | Date | Video |
---|---|---|
1 | Jan 17th | REST Overview GitHub Slides JavaScript Making Sense of the Madness (YouTube) |
2 | Jan 22nd | Assignment 0 Walkthrough Doctors and Patients API Learn JavaScript - Full Course for Beginners (YouTube) HTTP Lecture 1 HTTP Lecture 2 |
3 | Jan 29th | JavaScript Lecture Render Deployment |
4 | Feb 5th | Node NodeJS Full Course (YouTube) Assignment 2 Walkthrough |
5 | Feb 12th | Node Security and Unit Testing Unit Testing and Pre-React |
6 | Feb 19th | Best Practices React Auth |
7 | Feb 26th | Mongo Mongo - User Schema Render - Deploy React |
8 | Mar 4th | TypeScript |
9 | Mar 11th | Code Smells Analytics |
10 | Mar 18th | Springk Break - All Regrades up (Through Assignment 3) to this point must be in by EOD Sunday |
11 | Mar 25th | CSS Part1 CSS Part 2 Class |
12 | Apr 1st | React and Patterns React and Patterns Part 2 React Movies |
13 | Apr 8th | Presenting Data |
14 | Apr 15th | Empowering Yourself API Monitization |
Grading Policy:
- Homework: 65%
- Projects: 35%
Notes: UCD Code of Honor as in the catalog: UCD Honor Code
Projects (you can work individual or as a team of up to 5)
- Individual Projects: MERN Projects for Beginners (any one of the 5 applications) with one additional feature added (your proposal should include what you are going to add to one of the project ideas)
- Team Projects: Full Stack React: See Online Marketplace (with extending marketplace for orders and payment) example and build in the additional capabilities
Mental Health Resources: CU Denver faculty and staff understand the stress and pressure of college life. Students experiencing symptoms of anxiety, depression, substance use, loneliness or other issues affecting their mental well-being, have access to campus support services such as the Student and Community Counseling Center, the Wellness Center and the Office of Case Management. Students also have access to the You@CUDenver on-line well-being platform available 24/7. More information about mental health education and resources can be found at Lynx Central and CU Denverโs Health & Wellness page. Students in imminent crisis can contact Colorado Crisis Services for immediate assistance 24/7 or walk-in to the counseling center during regular business hours.
Courses in this program
Assignment Zero
Purpose In this assignment, you will familiarize yourself with Postman, HTTP, and REST protocols using the Postman testing framework. You will also create your first node program and commit it to GitHub.
Assignment One
Purpose The purpose of this assignment is to set up your GitHub and Render instances for future assignments. You will create an Echo server, setup auto-deployment on Render, and test the server using Postman.
Assignment Two
Purpose The purpose of this assignment is to start working with Node.js and become more familiar with HTTP requests. You will create a standard Node.js server to handle incoming HTTP requests and then respond with information about the request.
Assignment Three
Purpose This assignment aims to enhance your understanding of NoSQL databases, particularly MongoDB. You will build a Users collection for storing user data and implement a signup and signin functionality. Additionally, you will also create a Movies collection to store movie information.
Assignment Four
Purpose Using the information already entered to MongoDB for the previous assignment, you will add another collection of reviews that are tied to the movies. This way users can query the database and get the previous information (title, year released and actors) as well as the reviews.
Assignment Five
Purpose The objective of this assignment is to create a React Single Page Application that interacts with your previously developed API. The application will enable users to search for movies, display information about a selected movie, view stored ratings, and submit a new rating for a movie.
Meet your instructor
Shawn McCarthyFAQs
Are there prerequisites?
CSCI 2421-3 Data Structures & Program Design
How often do the courses run?
Every Spring