When Is My Exam!?

When Is My Exam!? is a JavaScript-powered social exam search tool that indexes the exam timetables published by the Institute of Business Management (IoBM), Pakistan.

This app was built to help students easily search the convoluted timetables for the correct date and time when their course’s exams are being held.

My college administration loves organizing exams; we have two rounds every semester, and then we have separate finals. One thing that had always bothered me about this, other than the obvious recurrence, were the timetables.

The examination department releases the schedules as a collection of huge, convoluted, awkward PDF files with a tiny font size that are unbelievably difficult to read. A lot of people have missed at least one exam in the past because they either got the day or timings wrong for their particular class and session; this has happened to enough people that every approaching examination week fills us all with unease, and we can’t pore over the PDFs and confirm with our friends enough times to satisfy ourselves that we have the right details.

One day, I though to myself enough anxiety had been dealt and dreams shattered – it was time to do something.

So I sat down and created a Facebook application that searches these unwieldy timetables for you and tells you the exact date, day and time of the exam.

I called it, simply, When Is My Exam!? All you need to do is enter your course code and section that typically looks something like ‘FIN201C.’ It’s a JavaScript-powered social application that’s now being used regularly by about 700 people and, I like to think, has made life just a little bit better for each of them.

Want to see it in action?

User-experience design

When I first began developing When is my Exam!?, I’d just finished with an online UX design course (Coursera) and I was eager to apply some of the things I’d learned.

The searchbox provides instant feedback on whether the user entered a format the app can understand. The results are parsed and presented in plain English, highlighting the main information that a general user would expect; it even calculates how many days are between today and the exam you just searched for – if it’s tomorrow, expect a good luck wish!

In case there’s an error, the app provides alternative solutions. You can search the timetables yourself (which you probably should do anyway, since the app comes without a guarantee). However if the user continues to have errors, a smart message appears, asking them to get in touch with the developer because they’re having more trouble than expected.

And in the end, the app gives you a slight nudge to show your appreciation by “liking” it and sharing with your friends on Facebook. Of course, this self-promotion can get annoying, so the prompt only appears on the 1st, 3rd and 6th search operation [the usual number of courses students have in a regular semester].

Here’s a gallery of the main UI elements.

An open-source, ongoing project

From the very beginning of this project I’d decided I wasn’t going to keep the code for When is my Exam a secret. It’s right there for everyone to see and hopefully, in the future, improve greatly. If you’re interested in pursuing this little project of mine in any way, feel free to get in touch. It would be an absolute pleasure to see anyone benefit from this.

This project was also my first real experience with Git, and I’m really glad I used a version-control system – on more than one occasion I’ve had to roll back a feature update because it wasn’t playing well with the Facebook app ecosystem.

Some of the other things I got acquainted with during the course of developing this app are

  • JavaScript Objects and Events
  • jQuery Deferred functions and file parsing
  • Facebook app development and implementation of the Open Graph
  • Twitter Bootstrap
  • UX design and error tracking

Overall, this was a great project, not just because of the utility I get out of the product itself, but because of the technologies and methods it exposed me to. A version 2 is in the works, stay tuned!