At my school, students often had gaps in their schedules. In between lessons scheduled for the day, one would often have breaks in between. But because you chose a personalized package of classes to follow, everyone's schedule was also different. So, it would be hard to know with whom you could spend those breaks! To solve this, I developed this app. It allows students to find with whom they have breaks so they can hang out with them whilst waiting for the next class 😊. The app was actually used by students in my school. Very cool!
Building the app
The entire app is quite sophisticated. The various components can be laid out as follows:
- Node.js backend (Github)
- Has three main responsibilities:
(1) to scrape student schedules off HTML pages into a MongoDB database. Scraping is done using Cheerio and communication with MongoDB via MongoJS.
(2) parse the schedules into a relational format and compute what odd break-time hours exist.
(3) expose the MongoDB database as an API.
- Ember.js frontend (Github)
- This front-end then consumes the API data using ember-data. I'm using Bootstrap as a UI framework so I don't have to build all the buttons, tables and interfacing myself.
... the relational mapping in the database is as follows:
And our working app looks as follows:
But most importantly, the functionality to see whoever shares your break-time ('tussen' in the picture below) or any classes with you: