Inspiration
Finding the perfect roommate can be a daunting task, especially when personal habits, preferences, and lifestyles need to align. We were inspired by the challenges students face when searching for compatible roommates, particularly in university environments where living situations greatly impact one's academic and social life. Our goal was to create a platform that simplifies this process by intelligently matching individuals based on comprehensive personal and lifestyle data.
What it does
MapMatch is a roommate matching application designed to connect individuals seeking compatible living partners. Users create detailed profiles by providing information across several categories: Personal Information, Education, Interests, Contact Details, and Roommate Preferences. The application analyzes this data to calculate similarity scores between users. These scores are visualized through an interactive graph, allowing users to explore and connect with potential roommates who best match their preferences.
How we built it
We built MapMatch using a React frontend to provide a dynamic and user-friendly interface. The application features a multi-tabbed form where users input their information, with state management handled via React hooks. Upon submission, the data is converted to JSON and sent to a Node.js and Express server using Axios. The server then stores the data in an AWS DynamoDB database. For the matching algorithm, we implemented a similarity calculation that compares user profiles based on selected preferences. The results are displayed using a custom Graph component, which visualizes the connections and similarity scores between users.
Challenges we ran into
One of the main challenges was designing a matching algorithm that accurately reflects user compatibility based on diverse and subjective data. Ensuring seamless data flow between the frontend and backend while maintaining data integrity was also complex. We faced difficulties integrating AWS DynamoDB due to its specific data models and access patterns. Additionally, creating an intuitive user interface that accommodates extensive user input without feeling overwhelming required careful planning and iterative design.
Accomplishments that we're proud of
We're proud to have developed a full-stack application that addresses a real-world problem. Successfully integrating React with AWS DynamoDB through a Node.js server is a significant technical achievement. Our matching algorithm provides meaningful results, enhancing the user experience by connecting them with highly compatible roommates. The interactive graph adds a visual appeal and intuitive understanding of potential matches. We also take pride in creating a responsive design that ensures usability across different devices.
What we learned
Throughout the development of MapMatch, we deepened our understanding of React hooks and state management in complex forms. We learned how to set up and interact with AWS DynamoDB, including best practices for data security and access. Implementing the matching algorithm enhanced our skills in data analysis and algorithm design. We also gained valuable experience in UI/UX design, focusing on creating an engaging and user-friendly interface.
What's next for MapMatch
We want to create a grouping feature for MapMatch, where you can look at other pairs of roommates, and find similarities through our interactive and intuitive graph UI.
Built With
- amazon-web-services
- bedrock
- comprehend
- dynamo
- javascript
- react
- vector-db
Log in or sign up for Devpost to join the conversation.