A full-stack roommate app with personalized suggestions
and an integrated real-time chat
functionality
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:
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.