๐Ÿ“Š Learn Web APIs

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:

Topics: Web APIs (Design, Best Practices and Development). JavaScript, NodeJS, TypeScript, React, MongoDB

Course Outline:

Lecture/WeekDateTopicReadingAssignments
1Jan 17thGitHub, PostManMERN: Chapter 1 MERN Setup, Full Stack: Preparing the Development Environment, JavaScript Making Sense of the Madness (YouTube)
2Jan 22ndHTTPLearn JavaScript - Full Course for BeginnersDue Jan 28th
3Jan 29thES6/JavaScript, Heroku, Pick TeamsThe Modern JavaScript TutorialDue Feb 4th
4Feb 5thNodeJS, Authorization, Basic Auth, oAuthFull Stack: Auth with JWT
5Feb 12thSwagger, Node Security, Unit Testing, Pre-ReactGetting Started with React - Quick Start and Tutorial
6Feb 19thAPI Design / Swagger / Best Practices, React AuthFull Stack: Following Best practices, Full Stack: Adding a React FrontendDue Feb 25th
7Feb 26thMongoDBFull Stack: Building a Backend with MongoDB
8Mar 4thAPI Management, TypeScriptDue Mar 10th
9Mar 11thAnalytics, Code Smells (Spec topic)Code Smells and how to fix them (YouTube)
10Mar 18thSpring Break
11Mar 25thCSSDue Mar 31st
12Apr 1stReact Movie, Patterns (Spec Topic)
13Apr 8thReactDue Apr 14th
14Apr 15thMobile, Monetization
15April 22ndProject Days
16April 29thProject Presentations

Lecture Videos

Lecture/WeekDateVideo
1Jan 17thREST Overview
GitHub Slides
JavaScript Making Sense of the Madness (YouTube)
2Jan 22ndAssignment 0 Walkthrough
Doctors and Patients API
Learn JavaScript - Full Course for Beginners (YouTube)
HTTP Lecture 1
HTTP Lecture 2
3Jan 29thJavaScript Lecture
Render Deployment
4Feb 5thNode
NodeJS Full Course (YouTube)
Assignment 2 Walkthrough
5Feb 12thNode Security and Unit Testing
Unit Testing and Pre-React
6Feb 19thBest Practices
React Auth
7Feb 26thMongo
Mongo - User Schema
Render - Deploy React
8Mar 4thTypeScript
9Mar 11thCode Smells
Analytics
10Mar 18thSpringk Break - All Regrades up (Through Assignment 3) to this point must be in by EOD Sunday
11Mar 25thCSS Part1
CSS Part 2
Class
12Apr 1stReact and Patterns
React and Patterns Part 2
React Movies
13Apr 8thPresenting Data
14Apr 15thEmpowering 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 McCarthy

FAQs

Are there prerequisites?

CSCI 2421-3 Data Structures & Program Design

How often do the courses run?

Every Spring