Inspiration: When high school students transition to college, their first concern is their roommate. A good roommate can help navigate them through their first semester and ride into this journey together. Getting a random roommate comes with many risks, which always has a possibility of turning up bad.
What it does: It asks the user for several questions to understand the preferences. Once it knows the preferred living areas, the user's major and other questions like whether a person is more academically focused, it provides you with several recommendations of other potential roommates, with the residential area and the exact hall. The code has been optimized as such to take special housing requests that are given by UMass such as break housing, alcohol free housing according to students needs . Due to factors such as privacy with students signing FERPA waivers, we could not put in if how much space is available in each dorm and each residential area. It will also give a bit of feedback on the two users and also on why are they compatible and what are some issues between them that can be solved essentially explaining its scoring process.
How we built it: We built the frontend using css, html and next.js, and used python for the backend development. Using the Gemini API within our backend which is the gemini-2.5-pro model we are feeding the API with lots of data in order for it to be returning a score between the candidate who gives the quiz in real time and 15- 20 test cases which have been hard coded into the code for the sake of testing. The API has been given multiple conditions to ensure that it returns a more accurate output such as ensuring that the compatibility score is at 75% or greater , all the priorities are being met and along with that the AI will be giving some feedback on the basis of the differences and similarities between the candidates to explain the compatibility rating out of 100. There was also some fall-back triggers put in place where we ensured that location was not given much of a priority and it would instead be the compatibility scoring between the roomates based on the pre-set parameters we asked on the questionnaire. We used next.js which has React elements which is great for managing the user interface and then taking the input by the user and then making requests to the backend API using fetch requests and then receives the output in quick time to display it to the user.
Challenges we ran into: We had a hard time working with the flow between the frontend and the backend. A lot of runtime and logic errors, and with the help of different perspectives we were able to fix the issues. Specifically, for the run-time error it was mostly happening as it was taking about 3 minutes at times for our output to be displayed and so to ensure that we were not going to be waiting for too long for an output due to issues like the API not responding, we put a small number of retries which was at 5 so that we can get the errors quickly and easily know what the error is to solve it. In the end to solve the error, we had the code optimized to check the conditions quicker in about 2-3 seconds , put in less output requirements to ensure out code does not take too long as well and also go to the separate conditions quicker if our initial conditions for compatibility failed.
Accomplishments that we're proud of: It was our first hackathon, so we are quite proud of what we built. It took a lot of collective efforts in the team, from generating this idea to making the final presentation. Not all of us knew each other for the first time and not everyone within the team also had technical expertise to be coding so it was important to ensure that tasks were delegated so everyone could be working and ensuring that we can get the web application to work quicker.
What we learned:
We learnt how to build a full stack developed app. We also got to learn better on prompting AI models to ensure that there was much more precision when doing our coding and test cases so that there were less logical errors when running tests. We also learned better on how to train data-sets as regards to what data is to be given and from which sources to ensure that our output is being returned on the basis of factual data. We also learned some soft-skills such as how to work better with each other and ensure that responsibilities were delegated so that one person is not constantly burnt out by doing a lot of work for hours.
What's next for UMatch Dorms: Add more functionality and more interactive UI. Add more features such as RAP's as well. Tweak the scoring method to make it much more accurate. Tweak the location and mapping method to make it far more accurate and to reflect more locations. Add a small feedback section so that we can understand what to improve from the users. Tweaking the questionnaire to make it a bit smaller and more precise too so that it is not too exhausting for the user to fill.
Log in or sign up for Devpost to join the conversation.