Have you tried turning the mess off and on again?

One fateful day, a frog leaped into a steaming plate of Kadamb biryani. Chaos ensued. The mess was promptly shut down, and what had long been murmurs of dissatisfaction erupted into full-fledged debates about the state of the mess system at IIIT. And after a year of continuously changing mess policies, numerous mail threads, and mass discontent, at the start of March, we got a new permanent solution to our woes.
The overhauled portal and system as a whole is a long-awaited improvement to the slow, inefficient, and frustrating mess apparatus that had been in use for time immemorial. For this incredible feat, we have two UG-1s to thank. Aarnav Pai and Vedant Kulkarni took initiative, channeling their personal grievances with the system into an effort to recreate the way we eat from the ground up.
So how did this all happen? Let’s rewind to what happened in the days following the amphibian assault on Kadamb’s pride and joy.
From Biryani to Bureaucracy
Within days, the Kadamba mess was closed for a much needed renovation…or so we thought. In reality, the decision was to keep the Kadamba mess open! Move it to JC. Move JC to BBC. Move BBC to next-to-BBC. And to remove our ability to choose our meal preferences individually, rather enforcing a weekly enrolment system on IMS.
The students were frustrated. The food was inconsistent, the choices were nonexistent, and the registration system (if one could even call it that) seemed to be held together by misplaced hope. From these grievances, an idea was born. That idea would eventually take shape as the new mess portal.
The question then became一how does a frog in the biryani, result in us not being able to pick our individual meals. Well, it came to light that us picking our meals wasn’t the problem, the problem was that due to the extremely outdated biometric machines and software stack that were being used by the messes, close to all the work had to be implemented manually. This took away time from the mess office workers, which would be better spent in ensuring the standards of hygiene in the messes on campus. This brought about an opportunity: why not just update the entire mess system to reduce manual labour and allow for all students to eat their preferred meal?
When asked about their motivation, Vedant, one of the portal’s creators, said, “I wanted South breakfast.” Aarnav immediately nodded in agreement about how the inability to pick individual meals was bad enough, but then there were the glitches like the IMS system randomly displaying negative slot numbers, as if students were expected to consume anti-meals. Frustrations mounted, and as part of the Student Parliament Mess Committee, Vedant took a bold step: he proposed that students build a better system themselves. And so, with the faculty quickly on board, the new mess system was born.
The Battle over Biometric
One of the biggest changes in the new mess system is the introduction of QR codes in place of the traditional biometric machines found all over the campus. So why did the mess portal admins decide to break from tradition and adopt QR codes?
The initial idea was to continue using different biometric machines. They offer many advantages – they’re unique for every person, they’re in a centralized database, they don’t require students to carry anything to identify themselves. However, these machines caused a huge overhead for the Mess Office. As they worked in “attendance mode,” only collecting data regarding who ate where, the actual bill generation involved manual compiling by the Mess Office. And when the biometric did not work – for example, for students with certain skin conditions including Vedant himself – they would manually note the students’ roll numbers and these lists would also need to be manually compiled by the mess office.
So, recognizing this overhead, Professor Girish Verma, head of the Mess Committee, suggested using QR codes. He reasoned that they are easy to use and easily accessible because no one ever forgets their phone. Moreover, the data could be easily compiled in the database, decreasing the workload of the Mess Office, and allowing them to focus on their main job: providing the community with consistent healthy and hygienic meals.
Feeding IIIT, One Line at a Time
The tech behind the portal is deceptively simple…if your definition of ‘simple’ includes Rust, Go, and JavaScript all playing nice with each other while keeping a few hundred angry college students well-fed.
The system is divided into three distinct parts. First is the front end, built using React and Tailwind CSS. To account for any future changes, the mess portal admins made their API documentation public, inviting anyone brave enough to make any customisation they want. Next is the backend, built in Go – chosen over Python and Typescript for its speed. And lastly, the client that runs on the mess computers, built in Rust.
This client is what actually handles QR code scanning and validation at the mess described above. Originally, they thought of using webcams with OpenCV. However, just trying to compile the computer vision library subjected the laptops to the kind of heat you’d expect from a tandoor. While they kept it as a backup, they moved onto a leaner alternative: actual QR code scanners – “Made in India,” they proudly pointed out.
Speaking of the database, the choice to completely abandon the old PHP-based backend was less a decision and more an easy way to avoid a technological quagmire. No one knew where the PHP code was, how it worked, or who maintained it, if anyone at all. The old system relied on a tangled mess of python scripts, database quirks, and random Excel exports that required twenty-one steps and three portals just to generate bills. In contrast, the new system uses PostgreSQL with stored procedures and schema-based triggers that enforce rules like mess capacities, meal cancellations, and registration cutoffs directly in the database.
Perhaps the most impressive part of the whole ordeal is that this system runs on literal potatoes – 1 CPU core and 4 GB RAM, less than a lot of modern phones. The backend has never crossed 30% CPU usage, even with 80+ concurrent users. Moreover, the system is highly resilient throughout the system. The client machines run NixOS, a functional, declarative, pain-and-suffering-based Linux distribution.
As for the portal itself, it supports offline functionality and includes a user-friendly admin panel with a full analytics dashboard. The mess portal admins can use the dashboard to track frontend errors, monitor meal registration numbers, and analyze how users register – whether by selecting individual meals, importing preferences, or using range-based registration. This helps in identifying user patterns and optimizing the registration process.
A UG-1 Effort, Start to Finish
By now, the system must seem like a labyrinth of technological complexity. So how did just two people – that too, two UG-1s – get it done? An all-consuming development marathon. “Ten hours a day for the first 21 days,” they said. Lines of code blurred together as the system slowly took shape. Features were built, broken, fixed, and broken again. But finally, after roughly 300 to 400 hours of development, the portal was ready.
There are two more remarkable things about the mess portal, and we must give credit where credit is due. Firstly, this was an entirely UG1-led effort. From brainstorming to execution, the project was built from the ground up by first-year students, a feat nearly unheard of for a system of this scale. Secondly, in an era where AI-generated solutions dominate the tech space (and assignments), this portal was crafted the old-fashioned way. Not a single line of code in the entire mess portal was written using AI. That, to us at least, is unbelievable.
The Aftertaste
The reaction to the new mess portal was nothing short of spectacular. Vedant recalled how whenever they went to the messes to check on their system, they received nothing but gratitude from the mess supervisors. This was especially apparent in Kadamb, where the mess workers no longer had to manually search and tick off roll numbers during the non-veg meals, drastically reducing the workload and increasing efficiency.
Of course, not everyone got the memo. The developers found themselves bombarded with emails from students panicking about why their IMS registrations hadn’t magically transferred or why they had been randomly assigned to a mess despite not registering. To this, they sarcastically mentioned, “You can register, you know.”