Inspiration
How many of you end up eating lunch or dinner alone in a restaurant? As Waterloo students, we all have heavy class schedules. Sometimes we only get 40 minutes before the next lecture. Often, you ask your friends to have lunch together, but the time doesn't work out, or they want to eat different things. That's when our app come into play. Users can pre-set their preferences, shake their phone, and quickly get matched with someone who also wants to eat at the same restaurant at that moment. It's a great way to learn new things, make new friends, and find a potential date in limited time.
What it does
With our Android mobile application, users create an account and set their personal preference for which restaurant they would like to visit, what kind of people they want to talk to, and their preferred topics such as literature or music. Then, users shake their phone to be matched to other users who also shook their phone within the last five minutes, also want to eat at the same restaurant, and have similar interests. After they get matched, we offer a chat feature to help users meet at the restaurant successfully.
How we built it
We extensively used the Firebase SDK for Android. The real-time Firebase database powers the matching functionality, allowing users to find matches instantly. The chat function is also powered by Firebase's database, rapidly syncing messages between the two devices. Finally, the Firebase Cloud Messaging API is used to show a notification when a match is found.
Challenges we ran into
Unfortunately, Firebase's query language cannot specify some complex queries in our app, and the example code provided by Firebase did not support further filtering results clientside. Instead, we simply hid the unwanted items by setting their table cells to have 0 height. Firebase Cloud Messaging is designed for use with a backend; however, we wanted to create an application that is purely front-end. To that end, we decided to send Cloud Messaging requests from the clientside directly. While this presents a security risk, it's suitable for a prototype.
Accomplishments that I'm proud of
We get it down! With everyone's collaboration within the group. Nothing can be more proud than this!
What I learned
Firebase, Google platform, Android
Not good enough, keep learning, keep practicing
What's next for Mingler
Build Mingler with proper architecture, add proper backend. Build more features to make the platform more stable, like reputation system. Eventually, free to use for every student in UWaterloo (potentially other universities).




Log in or sign up for Devpost to join the conversation.