Deciding upon a place to eat as a group is hard. Everyone has different tastes, some have dietary restrictions, and many people are too indecisive or apathetic to effectively contribute to the conversation. But why does there even need to be a conversation? We built FedUp to take the effort out of deciding where to eat, so that you can spend more time enjoying a meal with your friends.
What it does
We will provide you with a restaurant recommendation in under a minute. After the initial setup, which involves setting one’s cuisine preferences, our app is based around a user’s groups. These groups are displayed on the homepage and in just one tap, a restaurant recommendation will be made that fits everyone’s preferences. From the restaurant page, a user can punch out directly to a phone call to make a reservation, see its location on a map and punch out to get directions, and also punch out to the restaurant’s page in their Yelp app to find out more about the restaurant.
How we built it
We utilized golang for the backend. We chose this primarily because of its relative ease of use, and because we knew that we needed to utilize concurrency in order to quickly give our users their recommendations. Our golang server then hooks up to MongoDB in order to save all the data about our users, their groups, and their preferences.
For the iPhone app, we made use of swift in order to build the iOS app. We wanted to make sure that the code was native to the phone, so that the user had the best experience possible.
For both our iOS app and our backend we make use of Facebook's API's in order to authenticate users and connect our users with their friends. We also utilize Yelp's API in order to serve up restaurant information to our iOS app once we've determined the group's collective preferences.
Challenges we ran into
We utilized a lot of new technologies that, as a group, we didn't have a lot of experience with. Before this app, none of us had used golang or created an iOS app on the App Store, so both of these were new experiences for us as a team.
We also ran into issues on how to fully design the user experience. Through user testing and feedback, we were able to figure out where our app felt complicated and clunky, and where our app truly shined.
Accomplishments that we're proud of
We're very proud that we actually managed to build as great of a product as we have in the short amount of time. We feel that our app is fairly complex and has many moving parts. We are very proud of how seamlessly our app works.
Additionally, our user testing has shown us that this app has real world use cases. We started off with a problem that our team experienced and thought that others experienced as well, and although we knew of existing attempts at solving this problem we felt those apps were overly complicated or had a terrible UX. During user testing, we were asked many times whether this was already available on the App Store, and for us, that statement alone proved how valuable our work had been.
What we learned
Since the team didn't have much prior experience with any of the technologies used in this hack, we all learned an incredible amount about Swift development and golang.
We also learned how different people can have different perceptions on the user experience of an app. There were many times where we, as developers, believed that a part of the app was intuitive, yet our test users believed those parts to be some of the most confusing aspects of the app. Many times we had to take a step back and weigh different users' opinions on how a particular feature should work in order to find a solution that was both intuitive and functional.
What's next for FedUp
After such positive feedback from our user testing, we plan to continue polishing up our app after this hackathon and launch it on the App Store next month.