Inspiration

Every year, thousands of students apply for the Student Exchange Programme (SEP), but they all hit the same wall: Module Mapping. Spending weeks digging through outdated PDFs and university websites to find courses that match their home curriculum is a rite of passage no one actually enjoys. We realised that a simple "Keyword Search" isn't enough because an "Intro to Programming" at one school might be "Software Construction" at another. We wanted to build a tool that understands the context of education, not just the labels.

What it does

Features

  • Semantic Search: Uses Natural Language Processing (NLP) to compare module descriptions, identifying matches that keywords alone might miss.
  • Smart Pairing: Uses NLP to compare similar module names across the entire database.
  • Persistence: Your progress is saved automatically. Every pairing added or removed is instantly mirrored to a local /data storage folder.
  • Import: Easily expand your database. Import new module lists (e.g., from a specific partner university) and they will be appended to your existing records without overwriting them.
  • Interactive Planning: Select modules from side-by-side tables, generate similarity scores, and review matches before adding them to your final plan.

How we built it

  • Frontend: Built with Streamlit for a responsive, data-centric user interface.
  • Mapping Engine: Powered by Sentence-Transformers (specifically the all-MiniLM-L6-v2 model).
  • Backend logic: Developed a custom Storage and File Management system in Python that handles complex one-to-many relationships between modules.
  • Data Handling: Implemented Pandas for high-performance data manipulation and local CSV persistence.

Challenges we ran into

Path & Permission Errors: Early on, we struggled with OS-level permission errors when trying to save files to specific user directories. We solved this by pivoting to browser-native download streams.

Duplicate Logic: Managing data integrity during bulk imports (like adding a new university's entire catalog) required robust duplicate-checking logic to prevent cluttering the database.

Accomplishments that we're proud of

User-Centric Design: Transforming a complex data-matching problem into a simple three-step interactive process.

What's next for ModMatch

Global Database: Scraping and integrating official course catalogs from even more universities.

Built With

Share this project:

Updates