Inspiration
We’ve all been there - having to decide on a place to go eat at with friends. Everyone has their different ideas and preferences, and no one can settle on one definite place to go. Friends argue, people flake out, and by the time the group decides, most places will probably be closed. Now we’re back to square one!
Surely quicker, easier decision making methods exist? Lots of research has actually gone into studying decision making and leading studies show that pairwise comparisons are quite efficient. So, why not implement this method into our own group restaurant decision making?
What is Picky?
Picky is a cross-platform web application meant for groups to come together and quickly, easily decide on a place to eat that everyone is content with! Picky has two primary actions: suggesting restaurants to a group and voting on restaurants with a group.
Users can first either start a room by being the first to open the app, or join a room simply by tapping a shared link. Then, all users are asked to provide their own ideas for places to eat on the search page. Users will simply access the drop down, search for their restaurants, and add them to the candidate pool.
Next, simply by swiping to the left, users are presented with the voting page. Here, two options from the candidate pool are presented to the user. The user can choose to look at various extra information about each candidate, and then ultimately make a choice between the two. Then two more options will be presented and the process will continue.
As voting occurs, any user is still able to freely swipe between the two screens, voting on candidates and adding other candidates should they choose to do so. Once a specific condition has been met according to our algorithm, all users are presented with the candidate which had the highest win to appearance ratio. The perfect place to eat!
Now, users can spend less time worrying about where to go and more time actually going.
How was Picky built?
On the frontend, Picky is built upon a Vite and React baseplate. The backend makes use of python with FastAPI and MongoDB. As votes come in, their counts are added to the database live, and the results are reflected through FastAPI requests from the frontend. Searching for restaurants on the front end is done through calls to Google’s Places API, and then information from the API such as star rating and images are shown on the cards for the restaurants during voting.
Lo-fi Prototypes
Engineering
Challenges we ran into
Picky is built around an algorithm for one-to-one comparisons for ranking several options. Implementing an algorithm that works with live input was one of our greatest challenges for both frontend and backend, keeping track of state through a database, generating options live, and showing it live on the front end.
Takeaways
Accomplishments that we're proud of
Experimenting with and incorporating sponsor technologies into our project Developing an algorithm to find the perfect choice through a series of one-to-one decisions. The interface is minimal and clear, anyone can pick it up and understand how to use Picky instantly.
What's next for Picky
Incorporating AI powered recommendation systems Converting to a native application Increasing accessibility Further refining and perfecting our pairing algorithm Continuing research into decision making
Log in or sign up for Devpost to join the conversation.