Published May 24, 2022 • Updated Jul 07, 2022
Rate this code example
Justus Alvermann, student in Germany, developed this project.
The project shows the substitutions of my school in a more readable way and also sorted, so the users only see the entries that are relevant to them. It can also send out push notifications for new or changed substitutions and has some information about the current COVID regulations
I didn't like the current way substitutions are presented and also wanted a way to be notified about upcoming substitutions. In addition, I was tired of coming to school even though the first lessons were cancelled because I forgot to look at the substitution schedule.
Since not every piece of information (e.g. new room for cancelled lessons) on the substitution plan is available for all entries, a document-based solution was the only sensible database.
Every 15 minutes, a NodeJS script crawls the substitution plan of my school and saves all new or changed entires into my MongoDB collection. This script also sends out push notifications via the web messaging api to the users who subscribed to them. I used Angular for the frontend and Vercel Serverless functions for the backend. The serverless functions get the information from the database and can be queried via their Rest API. The login credentials are stored in MongoDB too and logins are saved as JWTs in the users cookies.