Frictionless School App

During my senior year of high school, I developed an Android app that provided access to my school's online data. The main feature of the app was mobile access to the substitution schedule, which at the time was not optimized for mobile use, let alone student needs. Unlike other apps that required students to manually enter each schedule detail on their own, the app used a system where the school could upload "meta-schedules" and the app would generate a small series of multiple-choice questions to quickly enter a schedule. This approach allowed students to set up their schedules in less than 30 seconds instead of minutes.

Several other requirements guided the development of the app. First, I needed to ensure complete offline usability, since there was no Wi-Fi in the school building and many students did not have mobile data plans. To address this, I implemented a system that periodically downloaded the latest information and allowed users to save it offline.

Since my time at the school was limited and I wanted to ensure the longevity of the app beyond my graduation, I wanted to reduce the amount of app maintenance for myself and the school administration. By implementing automatic detection of schedule mismatches and prompting students to request meta-timetable updates from the school, I shifted maintenance responsibility to the students. Furthermore, the app did not require any additional servers or infrastructure, as it used the school's existing web server and data.

In addition to the substitution plan, the app offered several useful features. Seniors could view their full schedules directly in the app without any additional setup. In addition, the app sounded an audible alarm when a student's first period was canceled, preventing unnecessary trips to school. The app also displayed school news to keep students informed.

The Android app was developed in Java using the Android SDK. To ensure compatibility with the range of (rather cheap) devices the students had, I used AppCompat, which provided both compatibility and access to new features. I also implemented a custom card-based user interface, which at the time was a novel paradigm in the mobile UI/UX landscape.

Even after I graduated, the application remained in use for the next four years. It was heartening to learn that students, accustomed to its convenience, took the initiative to keep the app's data up to date. They reached out to the school administration and ensured that the data remained current, demonstrating the value of the app to the student body.