Abstract
I developed a modular smart IoT device for automated restaurant inventory tracking that integrated with a cloud based Flutter web-app. It won 2nd place out of over 400 other projects in the OSU spring 2025 college of engineering design showcase. Nearly everything in this project was new to me and I had to learn everything on the fly which was an invigorating experience. This is a large project, so I have only included the highlights here; you can find my full project along with all presentation materials (and more cool renders) here: https://github.com/AdityaGupta0/quantifi.
The Concept
I identified a potential market gap in the restaurant industry’s ability to track non-quantized ingredients, and that the market for inventory tracking was dominantly controlled by expensive PoS (Point of Service) systems, some of which required proprietary hardware and custom terminals which are costly. My goal was to create a system that was able to track the quantity of items in an automated fashion with a simple user facing data aggregation platform. After exploring a multitude of options and ideas, both existing and theoretical, I settled on making a modular IoT device system which used a “smart pad” with weight sensors, NFC readers, and wireless connectivity. These modules would then connect to a cloud database which the user could access through a simple to use web-app.
Complete Smart Pad with 9 modules. Rendered in Blender.
The Smart Pad
The smart pad is collection of multiple square weight sensing modules with embedded NFC readers. It works by detecting whenever an item with an NFC tag is placed on it. When that happens, it reads the data from the load cell and uploads the measurement to the cloud.
Housing
The smart pad consists of an FDM 3D printed thermoplastic housing to keep costs down while maintain durability suitable for a kitchen environment. The housing itself is spill/splash resistant and easy to clean. The housing was designed in OnShape.
Electronics
The smart pad includes a Raspberry Pi Pico W as its brains/wireless module along with an NFC tag reader and bar-style load cell. All electronics are conformal coated for added protection for potentially hostile kitchen environments. The modules have magnetic pogo pins that serve as interconnects so pads can conform to any space. Since the electonics were complex as the number of modules grew, I designed a breakout board in KiCAD to teach myself the basics of PCB design. I however did not have the budget to order this board and therefore had to use a perfboard along with a traditional wire hardness. The schematic I designed did come in use when doing the soldering which was nice.
Finished Wiring Harness.
The Web App
The software stack for the system was built using Firebase and Flutter due to their ease of use (I had zero prior experience in app development) and powerful feature set. Flutter also had the advantage of being natively cross platform and making it easy to design a functional. The interface was first prototyped in Figma before being implemented in flutter.
The database scheme was very simple; it consisted of separate entries for each item which was identified by a unique number (it was just the Unix Epoch at the time of creation), and contained fields for the name of the item, its maximum weight, threshold and last measured weight.
Quantifi App Running in an iPhone Simulator Through XCode.
The Web App interface consisted of a home page with each item listed in a cell along with controls to:
- Tare: set the current item weight as the maximum.
- Edit: Edit the name of the item and the threshold of the item.
- Delete: remove the item and all its entries from the database. Each item’s quantity was expressed as a percentage of its maximum weight. If the percentage quantity was below the threshold, the cell would be marked as Red and the user would be notified via a push notification that the item is running low.
The system was interrupt based so values for an item’s current weight were only updated when it was placed onto the smart pad. The user could add new items to be tracked by using the add button in the bottom right corner which would allow the user to enter a name and threshold. The add function automatically created a new ID based on the Unix Epoch to prevent conflict between items with the same name. The ID was the same as the NFC tag data which made tracking items simple between all parts of the software stack.
The journey of implementing this was difficult, as I had zero prior experience with flutter or full stack development, so I had to learn the syntax and structure of Dart which is a very unique language (widget oriented instead of object oriented) within the span of just a few days. After I felt comfortable to start building, I jumped right in and mapped out the interface and buttons before linking them to database actions. Luckily, by using Firebase and Flutter together, it was easy to link and deploy the application. You might ask “why didn’t you just vibe code it?”, and to that I say: because I want to learn and grow as an engineer while enjoying the challenge of building things from the ground up.
The Complete Prototype Architecture.
Imagery
A large part of the project was pitches and presentations to the judges. To create a visually engaging presentation and informative presentation, I used Figma to create the slide show along with diagrams depicting the system architecture. I also learned how to use Blender (over the course of a very long 12 hour sleepless night) to create aesthetically pleasing renders of the final design concept, including an animation sequence. This first contact with Blender actually inspired me to learn 3D animation during the summer of 2025 alongside my engineering internship.
Conclusion
My project won second place at the 2025 OSU spring engineering design showcase. Over 400 teams competed and teams were judged based on the viability of their concepts along with the quality of prototype they created. Multiple judges who listened to my pitch and saw the live demo of my prototype suggested I should attempt to make a startup with it during the summer, but this project did not align with my ambitions so I did not. Also, I am an engineer at heart, not an entrepreneur. I only spent around 2 weeks on the project and was constrained to a $70 total budget which lead to the hardware and software prototypes lacking general polish.