Let the app find roommates for you

roomMate was created as part of UofTHacks X 36-hour hackathon hosted in 2023. It was an open-ended hackathon with the general theme being 'exploration'. Check out the Devpost hackathon submission link and the source code for the project.

Since we were all second year students at the time and most of us had experience with finding roommates, we decided to make an app that would simplify the process and make the user experience for finding a roommate more enjoyable. In addition, we wanted to try front-end development and to incorporate machine learning or artificial intelligence if possible because it was one of our first hackathons and we wanted to learn as much as possible.

This project was completed in collaboration with Tyler Yan, Matt Xue, and one other hackathon team member.

Tech Stack:
Python Pandas Javascript ReactJS Flask NodeJS MongoDB

Starting from home

We started our project by getting familiar with the development platform ReactJS and setting up a template for our web app. This allowed us to get our feet wet and establish a foundation from which to build off of.

Personalized recommendations

While front end development continued, I worked on the personalization algorithm. Using Python and pandas to simplify data for user criteria, we made an algorithm that would determine the compatibility between any 2 users. Using these results, we would determine which users were recommended as roommates.

Real-time chatting

An integral part of the application was a built-in chat functionality. We established a user database with MongoDB to persist users' critera and their recommended users even after they logged off, and used PyMongo and Flask to connect the Python program to the database and frontend respectively.

Future Development Steps

Due to the fact that we had not used any of the technologies before in any capacity, it took some time to start developing the program in earnest, and this limited the functionality of the project. Regardless, further additions to the program could entail an enhanced user experience with a group chat functionality, and a refined personalization algorithm that doesn't require manual variables and instead implements machine learning.