2 min read

School break time friend finder

Spending school breaks alone is lame. That's why I developed an app so students can find with whom they share their breaks.
School break time friend finder
The break time friend finder app. By clicking a break-hour, like 'tussen', students could see with whom they could spend their break time :).

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.

An overview of the app architecture. A Node.js app scrapes and parses student schedules, puts it in a database, which an Ember.js app then consumes through a REST API.
An overview of the app architecture. A Node.js app scrapes and parses student schedules, puts it in a database, which an Ember.js app then consumes through a REST API.

... the relational mapping in the database is as follows:

An Object-Relational-Mapping (ORM) of the school. Most important is a lesson, which then relates teachers, students and a room.
An Object-Relational-Mapping (ORM) of the school. Most important is a lesson, which then relates teachers, students and a room.

And our working app looks as follows:

The working break-time friend finder app. Using a simple search, a student can find his schedule.

But most importantly, the functionality to see whoever shares your break-time ('tussen' in the picture below) or any classes with you:

In the app, you can click any class or break to see with whom you share the hour. It's no longer a guessing game! βœ“

πŸ₯³