Whether it's calling in a food delivery or finding a restaurant to go to, we always find it difficult to decide on a restaurant while striving to be inclusive at the same time. Everyone has different dietary preferences and restrictions. Hence we developed this app to help us with finding an optimal restaurant to eat at / order from.
What it does
Users first create an account in the app, then one person will act as the host and start a group - giving everyone a simple group name and an estimated time of eating. The others will then join the group, and everyone will proceed with a simple survey to gather everyone's
- price range preference
- waiting time (how long they're willing to wait before their stomachs protest!)
- distance from where we are (if we're travelling out to eat)
- dietary restrictions, allergies, preferences
The backend's algorithm will then take this information and come up with the top three matching restaurants (upper bounded by price range, waiting time and distance from where we are) (the dietary restrictions allergies and preferences are unioned together). The group will then participate in a voting (ranking) exercise - ranking the three restaurants in order of preference.
The backend's algorithm will then average the results and present an optimal choice to the users - the restaurant's name, telephone number, menu, website, and other related information.
How I built it
The backend is created using SQLite, Python and Flask, hosted on Google Cloud. The frontend is created using Android Studio, coded in Kotlin. The frontend's UI is demonstrated on Figma.
Challenges I ran into
In the beginning of the project, we had trouble combining the front end and the back end together, but after spending multiple hours collaborating on call and making a public documentation we were able to work together harmoniously.
Accomplishments that I'm proud of
We tapped into everyone’s individual strengths and split work accordingly - some of us concentrated on the backend, working with Python, Flask and SQLite; some of us worked on the Figma demonstration, and some of us worked on coding up a skeleton app in Android Studio.
What I learned
From uPick, we were able to to learn the importance of planning events, and through the app we developed it was clear to us the importance of event planning and we were really excited at the idea of creating something that could facilitate the process when organizing events.
What's next for uPick
We’ll continue developing the frontend Android App in Android Studio (currently, the main navigation within the app is done, but it is not yet hooked up to the backend on Google Cloud). We also have not yet implemented the logic for scanning restaurants’ menus for presence of allergens / dietary restrictions - we found it too inefficient to implement for now (we need to iterate through every menu item and test it one by one), but that’ll be the next task for the backend!