Our inspiration behind this project was the challenges people face during the pandemic. We wanted to reconnect with old friends as well as help others make new friends during the pandemic. However, with everything being remote, it is difficult to find new friends virtually, so we decided to help strangers meet up in their favorite restaurants, cafe, or local businesses. We also wanted to help small local businesses when they are reopening by promoting new people to their business in order to boost their customer base.
What it does
Kuy! is a friend-finding mobile application that lets users find local businesses in their area and create an 'event' that lets other users join them for coffee or meals. Users could see open and waiting events in their area and they could RSVP to join the event to meet new friends in their favorite local business. Since people are meeting virtually, we figured a spontaneous meeting with strangers might be the best way to connect with other human beings.
How we built it
We built a frontend system and a backend system, using react-native and ruby-on-rails respectively. Starting with the backend system, we implemented a system to create, view, and join events in your local area. We also let users review and rate other users that they have met via an event. This is done to provide a better matching algorithm that lets high-rated individuals meet other high-rated individuals; this is done to penalize users who RSVP but didn't show up to the event. All of the backend features are accessible through a REST API that we implemented which is hosted on Heroku. The backend system uses Postgresql to store user, event, and review data.
Moving on to the frontend, we implemented a mobile application that works for both iOS and Android. We designed a user-friendly UI/UX on Figma for users to access all the endpoints that we created on the backend. Our features include logging in using Google, adding fun facts about yourself to be shown to other participants in your party, creating new events as a host, listing all pending events in the area (searched by city or by business done using Yelp API), join an existing event from the list as a participant, list the user's scheduled events, searching businesses by name or location (similar to how Yelp works), review and rate user you have met, and show the average rating of a user. All of the features are done via API calls either to our internal server or an external service such as Yelp and Google.
Challenges we ran into
This is our first time using React-Native which brought many issues when designing the frontend system. Creating page mapping and navigation was a huge problem for us but we managed to hack through those issues. We also encountered an issue with promises and asynchronous JS so some of our initial API calls don't work as intended. We also had issues with drawing a clear API contract so we had to make changes to our API parameter and JSON returns but those are minor issues that we solved by communicating as a team.
Accomplishments that we're proud of
We are proud to deliver a mobile application and a backend server that works with a persisting database within this short amount of time. We are also proud to have learned a new framework while simultaneously designing a clean and user-friendly UI/UX that could be used by real users. We are also proud for having to deliver a solution to solve the problem of making friends in these challenging times.
What we learned
First of all, we learned a new framework which is really helpful. We also learned to design an end-to-end system before actually coding; a skill that we never implement in previous hackathons. We learned new technologies such as Yelp and Google API and also Google map integration which is cool.
What's next for Kuy!
We are planning to expand the service to handle more requests specifically on the backend server. Currently, we are not implementing job queueing which might delay responses given significant data traffic. Given more time, we are planning on implementing that using ruby gems such as Sidekiq. We are also planning on adding more features such as suggestions and tailored events to user interests. Another thing we have in mind is also filtering vaccinated users and covid-friendly businesses. By implementing those features, we could help users to stay safe and make sure that people are making friends while following CDC guidelines.