Two minutes of questions. A year–or more–of the perfect roommates. Using a unique algorithm, RoomE matches you with the most compatible roommate(s) based on your lifestyle and preferences.
Inspiration
At best, McMatch and other roommate matching applications are lackluster services. McMatch, for instance, fails to consider preferences inputted by the user to match them with a compatible roommate, presenting 0% compatibility every time. Our team took a similar approach to modern dating apps via accurately matching individuals.
What it does
Once a year, the web application opens up to prompt university students to fill out a form that asks a select list of questions concerning their lifestyle, habits, and preferences. Matches are made during this season and based on their choices, the user is provided with a short list of their most compatible matches, simplifying their decision-making process while maintaining flexibility of choice. The weeks and months of tediously sifting through long lists of options are condensed to one quick service.
How we built it
Initial wireframes of the web app design were visualized using Figma. The front-end was built with React; the back-end was built with Express and Node. MongoDB was used for our database. Python and Pymongo were used to build the matchmaking algorithm.
Challenges we ran into
Integrating a Python algorithm with a MERN stack app using Pymongo was challenging given the different syntaxes and conventions of the two technologies. Sending data from the front-end (React) to the back-end (Node) and then to the Python algorithm required careful handling to ensure data consistency and integrity.
Using two different technologies (MERN and Python) may lead to performance issues. Optimizing the space and runtime efficiency of the gale-shapely algorithm was a challenge, especially with a larger sample size, as the program currently runs in O^2 efficiency and O^2 space complexity.
Accomplishments that we're proud of
Programming a full-stack application employing the industry-standard MERN stack and implementing mathematical concepts such as graph theory to generate compatible matches for the users was a major source of pride for the team. We’re also proud to produce a minimal user interface with a cohesive visual design.
What we learned
With a smooth workflow, we learned efficient project management and improved our familiarity with the MERN stack. On the front-end, we learned to implement global state management across the questionnaire and experimented with higher-order components. Through using tools such as Jira and Github, we collaborated and stayed organized with multiple moving parts. This experience strengthened our abilities to work together as a cohesive unit and navigate complex projects in the future.
What's next for RoomE
Next steps for the near future include:
- automating the process of obtaining user input and running the algorithm
- reducing space complexity on the algorithm with matrices
- conducting user testing to optimize usability for wide demographics, including additional features such as more flexible contact methods
- looking further into psychology-based research to better inform our matching algorithm
We are aware we’ve created a minimal viable product and we wish to keep on improving the quality of life of this app over the next year. Our hope is to release this next year for the Students of McMaster to try out, and eventually become the standard for finding roommates across universities in Canada. If you are interested in working on this project with us, feel free to reach out!
Log in or sign up for Devpost to join the conversation.