(this post was started last wed but never finished until now)
[29 March] I’ve been ridiculously free the past few days, from sunday when I was home alone for most of the day and was so bored I went to try playing piano, to today where I spent the whole day chilling with istd friends: wanted to go out and watch a movie but it was raining so we ended up watching shows in the recre room, then went out for dinner + walked around daiso + sat at starbucks until we were all freezing, then played darts + sherlock holmes game (where we concluded that we’re not cut out to be detectives).
Part of it is because school is somehow very un-challenging and ESC has no more homework, but the main reason why I’m suddenly so free is because the app I’ve been working on is finally done!!! It’s called exploreSUTD and is available on both app store and play store now :D Vivek and I have been working on it since Sept last year so to finally set the version number to 1.0.0 for first release feels good. This is my first major project and I’ve definitely learnt a lot, so just wanted to record some thoughts about it!
Our initial ‘brief’ was:
The functions of SUTD’s Admissions Office include outreach to prospective students, with the objective to raise general awareness about SUTD and to interest prospective students in applying to SUTD.
In order to improve the experience of prospective students, as well as the efficiency of the Admissions team, an idea is to DEVELOP A MOBILE APPLICATION for prospective students to download and to find information on SUTD and our programmes, updates on upcoming events, and to explore the campus on their own when they visit.
When thinking about what we wanted our app to include, one of our main considerations was: why would a prospective student download and use our app rather than find whatever they need on the school website? Cos from personal experience, there are so many apps for everything nowadays (eg. itacho sushi where you have to download their specific app to order food….) and I can rarely be bothered to download a new app unless there’s a good reason to. So we decided to focus on the map, plus at that time the pokemon go craze was strong so we wanted to make it an interactive “game” with a tangible reward for completion.
All the official information on SUTD can be found on the website already, but we wanted our app to give a more personal feel by showcasing a bit of the school culture. This was done by adding a few secret pins on the map that will only pop up when you’re nearby, and provide fun facts about the place eg. introducing grumpy, our resident cat, or giving more information about the random projects displayed around the campus.
This was Vivek and I’s first time working with a client, it was a pretty good experience but I think one thing that could’ve been done better is the setting of timelines/deadlines and scheduling meetings more often. Like at one meeting we’d say “ok, we’ll do all this in 2 weeks then meet again” and work on it for 2 weeks, then when we’re done we email them to meet but because of scheduling issues we end up waiting another week or more to meet them. And because we didn’t touch the app during that time, we lose momentum and after the meeting we’ll end up chilling for a longer time before resuming work. The testing phase also dragged on for v long cos we weren’t familiar with the android/ios app publishing/testing process and had to wait and do nothing while admissions and IT were going back and forth. Was annoying.
Admissions wanted the events to be updatable (makes sense for us too). Ideally we should just pull from SUTD’s website since they already have an events page, but apparently that was not an option so we had to make a content management system as well. We were already using firebase for pins and events, but the firebase web interface is not nice to use to add content directly (plus it’s super easy to accidentally delete everything). It just happened that I went for a ruby on rails workshop around that time, and we figured we could use it to make the cms. So yeah I did that! What happens currently is that the editable content is stored on both the rails database and firebase (the rails app updates firebase whenever content is changed), and the app pulls it from firebase. This is probably not ideal cos the 2 databases might become un-synced somehow and then what’s shown on the cms won’t be the same as what gets displayed on the app.
[4th April] We handed over the control of the cms today! Met admissions to show them how to use it, plus we made a simple guide, though hopefully it should be user-friendly enough that they won’t need to refer to the guide much. After this we’ll get paid separately for any more new features/ updates to the app!! Lynn said something about a SLA (service level agreement) and CR (change request)-based maintenance (I had to google those acronyms), sounds so formal and corporate lol but I guess it’s good to set things out clearly now.
Things I learnt
- Stuff learnt in class and stuff that are actually useful for developing real products can be quite different.
I guess the answer is that uni gives a broader perspective since I have to take courses ranging from comp eng to security and SDLC. And also maybe a deeper understanding of what I’m doing rather than just knowing how to do? This reminds me of school vs kumon – when I was in GEP (or RGS? can’t remember now) my mum made me go for kumon math cos she felt that what I was learning in school for math was deeper and good to understand, but to be good at pri/sec sch math you also need enough practice. Kumon was exactly that, drilling without necessarily needing much understanding so the two approaches complemented each other!
- Random skills sometimes come in useful in unexpected ways. (PS, AI, html css)
I first learnt html and css years ago to prettify/customize my neopets’ pet pages, and I became quite good at photoshop after working at a photography studio last time. These “random skills” definitely came in useful for this project!
- Making a static app is easy, making one with dynamic content is much more complicated
- Getting students to do stuff is really cheap lol. I just tried estimating our app cost based on the features we implemented and got $30k!!