KIMEP lost its app, so I wrote a new one
KIMEP's student app vanished from the App Store while its service kept running. So I wrote a new mobile client for my schedule and grades.
In this note
KIMEP used to have a mobile app. It did the basic things: you opened it, saw today's classes, checked a grade, closed it. Then it disappeared from the App Store, and checking my schedule turned into logging into the student portal in a mobile browser and zooming around a page that was never meant for a phone.
The odd part is that the service the old app talked to never went away. The data was all still there, there just wasn't anything on a phone to show it anymore. So I wrote a new client for it.
What it does right now
The first version covers the few things I actually open a university app for: the weekly schedule with today highlighted and a separate tab for finals, grades with GPA and the full transcript, the academic calendar, and reminders an hour and ten minutes before each class.
I didn't try to rebuild the old app screen by screen. Some of its features only made sense years ago, and copying them just because they used to exist would have made this a museum, not an app.
The calendar turned out to be the most annoying part. The university publishes it as a PDF, so the app ships with a copy I extract with a small script that rebuilds the table from where each word sits on the page. Not elegant, but it works, and I only have to rerun it once a year.
The hour that went missing
My favourite bug so far: every single class showed up an hour early. Class times come in with the old UTC+6 offset baked into them, and Kazakhstan moved to UTC+5 in 2024, so reading them with normal timezone rules shifts everything back an hour. The fix was to ignore the timezone database entirely and decode them with a fixed offset. It feels wrong, but it's correct.
What I want to add next
Grades are what I'd most like to improve. Every grade system is good at showing you numbers and bad at answering the one question you actually have, which is usually "what do I need on the final to pass?" The weights are right there, so the app could just tell you instead of making you rebuild the course formula in a calculator.
After that I want proper course pages with the professor, office hours, and classroom, and eventually a small campus map, because knowing your class is in 401 doesn't help much when you're standing in the wrong building. A map is overkill for a schedule app. I'll probably build it anyway.
What happened to the old features?
Some of the original app's features depended on services that don't matter anymore, and a few were never that useful to begin with. I'm only rebuilding what students still use regularly.
Why Android first
Because I can ship an APK the same day I build it. There's no review queue, no developer account, and no waiting a week to find out a button is in the wrong place. That's exactly what an early beta needs.
An iOS version would reach more people here, since a lot of students use iPhones. But I'd rather have one app that works properly than two that half work.
Anyway
It started because I wanted to see my schedule without opening a browser. Then it needed grades, then dates, then reminders, and now I'm reading about campus maps. That's roughly how all my projects go.
If you're at KIMEP and use Android, the beta is on the download page (opens in a new tab).