Week One
Starting Line: Web Standards, Documentation and Techniques
Course overview
Course policies
Course projects
Asking questions publicly on Basecamp
Walking through web-development environments
Web standards: how we got to a real-time web
Web-standards refresher
Core techniques, practices, and expectations in this class
Assigned Work
Due Monday, August 30
To Do
Sign up for a GitHub account , if you don’t already have one
As soon as possible: Submit ITMD 469/545 Contract and Survey (link in your @hawk.iit.edu inbox)
As soon as possible: Create Basecamp account (invite will arrive after you submit the Contract and Survey)
Dev environment setup (Firefox Developer Edition, Atom.io, Node.js, Git); follow these instructions
Participate in Week One reading discussion on Basecamp
Week Two
Non-blocking Realtime Foundations: Asynchronous JavaScript, Event
and EventEmitter
Introduce Project One
Why asynchronous JavaScript?
Older async methods: callbacks
The Promise API
Newerfangled syntax: Arrow function expressions
Asynchronous JavaScript in disguise async
and await
The Event
and CustomEvent
interfaces in client-side JavaScript
EventEmitter
Assigned Work
Due Wednesday, September 8
To Do
Participate in Week Two reading discussion on Basecamp
Week Three
WebRTC Foundations I: HTTPS, Media Permissions
Monday, September 6
No class. Labor Day Holiday
Serving HTTPS in development with ExpressJS
Requesting access to user media
Requesting and returning a local media-stream playback
The HTML <audio>
and <video>
elements
The HTMLMediaElement JavaScript API
Assigned Work
Due Monday, September 13
To Do
Participate in Week Three reading discussion on Basecamp
Week Four
WebRTC Foundations II: Signaling, Connection, and Perfect Negotiation
Perfect negotiation: polite and impolite clients
The RTCPeerConnection
interface
Assigned Work
Due Monday, September 20
To Do
Participate in Week Four reading discussion on Basecamp
Week Five
Conferences; Finishing Basic Peer-to-Peer Demo App
Monday, September 20
No class. One-on-one conferences with instructor.
Assigned Work
Due Monday, September 27
To Do
Catch up on Week One thru Four reading-discussions on Basecamp
Reviewing the signaling and WebRTC code written so far
Console experiments with data channels to WebRTC calls
Adding data channels to WebRTC calls
Symmetrically vs. asymmetrically added data channels
Data-channel events
Thursday, September 30
Project One : Post your Project One progress to Basecamp.
Assigned Work
Due Monday, October 4
To Do
Participate in Week Six reading discussion on Basecamp
Week Seven
Web APIs; Broader Browser-Compatibility and “Perfekted Negotiation”
Remote class. See Basecamp for details
Expectations of you as a student in this class
Finishing the chat feature and symmetrical data channel
Web APIs: where to look, brief examples
Remote class. See Basecamp for details
Styling the chat log
Revisiting perfect negotiation for imperfect browsers
Safari-oriented tweaks to perfect negotiation (which makes it somewhat less perfect)
Notes about Safari/Safari Technology Preview and what’s coming
Thursday, October 7
Project One : Post your Project One progress to Basecamp.
Assigned Work
Due Wednesday, October 13
To Do
Participate in Week Seven reading discussion on Basecamp
Have a relaxing fall break; at minimum, you are required to take at least a couple of hours to do something relaxing and fun for yourself. No exceptions
Week Eight
Review and Q&A
Monday, October 11
Fall Break (No Class)
Review: the media-constraints object
Handling multiple media tracks
User-controlled enabling and disabling of media tracks
Student questions
Thursday, October 14
Project One : Submit your final Project One.
Week Nine
Git and GitHub in Team Settings; Emergency JavaScript Resuscitation
Introduce Project Two
Git and GitHub in team settings
Repository organization
Pull-request workflows
Remote class.
Emergency JavaScript resuscitation
Thursday, October 21
Project Two : Organize into groups of three or four students for Project Two.
Assigned Work
Due Monday, October 25
To Read
Stolley, Programming WebRTC , Chapter 5 (if not finished)
MDN, Blobs
MDN, ArrayBuffers
To Do
Participate in Week Nine reading discussion on Basecamp
Monday, October 25
No class.
Handling binary data from form elements
Blobs
Thursday, October 28
Project Two : Formally pitch your Project Two idea on Basecamp.
Assigned Work
Due Monday, November 1
To Read
Catch up on any readings you might’ve missed
To Do
Catch up on Basecamp
Week Eleven
Multipeer Connections and Mesh-Network Topography
Sending and receiving binary data on data channels
Abstracting away differences between Blobs and ArrayBuffers
Making received files available
The challenge and limits of multipeer connections
Mesh-network topography
Multipeer signaling channels and callbacks
Thursday, November 4
Project Two : Weekly Project Two check-in.
Assigned Work
Due Monday, November 8
To Read
Stolley, Programming WebRTC , Chapter 6
To Do
Participate in Week Eleven reading discussion on Basecamp
Week Twelve
Multipeer Calls; Team Conferences
Refactoring peer-to-peer code for multipeer
Multipeer WebRTC callbacks with closures
Testing multiple devices over the local network
Wednesday, November 10
No class. Team conferences
Thursday, November 11
Project Two : Meet with the instructor for team conferences on Wednesday, November 10.
Week Thirteen
Public STUN Servers; WebRTC-backed Interfaces
ITMD 545: Project Four and grad-student readings
Using public STUN servers
GitHub Gist of third-party STUN servers
Testing public STUN servers with deployed RTC app
Constraining media
WebRTC interfaces
Before the call: The setup interface
During the call: The active interface
After the call: The later-tater interface
Thursday, November 18
Project Two : Submit your final Project Two.
Thursday, November 18
(ITMD 545 Only) Project Four : Find and get instructor approval on an academic article on WebRTC.
Assigned Work
Due Monday, November 22
To Read
MDN, Capabilities, constraints, and settings
MDN, MediaStream Constraints
MDN, MediaTrack Constraints
ReallyGoodUX, A UX review of Zoom’s video call experience
[545 Students Only] Azevedo, Pereira, and Chainho. An API proposal for integrating sensor data into web apps and WebRTC. In Proceedings of the 1st Workshop on All-Web Real-Time Systems , article no. 8, pages 1–5. ACM, 2015.
To Do
Participate in Week Thirteen reading discussion on Basecamp
[545 Students Only] Participate in Week Thirteen academic reading discussion on Basecamp
Week Fourteen
WebRTC in Production
Remote class.
Introduce Project Three
WebRTC stats and monitoring
Configuring a private STUN/TURN server; automating deploys with Git and pm2
Wednesday, November 24
No class. Thanksgiving Break
Monday, November 29
No class. Stolley available for help
Wednesday, December 1
No class. Stolley available for help
Thursday, December 2
Project Three : Pitch your Project Three revisions on Basecamp.
Thursday, December 9
Project Three : (Firm deadline. ) Email instructor with final project deliverables.
Thursday, December 9
(ITMD 545 Only) Project Four : Post article summary to the Project Showcase Basecamp, in its own thread.
Course Information
Dr. Karl Stolley ,
Associate Professor of Information Technology and Management
kstolley@iit.edu
Office hours via Basecamp Chat or Pings on Tuesdays, 4pm to 5pm Central Time (America/Chicago), or by appointment or chance. If you’d like to audio or video chat, we can of course do that, too. Just message me first. I’m always signed into Basecamp and closely monitor my notifications. Message or email any time—I make students a priority, and I will respond as soon as I am able.
Navigation