Inspiration

It seems that we all have or know someone who has roommate horror stories, whether it's someone who leaves mountains of dirty dishes in the sink, steals your food, or simply doesn't pay their share of rent. Your roommate can make or break your college experience, but finding a good roommate as a college student can be a very stressful process. We made Roomies to help college students find people they'd be most compatible living with.

What it does

When you sign up, you input your contact information, a bio, and your roommate preferences. These preferences are based off the most common complaints people have with their roommates: sleep schedules not aligning, different standards of cleanliness, etc. Then a state-of-the-art machine learning algorithm matches you to roommates most similar to you!

After matching with your future roommate, you can enter into a smart contract that makes sure that both of you pay your fair share of rent. This reduces the risk of having roommates who forget their financial responsibilities. Plus, with the power of smart contracts, you can say goodbye to awkward money conversations and hello to a stress-free roommate experience!

How we built it

The frontend was created using React.js & TailwindCSS. The backend is an Express.js server that connects to MongoDB Atlas using the Mongoose ORM. We also used Material UI for some components.

Challenges we ran into

It was very annoying to get everyone connected to MongoDB since it is blocked on UNT WiFi. We spent at least an hour searching for a VPN that worked. We also found some of the crypto documentation regarding smart contracts difficult to understand. Near the end we had some troubles getting the MUI components working the way we wanted to and connecting the frontend and backend without CORS errors.

Accomplishments that we're proud of

We are proud of our machine learning algorithm that calculates compatibility scores and our fun UI that allows the user to swipe left and right.

What we learned

We learned about Web3, TailwindCSS, managing React state, and passing data through API calls.

What's next for Roomies

It would be cool to have a WebSockets-based live chat that is enabled after users match. We could also add support for location preferences, which we declared out of scope for now since we wanted to focus on the compatibility between personalities.

Built With

Share this project:

Updates