Titled Semitime, this application is a content management system created for my high school, Semiahmoo Secondary School. I started this application with a team in my sophomore year of high school and we completed it around the beginning of junior year, or from January 2015 to September 2015.
My high school has a rotating class ordering (known as block order in my high school) for every day of the week. While the class ordering is usually consistent, the class ordering deviates from the norm during holidays, exam days, and on Fridays. This has been a source of confusion for many students in my high school, so I created an app that achieves the following purpose:
- School Administrators update information about class ordering or important announcements.
- Students receive push notifications whenever there are changes (adjustable depending on each student's needs).
The mobile client contains the following features:
- Updated Class Ordering
- Calendar
- ToDo App
- Push Notifications
Click on the image for the full video demo.
The entire application consists of two separate parts:
- A server backend developed using php
- A mobile client developed using Corona SDK
Through the server frontend, administrators modify class ordering or special events for specific day(s). The class orderings is serialized into a JSON file, and a POST request is made to trigger push notifications on students' phones. The push notification system is implemented using OneSignal.
When a new JSON file is serialized, a MD5 hash is generated. Upon each refresh of the mobile client, the client downloads the MD5 hash and checks if its internal database is different from the server's database with the MD5 hash. If the MD5 hashes don't match, the client requests the JSON file and updates its own database.
I originally tested the app using a LAMP (Linux, Apache, MySQL, and php) stack on Ubuntu Linux, and with Corona SDK on Mac OSX 10.9.
This app uses the font Josefin Sans by Santiago Orozco.