Inspiration

The inspiration behind ModMatch stems from the challenges students at NUS face in coordinating class schedules with their friends. In the pursuit of shared academic experiences, students often encounter difficulties trying to align their timetables with multiple friends. Unfortunately, in some instances, students may find themselves abandoned by friends in favor of other social circles, leading to strained friendships.

ModMatch aims to address these challenges by not only optimizing timetables to maximize the number of friends taking classes together but also by fostering a deeper sense of connection and camaraderie among students. The platform seeks to go beyond mere schedule coordination, aiming to enrich the overall university experience and strengthen the bonds of friendship.

What it does

ModMatch serves as a comprehensive module optimization tool for NUS students. The platform facilitates the creation of timetables that align with the preferences and schedules of friends. By utilizing a sophisticated algorithm, ModMatch considers individual preferences, locked classes, and group dynamics to generate timetables that not only fulfill academic requirements but also promote a sense of togetherness

How we built it

Matching Algorithm The core of our application revolves around our matching algorithm. With many possible combinations, we have chosen to do depth-first search and backtracking on possible timetable combinations, leveraging constraint programming to optimise the search. In summary, our 5 step process involves:

  1. Identifying which classes can be shifted.
  2. Gathering each individual's availability based on their fixed classes.
  3. Filter 1: Eliminate classes that do not even match individual timetables.
  4. Filter 2: Eliminate classes that may make groupings impossible.
  5. Conduct depth-first-search on the remaining search pool.

Web Application We have chosen to build a web application for our project. Initial Setup: Project setup using React, integrating TypeScript for type safety. UI Design: Leveraging Material-UI components and Emotion for custom styling to create an intuitive user interface. Feature Development: Implementing core features using React components, managing state and props, and integrating Planby for scheduling functionalities. Routing: Implementing navigation and routing within the app using React Router. Code Quality and Maintenance: Enforcing coding standards and best practices using ESLint and consistent code formatting.

Challenges we ran into

While developing ModMatch, we encountered several challenges, particularly towards the end of the hackathon. Technical bugs and unexpected issues tested our problem-solving skills and pushed us to find creative solutions within the given time constraints.

Accomplishments that we're proud of

Despite the challenges faced, our team successfully developed a functional prototype of ModMatch. We take pride in creating a tool that goes beyond the conventional timetable optimization platforms, focusing on enhancing the social aspects of university life. The accomplishments achieved during the hackathon serve as a testament to our dedication and teamwork.

What we learned

The development of ModMatch provided valuable insights into the complexities of schedule optimization, user experience design, and algorithmic decision-making. Dealing with challenges and overcoming obstacles taught us the importance of resilience, adaptability, and collaboration in a fast-paced development environment.

What's next for ModMatch

While we celebrate the success of ModMatch during the hackathon, we recognize that there is much more to be done. In the immediate future, our focus will be on refining the platform based on user feedback and addressing any remaining bugs or issues. We understand the importance of continuous improvement, and we plan to leverage post-hackathon time to enhance ModMatch's features and usability.

Built With

Share this project:

Updates