Skip to content

During this course you will learn how to build a real-time application. You will learn techniques to setup an open connection between the client and the server. This will enable you to send data in real-time both ways, at the same time.

License

Notifications You must be signed in to change notification settings

cmda-minor-web/real-time-web-2223

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Real-Time Web @cmda-minor-web 2022 - 2023

Table of Contents

Synopsis

  • Course: Real-Time Web
  • Course Coordinator: Justus Sturkenboom (@ju5tu5)
  • Minor Coordinator(s): Robert Spier (@roberrrt-s) & Vasilis van Gemert (@vasilisvg)
  • Lecturers: Shyanta Vleugel (@shyanta) & Justus Sturkenboom (@ju5tu5)
  • Student Assistants:
  • Credit: 3 ECTS credits
  • Academic year: 2022-2023
  • Programme: Communication and Multimedia Design (full time bachelor)
  • Language: Dutch instructions and English resources

Description

During this course you will learn how to build a real-time application. You will learn techniques to setup an open connection between the client and the server. This will enable you to send data in real-time both ways, at the same time.

Communication

If you have questions:

Goals

After finishing this program you can:

  • deal with real-time complexity;
  • handle real-time client-server interaction;
  • handle real-time data management;
  • handle multi-user support.

Grading

Your efforts will be graded using a single point rubric (see below). You will have to pass the criterion (centre column) to pass the course. During the test you will be consulted and will be given feedback on things we think deficient and things we think are an improvement on the criterion.

Deficiency Criterion Improvement
Project Your app is working and published on Heroku. Your project is thoroughly documented in the README.md file in your repository. Included are a description of the data-lifecycle, real-time events and external data source used by your app.
Complexity You’ve implemented enough real-time functionality for us to test your comprehension of the subject. A lot of functionality is self-written. You are able to manipulate online examples live.
Client-server interaction By interacting with the app, a user can influence the data model of the server in real time by directly modifying data OR by influencing API requests between server and source. The student has set up the data manipulations.
Data management The server maintains a data model and each client is continuously updated with the correct data.
Multi-user support Multiple clients can connect to the server. Interaction works as expected and is not dependent on the number of clients. You can explain how your app approaches this.

Programme

Daily Schedule

To keep things simple we use a daily schedule that will be used during normal course days (monday/tuesday). We make exceptions for fridays, on these days a different schedule will be given.

Time Who Activity
~09:00 (Shyanta || Justus) Standup
09:30 Tribe +(Shyanta || Justus) Talk with crucial information (make sure you attend!)
11:00 Tribe Work on the (day)assignment
Per table +(Shyanta || Justus) Standup
13:00 Tribe +(Student assistants) Continue work on the (day)assignment
16:00ish Tribe Wrapup

Week 1 - Getting a grip

Goal: Build and deploy a simple but unique real-time app

Monday 17 April

Talk subjects: Hit the ground running... (slides) Course objective and explanation of the assignment, examples from last year, explanation of real-time, (live coded) bare bone chat app and deployment on Heroku.
Day assignment: (assignment) Make it so (as a team): Implement (code/style/discuss/deploy) basic chat (or other realtime) functionality on your teampage!

Tuesday 18 April

Talk subjects: My first realtime web app! (slides) Short recap, (local) data management, using (wire) flows for realtime web apps.
Day assignment: (assignment) Make it so (individually). i) Create (code/style/discuss/deploy) a chat app (or other realtime functionality) based on the examples and ii) add your own unique feature!

Friday 21 april

Friday afternoon morning we will have a peer review session. You will read, comment and fire issues on each others code. Doing this is really good for your programming insight and helps others refining/refactoring their code.

Time Who Activity
9:30 Tribe +(Shyanta || Justus) Peer review
11:00 Tribe +(Shyanta || Justus) Afronding Peer review

Week 2 - Sockets and data

Goal: Store, manipulate and share data between server-client

Monday 24 April

Talk subjects: Data driven development?! (slides) Feedback about last week, final assignment and conditions (rubric), explanation of data management, Long polling vs Websockets.
Day assignment: (assignment) (Proof of) Concept (individually). i) Create a (3 > 1) concept based on existing data from an API and ii) map this data using modelling techniques.

Tuesday 25 April

Talk subjects: Above all else, show the data. (slides) Securing real-time web apps, offline support, the publication/subscription model
Day assignment: (assignment) Proof of concept (individually): i) Create (code/style/discuss/deploy) part of the core functionality for your concept and ii) show the corresponding data lifecycle diagram.

Week 3 - Dealing with multiple users

Goal: Handle data sharing and multi-user support

Monday 8 May

Talk subjects: Roll your own... (slides) Data management, the functional programming trinity (map, filter and reduce). OAuth?! Day assignment: (assignment)

Tuesday 9 May

Talk subjects: Not ignoring the UI-Stack! (slides). Usability, feedback, feedforward etc. in real-time web apps, (case study) postNL loader and FAQ. Day assignment: (assignment)

Friday 12 May

We will have a final peer review session. You will read, comment and fire issues on each others code. Doing this helps others dotting the i’s on their project.

Time Who Activity
14.00 Tribe +(Shyanta || Justus) Peer review
15.30 Tribe +(Shyanta || Justus) Finalize your assignment
16.00 Tribe +(Shyanta || Justus) (drinks?!)

About

During this course you will learn how to build a real-time application. You will learn techniques to setup an open connection between the client and the server. This will enable you to send data in real-time both ways, at the same time.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •