As we were brainstorming ideas that we felt we could grow and expand upon we came to a common consensus. Finding a roommate for residence. We all found the previous program was very unappealing and difficult, during our first year we heard so many roommate horror stories. We felt providing a more modern and accustomed model, that hasn’t been explored before, towards finding a roommate would extremely benefit the process and effectiveness of securing a future roommate and more importantly a friend for the next generations.

What it does

The program is a fully functional full stack web app that allows users to log in or create a profile, and find other students for roommates. The program includes a chat functionality which creates a chat room between two people (only once they've both matched with one another). The product also automatically recommends users as roommates based on an AI model which reads data from a database filled with metrics that the user sets when creating their profile, such as their program of study, sleep schedule, etc.

How we built it

We first tackled the front end aspect by creating a rough template of what we imagined our final product would look like with React.js. After we set up a database using MonogoDB to act as our backend to the project and to store our users profiles, data, and messages. Once our database was secured we connected the backend to the frontend through Python using libraries such as Flask, PyMongo, and Panadas. Our python code would read through the database and use an AI model to compute a score for the compatibility between two people. Finally, we cleaned up our frontend and formatted our application to look nice and pretty.

Challenges we ran into

As we had no experience with full-stack development, figuring out how to develop the backend and connect it with the front end was a very difficult challenge. Thankfully, using our resources and some intuition, we were able to overcome this. With such a drastic knowledge gap going into the project, another challenge was keeping our team on time and on track. We needed to make sure we weren't spending too much time learning something that wouldn't help our project or too much time trying to incorporate a function that wouldn't have a large impact on the abilities of the final product.

Accomplishments that we're proud of

We are proud that we were able to create a fully functioning full-stack application with practically no knowledge in that field. We're especially proud of our accomplishment of learning so many new things in such a short amount of time. The feeling of satisfaction and pride we felt after coming up with a unique idea, overcoming many challenges, and finally reaching our desired goal is immeasurable.

What we learned

None of us knew how to use the technologies we used during the project. There was definitely a learning curve with incorporating multiple technologies that we had not used before into a cohesive app, but we learned how to properly divide and plan out our workload between the four of us. We gained experience in assessing our own strengths and weaknesses as well as our teammates and gained strong knowledge in multiple languages, full-stack concepts, AI, libraries, and databases.

What's next for RoomMate

In the near future, we plan to fully host our website on a public domain name, rather than having it work from the console. We also hope to expand our questionnaire and survey in order to further tailor our search results depending on users' preferences and improve users' experience with the site.

Share this project: