Inspiration

Our inspiration for Eventure stemmed from personal challenges we faced upon moving to new cities for summer internships. As we settled into these environments, the difficulty of finding friends with shared interests became a common struggle. Conversations revealed that this issue was not just ours but affected many, particularly young adults experiencing increased social isolation post-COVID. Despite technological advances enhancing communication, a gap remained: there were few tools designed to make the process of building meaningful connections both easy and enjoyable. Thus, we created Eventure—a platform aimed not only at meeting new people but at discovering companions to share passions and create lasting memories. Eventure transforms the daunting task of forming genuine friendships in unfamiliar places into an exciting adventure.

What it does

Our product ultimately brings people on a screen to meet up off the screen. When a new user joins, we try to learn more about them by asking them to describe themselves and identify their hobbies and interests. Once Eventure has this information, it uses AI to identify all relevant upcoming activities and events in the user's city. After picking a few activities, the user is added to a queue for each of their choices. Queues will close once filled up and then members can chat online, meet up in person, and go together as a group, unified by a similar passion. We encourage users to utilize the app to form lifelong friendships, and if all goes well, they may even move off of our platform as these bonds start to form.

How we built it

We started by using the nextJS framework to build a full-stack React-based web application. By using nextJS and its modern app routing we built out the various routes of our website. We started by handling authorization and authentication services from scratch by working with our Postgre database hosted on SupaBase. We also sketched out our relational database and utilized Prisma ORM to easily construct the schema and interact with Supabase.

Once we constructed the various tables of the database, we populated it with relevant data from Eventbrite. This data would be fed through a custom LLM to help us recommend events based on the user’s preferences. We fine-tuned our recommendation algorithm to provide the most relevant events, but also left room for finding new hobbies. We also created many Restful APIs in order to query our database and populate our front end.

For the front end, we utilized a robust component library called shadcn to standardize our front end and create a professional feel.

Challenges we ran into

We created a full-stack application using NextJS, NodeJS, PostgreSQL, Prisma, and Gemini, with a very large database based in Supabase. We had to perform plenty of backend work to make this project possible. We had more than a dozen API calls and some very complicated aggregate queries for our database.

It took hours of testing to fine-tune Gemini to evaluate user preferences and available events to produce helpful and accurate results. We started by testing various prompts and wordings in a Collab environment before we could move on to implement this logic in the backend of our application. Even then, we had to test various times with the event data in the database to ensure the model did not produce bias or see ghosts and produce poor results for the user. It’s the first time we fully integrated AI into a full-stack application as a practical tool and we learned a lot on the fly.

Another huge challenge was accurately getting data for our project. We attempted to use Yelp, Eventbrite, TripAdvisor, and Gemini to extract information about current events in DC. We ran into a lot of old outdated information and noisy events which we had to be careful to filter out when populating our database. We had to make sure the data we were collecting would be compatible with the chatbot capabilities of the Gemini API. The quality of the data really affected the ability of the AI to generate good responses for the user.

As for the client-side, many dynamic properties were made possible by using our various API calls, which were very time-intensive. For instance, a user who inputs their interests can revisit the “/interests” route and will see their prior selections still highlighted; however, achieving this took many hours of tinkering with the APIs we built, as we would run into unexpected issues. For example, users are also able to edit their interest selections and re-update the database with any new changes, which took longer than initially planned because of a shadcn button bug that inexplicably deleted all prior data acquired. Finally, the utilization of session cookies to display username and prevent guests from accessing certain pages took some research to execute. Despite these challenges, we were able to overcome all roadblocks.

Accomplishments that we're proud of

We were especially proud of our ability to build a full-stack application while utilizing an impressive suite of technologies to go along with a fleshed-out UI. Heading into the hackathon, we were ambitious in creating a WebApp on a scale we had never done before. We’re also proud that we were not only able to complete the base functionality of our application but were also able to implement many quality-of-life implementations to improve the user experience of our app. We spent a painstaking amount of time in order to handle various cases and errors that might occur. Thus, following the completion of Bitcamp, we are proud to say we accomplished our goals and then some.

What we learned

Coding aside, we really feel that this project enabled us to develop our teamwork and communication skills. As a team, we learned the importance of trusting each other to complete their own parts of the project, as well as coming to each other for help. We also reiterated the benefits of proper planning and following a good workflow. This year, we made a large effort in planning most aspects of the project before starting on Friday night. We found ourselves writing more code, making more commits and were able to create an outstanding UI. We grew a lot as team members and collaborators at BitCamp this year.

What's next for Eventure

We are planning on creating several cool features, such as a group chat section for potential group members, the ability to customize one’s personal profile, and a map to mark the location of the events available in a location. We also hope to expand and scale the application to cities outside Washington, DC. As with any public online platform, we will have to also implement personal privacy and information security features to ensure that our users feel safe and are empowered to interact with strangers and eventually flourish in their newfound friend circles.

As we continue to finalize all the features we need to be ready for the full release, we are also open to evolving the application to an even greater possible purpose and utility if the opportunity were to arrive. In the meantime, we hope to get criticism and feedback throughout our journey so we can improve the app to the best of our ability.

Built With

Share this project:

Updates