As any Brown student can tell you, finding out which dining halls are open, and what they are serving is actually really hard. Some dining halls have specialties, like “chicken finger friday” at the “V-Dub” or this tomato soup that I really like, which they sometimes have at the “Ratty”. We created an app that provides a better interface for providing information on which dining halls are open, and what they are serving.
What it does
Our app fetches menus from the Brown dining services website, and parses that down into useful information. The data about menu items are stored in a database on our backend. When a user opens the app, the app downloads the data from the backend and displays the menus in a much more readable format than where we originally parse the data from. Parsing menus once and storing that data on our backend server is much more efficient than parsing menus every time a user opens the app to check a menu.
How we built it
The front end app is written in Swift and Cocoa for iOS. The backend is written in Python, using the Flask library, running on Google App Engine. Beautiful Soup helped us parse HTML in Python, providing the dining data from the weekly posts on http://brown.cafebonappetit.com/cafe//.
Challenges we ran into
Given the complexity and disorganized nature of the current menu that is provided online by Brown dining services, it was very difficult to parse that data into a more useful and understandable format.
Accomplishments that we're proud of
We are proud of having built a robust backend and a powerful parser that was able to fetch accurate and up-to-date data on current Brown dining menu items. We are also proud of our friendly and simple user interface.
What we learned
We learned about parsing complex data from public websites and turning that data into a powerful backend API. We also learned a lot about how to work as a team.
What's next for Brown Dining Service Menu
We think it would be great to include information about events that are offering free food around campus. We also think it would be really interesting to turn this menu into a crowdsourced delivery service, sort of like Postmates or UberEATS, but specifically for Brown students ordering food from Brown dining halls.