Inspiration
After a year of college, we've noticed two things: students on a tight budget looking for their next meal, and student organizations with boxes of leftover pizza after a meeting. We always wanted to make this idea, so now was the time to implement it! Eator came to be because we both wanted to find free food, but only now did we realize that it also could be helpful both to students who may have food insecurity and organizations who don't want to put their food to waste.
What it does
Eator is a real-time, interactive map designed for the University of Florida campus. It allows student organizations to instantly "drop a pin" at their location when they have leftover food from an event. Any user can open the web app to see a live map of these pins, complete with descriptions, locations, and a live countdown timer showing how much time is left before the food is gone.
How we built it
Frontend: We used React with Vite for a fast, responsive user experience. The interactive map was built using React-Leaflet. We implemented a complete routing system with react-router-dom for navigation between the map and "About" page, and managed user state through JWTs stored in Local Storage.
Backend: The REST API was built with Python and Flask. We used MongoDB Atlas for our database, leveraging its special TTL (Time-To-Live) index to automatically remove expired pins. User authentication is handled securely with password hashing via Bcrypt and stateless session management using JSON Web Tokens (JWTs).
Deployment: The frontend is hosted globally on Vercel, and the backend is live on Render.
Challenges we ran into
Our biggest challenge was definitely with timezones. I spent over an hour debugging a persistent 4-hour offset between our frontend's local time and the backend's UTC time. This forced us to closely study and look at the documentation for JavaScript's Date object, Python's timezone-aware datetime, and the ISO 8601 standard to ensure that the expiration timers were accurate.
Another significant challenge was maintaining a consistent API contract between the frontend and backend. As we rapidly added features like user-specific permissions or changing how a pin's expiration time was handled, we had to continuously redefine our API. This meant constantly communicating to ensure the data structure sent by the frontend (e.g., coordinates as an object vs. an array) perfectly matched what the backend expected to receive, which was a great lesson in real-world team development.
Accomplishments that we're proud of
We are incredibly proud of building a complete, secure, and fully functional full-stack application in just 24 hours. Implementing a robust authentication system with JWTs, user roles, and protected routes was a major accomplishment. We're also proud of the backend's automatic pin expiration using MongoDB's TTL index, which makes the application self-maintaining without wasting storage. Finally, creating a polished, responsive, and intuitive user interface with a live map and real-time countdown timers is a feature we're very excited about.
What we learned
This was a first for the entire team on working an a full-stack project. We've never worked on creating our own API endpoints before, and it really was an eye-opening experience. At first we thought it would be pretty easy, just code up what we want, one thing at a time; however, it definitely did not go that way. We spent the same amount of time on building the features as we did debugging the interactions between systems. Most importantly, we learned the value of separating frontend and backend responsibilities. Unlike our previous projects where we constantly switched between different parts of the stack, having clearly defined roles allowed for focused and speedy parallel development.
What's next for Eator: The Campus Food Finder
The current version of Eator is just the beginning. The core concept of a real-time, community-driven map has massive potential beyond finding free food. We envision Eator evolving into the go-to platform for discovering any kind of hyper-local, spontaneous event on campus.
Future features could include:
A Tagging and Filtering System: Users could drop a pin and tag it as "Free Food," "Club Meeting," "Study Group," or "Social Event," allowing others to filter the map for exactly what they're looking for.
Club and Event Promotion: Student organizations could use Eator as a tool to advertise their meetings and events, driving engagement by offering food.
Proximity-Based Event List: A new feature that shows users a sorted list of the closest active pins, making it even easier to find what's happening near them.
Google Maps Integration: Clicking a pin would provide a direct link to Google Maps, giving users instant walking or driving directions to the event location.
In the end, Eator aims to bring the campus together, connecting students not just with food, but with each other.
Log in or sign up for Devpost to join the conversation.