Project One: Real-Time Monitoring and Messaging

Due by Thursday, October 1, 2020

Project Description

For this project, you and a small team will leverage some combination of ExpressJS, Web Sockets/socket.io, Web Workers, Service Workers, and the Notifications API to create a web-based system that monitors a source for changes in data.

For example, you might periodically scrape the contents of the daily Congressional Record at congress.gov and run a diff against your last retrieved copy. Your project would then perhaps provide notifications of changes, as well as a page highlighting the changes as they’ve occurred–and that would also update in real-time as changes come in.

You can do this with any source of data that updates multiple times over the course of a typical day. Just be sure you do not run afoul of the copyright laws surrounding the data you’re using. (US Government publications, for example, generally are not protected by copyright because they are in the public domain.)

Deliverables and Deadlines

  1. Due by Thursday, September 3: Organize on Basecammp into teams for Project One. If you have an idea for what you’d like to build for Project One, you might share that in your post.
  2. Due by Thursday, September 10: Formally pitch your Project One idea to Basecamp. Once you and your team have organized yourselves, formally pitch your Project One idea on Basecamp for instructor feedback and approval.
  3. Due by Thursday, September 17: Post your Project One progress to Basecamp. Include a link to your GitHub repository. Be sure and also respond to the progress of other group projects.
  4. Due by Thursday, September 24: Post your Project One progress to Basecamp. Include a link to your GitHub repository and a short video where your group talks through your project running in a web browser. Be sure and also respond to the progress of other group projects.
  5. Due by Thursday, October 1: Submit your final Project One. Submissions should be both public on Basecamp and private to the instructor’s email. Your email should include:
    • Links to your group and individual repositories
    • A self-critique memo, written in the body of the email, about your work on the project and your progress in class to this point.
    • A short critique of each of your group members, also written in the body of the email.

Project Requirements

  1. Valid, semantic HTML; valid CSS; error-free JavaScript
  2. Feature detection for all JavaScript calls to Web APIs
  3. A centralized group repository that contains your ExpressJS app, which can be cloned and run locally
  4. A personal fork of the group repository in your GitHub account where you do most of your work
  5. Make good use of feature branches on your fork of the group repository
  6. All work submitted to the group repository should be done through pull requests on GitHub

Project Goals

  • Learn to programmatically access web-available resources, and run comparisons on the results
  • Learn to command established real-time communication APIs, including Web Workers, Web Sockets, and Web Notifications
  • Improve your ability to work with a centralized group repository and an individual fork
  • ITMD 545 Only: Learn to serialize data in a web-friendly format like XML or JSON

Project Two: Remote-Learning Platform Alpha

Due by Thursday, November 19, 2020

Project Description

For this project, we will work as a class-wide agency (including the instructor) spread across multiple teams working on the creation and development of a remote-learning platform using WebRTC APIs and other real-time technologies covered in this class.The goal by the end of the alpha cycle will be to attempt to hold at least a portion of our weekly classes on the system we’re building.

Full project description by October 1, after we discuss the idea as a class on Basecamp throughout the month of September.

Project Three: Remote-Learning Platform Beta

Due by Thursday, December 10, 2020

Project Description

This project will be a refinement of Project Two, moving the project’s stability to that of a public beta release.

Project Four: Academic Research in WebRTC

Due by Thursday, December 10, 2020

Project Description

This project, required only of ITMD 545 students, will expose you to the academic research going on in relation to WebRTC and related technologies. In consultation and collaboration with the instructor, graduate students will work together to produce an annotated bibliography of WebRTC and related-technology scholarship of roughly the last ten years.

Full project description by September 15.