Inspiration
As students, all three of us have experienced the classic—and incredibly awkward—library seating conflict. We've all been the "walk-in" student who finally settles into an empty desk and gets into the zone, only to be abruptly kicked out by someone who just booked it online minutes ago. Conversely, we've also been the person who reserved a seat, only to arrive and have to awkwardly ask a deeply focused student to pack up and leave.
This friction is unpleasant for everyone involved. It disrupts study continuity, creates unnecessary social tension, and exposes a massive flaw in traditional reservation systems: a complete disconnect between the digital booking and the physical reality of the desk. We built Super Seat Saver to bridge this gap. Our goal was to eliminate these uncomfortable confrontations, protect the focus of walk-in students, and create a truly harmonious and stress-free study space.
What it does
Super Seat Saver is an end-to-end smart seating ecosystem that synchronizes physical desk occupancy with a digital reservation platform in real-time. Here is how it fundamentally changes the library experience:
- Hardware-Driven Walk-in Protection: If a student sits at an empty, unreserved desk, our custom distance sensor immediately detects their presence. The system instantly updates the seat's status to "In Use (Walk-in)" on the web interface, blocking anyone else from booking it online. This guarantees study continuity and protects spontaneous learners from being unfairly evicted.
- Intuitive Visual Feedback (LEDs): Each desk is equipped with an LED indicator that reflects its real-time status. Crucially, if a walk-in student is occupying a seat and a scheduled reservation is approaching, the LEDs will begin to gently flash. This provides a polite, non-confrontational physical warning to the current occupant that it's time to pack up.
- Strict Physical Check-in & Auto-Release: To eliminate the plague of "ghost bookings" (people who reserve but never show up), users must physically check in by typing their custom PIN into the seat's hardware keypad at the start of their slot. If they fail to do so, or if the sensor detects they have abandoned the desk for an extended period, the system automatically releases the seat back into the public pool.
- Frictionless, Stateless Web App: We removed the barrier of cumbersome account creation and logins. Students can search for available seats, filter by amenities, book slots, and cancel reservations instantly using only their Student ID and a custom PIN.
How we built it
Super Seat Saver is a true full-stack IoT project, seamlessly bridging physical hardware with a modern web architecture. We divided the system into three core layers:
- The Hardware & IoT Layer: The physical prototype for each desk is powered by an Arduino Uno Q and a breadboard circuit. We integrated an ultrasonic sensor to accurately detect human presence and seat occupancy in real-time. A matrix membrane keypad is wired in to handle the strict physical PIN check-ins, while LEDs act as the visual output to communicate the seat's status to the physical world.
- The Backend & Communication Layer: The brain of our digital ecosystem is a high-performance, asynchronous REST API built with Python and FastAPI. We chose MongoDB as our database to flexibly handle seat states, timestamps, and stateless booking records. To achieve near-zero latency between the physical desk and the server, we implemented the MQTT protocol. This lightweight messaging protocol allows the Arduino to instantly broadcast occupancy changes to the backend, while the server can push commands (like flashing the LEDs) back to the hardware.
- The Frontend & UI Layer: The user-facing web application was built using React. We utilized Tailwind CSS to rapidly style and craft multiple highly polished, custom UI themes (allowing users to switch between Academic, Paper, and Japanese aesthetics). To manage the complex, real-time data flowing from the backend without bloating the app, we used Zustand for lightweight and efficient global state management.
Challenges we ran into
Building a system that bridges the unpredictable physical world with a strict digital database presented several massive hurdles:
- The Hardware Documentation Nightmare: The specific microcontroller provided at the venue—the Arduino Uno Q—had almost no official documentation. We ran into bizarre IDE upload failures, and many standard Arduino library methods simply refused to compile or execute on this specific board architecture. Official forums were either silent or offered solutions that didn't work. We ultimately had to rely on relentless, line-by-line trial and error to successfully interface our sensors, keypad, and MQTT client.
- State Machine Complexity on the Backend: Managing the overlapping states of a library seat became incredibly complex. A seat isn't just "free" or "booked"—it can be "physically occupied but digitally free" (Walk-in), "booked but awaiting physical PIN check-in," or "physically empty but digitally reserved." This led to frequent API restructuring to ensure these physical and digital states didn't violently clash (e.g., preventing a walk-in from overriding an upcoming scheduled booking).
- Iterative UX & The "Time-Slider" Pivot: Our frontend UX underwent massive iterations as we discovered real-world usability flaws. Initially, our logic was too rigid—booking a seat inadvertently locked it out for the rest of the day. Furthermore, our first UI prototype used a single-handle time slider. This meant users had to manually scrub through time, memorize which seats stayed empty during their desired study period, and then click in to book. We quickly realized this was terrible UX. We scrapped it and engineered a dual-handle range slider. Now, users simply select their desired continuous time block (e.g., 14:00 to 18:00), and the dashboard instantly filters to show only the seats that can accommodate that exact duration.
Accomplishments that we're proud of
Surviving the night and delivering a fully functioning cyber-physical system is our biggest win, but we are specifically proud of three things:
- The "Invisible" Custom Hardware Enclosure: We didn't just leave a mess of wires on a desk. Using cardboard and tape, we engineered a bespoke physical housing that clips naturally onto the edge of a library desk. It neatly hides the Arduino, the breadboard, and the ultrasonic sensor, making the presence detection completely seamless and unobtrusive to the student. The top panel is ergonomically angled to house the matrix keypad, perfectly positioned for users to punch in their check-in PIN. It's a true, tangible prototype.
- Stateless Security & High-End Frontend Polish: We refused to compromise on UI/UX. We built three distinct, beautifully crafted visual themes (Academic, Paper, and Japanese) that users can switch between. More importantly, we cracked the "stateless cancellation" problem. Users can securely manage or cancel their bookings using just their Student ID and PIN—no accounts needed. To handle edge cases where a student books multiple seats across different times, we designed an elegant, collapsible timeline UI that keeps the management dashboard clean and precise.
- Resilient Full-Stack Orchestration: Writing the logic was one thing; watching the backend successfully bridge the frontend web app and the physical hardware was magical. Our FastAPI backend seamlessly translated MQTT hardware signals (like the sensor detecting a walk-in) into instant React UI updates, proving that our complex state machine and asynchronous logic could hold up under real-world testing.
What we learned
Building Super Seat Saver was an intense, accelerated crash course in full-stack engineering and IoT integration. Here are our biggest takeaways:
- Bridging the Physical and Digital Divide: We learned how to seamlessly connect physical hardware (sensors, LEDs, keypads) with a modern web stack. Implementing MQTT taught us how to translate real-world physical actions into instant digital state changes with near-zero latency.
- Mastering Event Scheduling & Complex State Machines: Managing overlapping seat states was incredibly tricky. We learned to architect an asynchronous task pool (an event scheduler) that queues upcoming state changes and triggers the system at precise moments—like essentially "kicking" the server to push a flashing LED signal to the hardware right before a reservation is about to start.
- User-Centric Agile Development & UX Iteration: Our initial MVP was extremely rigid: it only allowed basic booking, lacked a cancellation feature, and made finding free time slots a chore. By continuously testing it ourselves, we rapidly iterated the UX. We engineered a robust stateless cancellation system, introduced dynamic amenity filters (e.g., 'Quiet Zone', 'Power Outlets'), and polished the UI to make the entire booking journey intuitive and beautiful.
- The Critical Importance of Strict API Contracts: We learned the hard way that API data structures and types must be rigorously defined and agreed upon before coding begins. Changing payloads or adding fields midway through development caused painful cascading issues between the frontend and backend, teaching us the invaluable lesson of upfront system design.
What's next for Super Seat Saver
Our Hackathon prototype proves that bridging the physical and digital worlds is the key to solving the library seating crisis. Our vision for the future of Super Seat Saver focuses on hardware refinement, seamless UX, and real-world deployment:
- Hardware Miniaturization & 3D Printed Enclosures: We plan to transition from our current breadboard and Arduino Uno setup to custom-designed PCBs. Combined with sleek, 3D-printed enclosures, the Super Seat Saver hardware will transform into a durable, unobtrusive commercial module that seamlessly clamps onto any standard study desk.
- Frictionless NFC Tap-to-Check-In: To make the physical check-in process even smoother, we aim to replace the keypad with integrated NFC/RFID readers. This will allow students to bypass manual PIN entry entirely and simply tap their existing university ID cards to authenticate their reservations in a split second.
- Real-World Pilot Deployment: We want to bring Super Seat Saver out of the lab and into the real world. Our immediate goal is to pitch a pilot program to campus facility managers—starting with high-traffic areas like the UCL Student Centre or the study rooms in Garden Halls—to validate our system against real daily study patterns and completely eradicate "ghost bookings."
- Predictive Space Analytics for Admins: We plan to build a comprehensive data dashboard for library staff. By analyzing the massive amounts of real-time MQTT occupancy data, the system won't just track "no-show" rates. It will eventually use predictive algorithms to forecast peak times and dynamically guide students to zones where seats are most likely to free up.
Log in or sign up for Devpost to join the conversation.