Whenever a person in our friend group asked what we should eat for dinner together, they would always be met with an IDK. Many times we were trying to figure out what to eat when we were together. It would end up with us spending a lot of time debating on where to go. We needed a way to help us decide on what to do.
What it does
Each user can join a group created by the host. The host decides on the max range to search for restaurants. From there, all users choose which types of foods they may want to eat (Indian, Chinese, Vegetarian, etc.). Once everyone has submitted their choice, the app will present the user with a bunch of restaurants from Yelp based on the location of the host and types of food chosen. The user will swipe right or left on each restaurant (Tinder style!) to vote on which restaurants they want to eat at. Tapping on the restaurant will pull up a page with more information regarding it, such as images, reviews, and a Google map with its location. Once everyone has finished voting, the app will display the top 3 choices in order.
How we built it
For the mobile app, we used flutter. Flutter is a framework by Google based on dart. It is cross-platform and can work for Android and iOS. For the server, Node.js was used, as well as MongoDB for the database. Pusher was used to notify the users when all the submissions were in and they can move on to the next phase.
Challenges we ran into
The major challenges that we had were mainly just learning how to use the new tools. One person had some experience in Flutter, and others had some experience in Node.js, however none was extremely proficient at it. Additionally, this was the first time any of us used MongoDB and Pusher, so a lot of time was spent on learning it. Also, since most members did not know Flutter, it took quite some time to thoroughly test the mobile app, especially with the long build times that come with mobile development.
Accomplishments that we are proud of
Honestly, we are proud that we were able to finish such a project. It seemed a trivial task at first, however as we started exploring the tools and developing, it quickly became a large task. In addition, despite being friends for so long, this is the first hackathon that we did in over several years together. Being able to finish, especially in these circumstances caused by Covid-19.
What we learned
We learned how to use Pusher to setup listening channels on the devices and MongoDB to store information, and we were able to teach and help each other about client-server connections, Flutter, and Node.js. While we worked on different parts, we made sure everyone had a basic understanding of what was going.
What's next for IDK
The next step for IDK is to expand and encompass more than just deciding restaurants. Initially it would incloud locations and activities. Eventually, we hope that it could include any of the user-choices.