VITTY — From an Idea to a Reality

Vishesh Bansal
GDSC VIT Vellore
Published in
6 min readFeb 20, 2022

Explore the journey and the challenges faced behind the scenes while making VITTY, a timetable app developed to cater to the needs of the students of VIT.

VITTY as we all know doesn’t really need an introduction! Within the short duration of its release, it has made quite a name for itself with over 2k users, thus becoming quite a loved application by the students of VIT!

So why VITTY? How did we get the idea? What all went into its making? What challenges, big or small, did we face? I have a lot of things to share with all of you here. By the end of this blog, I will have answered all of the above questions and you will have learned about a lot of new things that we incorporated while developing VITTY! Ready. Set. Go!

The Vision

In our university, we make our own timetables. While making your own timetable sounds very exciting, it has its own downfalls. For example, there are days when our classes start at 8 AM, but there are days when it could start at 10 AM too! Now it is very common for us to drown ourselves in intense hours of coding (or Instagram reels, no cap) when we had breaks between classes and end up forgetting to attend our online classes( thank you COVID :))! We realized it wasn’t just us who ended up missing classes because of this!

Students needed someone who could remind them to attend classes. And that is how the idea of VITTY came up. An application that sends push notifications to remind the user that there is a class coming up since nowadays everyone has their smartphone or laptop switched on at any given point in time (again, thank you COVID :)). Students can also see their upcoming classes in the app, with the help of the widget, on the extension or now, the website and plan their day accordingly.

The Development Phase

Great, we now have an idea! What next? Queue the development phase. It is one of the most important phases of a product lifecycle, or as I’ll say phases 2 to 4 of the Software Development Life Cycle (SLDC).

Software Development Life Cycle

When you’re building a product or even a project, it requires a lot of research. And when I say research, I mean basic things, like defining who your customers will be, and through the product that you are building, what all pain points you will be solving for your identified customer. Now, most people try to skip this since it is an effort and time-intensive process, only to later return to this. But I believe, one shouldn’t skip it. For VITTY, we spent nearly an equal amount of time on research as well as development, approximately 3 months in total (After all, it should be balanced, as long things should be xD).

On the Android application side, one of the biggest challenges we had was keeping the app running in the background. With Android 10 and above, Battery Optimization settings kill background processes after a point of time, and our app needed to deliver notifications very accurately to prevent someone from accidentally missing their class. Luckily, my friend Yajat Malhotra, who developed the android app was able to solve this issue!

But on the Image Processing side, we encountered some major issues. A typical timetable is a bunch of colored boxes. We need to segregate and extract data from these selectively. One problem that we faced was that the class slots had a green color. Apart from this, a few of the timetables didn’t have the RGB colors that others had. Moreover, we were initially using Bitwise operations in OpenCV. This created a big issue while parsing screenshots of timetables taken in MacOS since they weren’t being processed using these operations (a very weird issue for which we still couldn’t find an answer). Then we also faced issues while reading the OCR text using Google’s Pytesseract library. The results were very inaccurate and a lot of time went into fixing it.

We converted the image to Grayscale and manually looped through the image to just select green boxes and black-out the others. We used Gaussian Blur to focus on the area of interest, the technique of Erosion and Dilation to improve the quality of the image, and Selective Cropping, Contouring to read the boxes and extract data from them. After a lot of hits and tries and a lot of experiments, was able to come up with a technique that recognizes text as accurately as possible.

Last but not least, the Docker image was a heavy one and an opportunity in disguise since I got to learn about DevOps and Cyber Security extensively, which also happened to become my prime focus of interest eventually.

VITTY’s Tech Stack

The Final Phase

So, now that the development is done. What next? Enter testing. We tested the backend with over 50 timetables to test its accuracy. This was a very tedious process since we didn’t have the complete list of 4k+ courses VIT offers. During these initial 3 days, we pushed 8 updates, 2 for the backend, 2 for the app, and 4 for the Chrome extension (since it contained data for slots that were being pushed to Firebase). Luckily, we had such a supportive community who provided us with their Course PDFs through which we were able to extract their slot data. The app was also tested thoroughly. The rollout was pretty smooth, however, we didn’t expect it to explode overnight.

Let’s get to the exciting numbers now. VITTY saw an onboarding of a total of 100 users on the release day, 500 by the end of Week 1 and 1k by the end of the month (all of this is the Android version, not counting the iOS version).

Currently, we are over 2k users, which brings me to my next important point.

It is very easy to develop a product and forget about it, but the most important aspect, the hardest part (and the final phase of the SDLC) is Maintenance, especially for an application that’s being developed to help the users in their daily lives. You have to address every pain point. Thankfully, due to the enthusiasm shown by my fellow VITTY developers, we pledged to keep the project up to date.

Conclusion

We never realized an idea, so simple, so random could be a game-changer and prove really beneficial to society. Thanks to Yajat Malhotra for the Android App, Krish Chatterjie for the website and extension, as well as Ananya for the iOS app. A special shoutout to Chanakya Vivek Kapoor who greatly helped as a mentor in every possible way and ensured things were smooth for us. This project would also not have been possible without the valuable insights given by Siddhartha Varma and Shantanu Verma, as well as the entire GDSC-VIT team. A special shoutout to Astha Jha as well for helping out with the blog!

Feel free to check the project out at :

Chrome Extension: https://dscv.it/vitty-extension
App: https://dscv.it/app/vitty

Feel free to make a contribution to the backend at https://dscv.it/g/vitty-backend!

--

--