Inspiration

Attending college is truly an incredible experience! Besides classes, there are always fun events, oftentimes with delicious food. However, it saddens us to think that a lot of good food goes to waste, especially considering the how prevalent food insecurity is among college students. Wouldn't it be nice if the surplus food, instead of being wasted, could go to students?

Also, much like the students themselves, their food preferences are unique. It would be disappointing if someone went for free food only to discover it contains an allergen. Having that information beforehand would be useful, wouldn't it?

What it does

Our mobile application is a platform for students to get notified about the following information:

  1. Availability and quantity of free food
  2. Personalized information about the allergens and preferences that are actually relevant to the user
  3. Location, time, and point of contact relevant to the food distribution.

Not only does the app give the above information, it also allows Users to post about free food that they have. There is an interface which allows them to post about the availability, quantity, allergens, location, and time regarding the free food.

How we built it

While the end goal is to build an application for all major platforms, we have built our prototype in Android using Android Studio. Here are the technical details:

  1. Android Studio version: Android Studio Giraffe | 2022.3.1
  2. Target mobile architecture: Android 7.0 (Nougat) and above. (compileSdk = 34 and targetSdk = 34)
  3. For the user interface, we have used a combination of LinearLayouts and RelativeLayouts, along with the basic TextViews, ImageViews, EditTexts, and Buttons.
  4. To store data persistently, we have used SQLite database.

Challenges we ran into

  1. Choice of persistent storage: We spent some time discussing the benefits and trade-offs of the nature of database. We finally settled down on SQLite, which is a SQL-based database, over Firebase.

  2. Feature selection: The application that we decided is quite ambitious, and we had a lot of features in mind. However, due to limited time, we could only put limited features in our prototype.

Accomplishments that we're proud of

Given the limited time-frame, and not having done Android programming in years, we built a decent prototype that accurately conveys our idea.

What we learned

  1. Scalability decisions come early! Since our application and idea focuses on data integrity and consistency, it made sense to go with SQLite, which is a SQL-based solution over Firebase, which is NoSQL.

  2. Time vs features! With more time, we could have added more features, but we learnt that it's not about exhaustively adding all the features that we had in mind. We believe it's about showing that the idea works, and provides value to students.

What's next for OpenTable

  1. Intelligent allergen detection: The person who makes the announcement about food availability, has to put the allergens, and dietary information themselves. To err is human, and to automate is technology. We could develop a logic where the app suggests common allergens based on the food description.

  2. Scaling up: The application in its current iteration is only available as an Android application. The next step is develop an iOS app, as well as a website for the system.

  3. Email notification: Along with in-app notification, we can add the feature to to let users sign up for email notification whenever a tasty treat is available!

  4. Performance optimization: As the software scales up, various optimizations are needed, such as developing database views that store results of commonly required query results.

Share this project:

Updates