FoodMap is a map of Princeton University showing all the places students can get free food in real-time. It is a project for COS 333, Spring 16-17.

Check out FoodMap!


Seung Jae (Ryan) Lee (seungjl@princeton.edu) – Project Leader
Michael J. Friedman (mjf4@princeton.edu)
Nathan Mytelka (nmytelka@princeton.edu)
Rachana Balasubramanian (rachanab@princeton.edu)


Robin Qiu



Project Demo

Product Guide


Elevator Pitch

Did you know: right at this very moment, there’s a good chance that the COS department is giving away free food outside the auditorium after some talk? Or there’s a presentation in PNI and you’re missing a fantastic spread of sandwiches? “What? Why didn’t I know about that?” Because the only way you could keep up with all of these opportunities is if you’re watching the freefood listserv like a hawk! I mean, who really has the time to sift through all those “Lost jacket!” and “Anyone have a screwdriver?” emails to find out where the free food is? Enter FoodMap: we do that for you. Launch our website, and right there in front of you is a map showing you exactly where to go for free food. You don’t even have to use your email to submit food – just use the form linked directly to our map.  It doesn’t get easier than that!


Stage 1) Core app

  • Create a database (3/24)
    • Interface into Python/Django
    • Interface into Node.js
  • Create a Project Gmail Account, subscribe it to free food listserv (3/17)
  • Scrape the free food listserv (Node.js)
    • Compile list of all possible location (3/19)
    • Compile list of all food types (3/19)
    • Implement the scraper: Finished by (3/23)
      • Use substring searches (possibly regular expressions) to determine the type of food and the location
    • Store this information in the database (3/26)
  • Set up Heroku for deployment (4/5)
  • Build web app: use the information in the database to populate the interface (Django)
    • Set up framework (3/25)
    • Design/implement user interface
      • Layout of interface (3/24)
      • Html implementation (4/3)
    • Implement map in the webpage (Leaflet) (4/3)
    • Retrieve information from the database, populating map (4/9)
    • Get location of the user with HTML5 Geolocation API (4/9)
    • Tap on markers for info window with description of the offering (4/9)
      • Colored pins based on timestamp/urgency

Stage 2) Improvements

  • Allow users to enter free food spots from the web app via a form
    • Make the form
    • Insert results into database
  • Add weekly events that consistently generate free food

Stage 3) Future

  • Use natural language processing to improve the reliability of email scraping
  • Use ML to refine algorithm for directing you to free food – take into account
    • How fast the food is going to disappear by location, type of food
  • Allow users to search/filter food offerings by:
    • Dietary restrictions
    • Food categories
    • Urgency (how soon food will disappear)
    • Distance (within a radius of user’s location)
  • Add the option to complain about weekly events that either:
    • the food was never present (and the weekly event is removed) or
    • the food was gone before the event “started” (if this happens regularly, remove it as well).