https://github.com/ac-i2i-engineering/matching-engine
This is the matching engine we are building to match students with each other & ideas!
https://github.com/ac-i2i-engineering/matching-engine
artificial-intelligence django-application django-framework edtech-software machine-learning python3
Last synced: 3 months ago
JSON representation
This is the matching engine we are building to match students with each other & ideas!
- Host: GitHub
- URL: https://github.com/ac-i2i-engineering/matching-engine
- Owner: ac-i2i-engineering
- License: mit
- Created: 2024-08-26T19:44:59.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-02-16T18:57:33.000Z (5 months ago)
- Last Synced: 2025-04-13T12:11:44.618Z (3 months ago)
- Topics: artificial-intelligence, django-application, django-framework, edtech-software, machine-learning, python3
- Language: Python
- Homepage: https://matching-engine-p7v6.onrender.com
- Size: 134 KB
- Stars: 0
- Watchers: 0
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Matching Engine
The matching engine is built to match students with each other & ideas!
This matching engine streamlines the formation of three-person student teams, optimizing for collaboration and project success. It processes student data from a CSV file, incorporating information such as interests, project ideas, and goals. By leveraging cosine similarity calculations, the engine identifies students with closely related intellectual pursuits while ensuring a balanced distribution of technical, financial, and other essential skills critical for scaling up team productivity.
The program computes cosine similarity scores to analyze domains of Interest, majors, project ideas, and participation goals. This approach guarantees that each team is strategically composed of members with expertise from different domains at most.
# Installation
To clone the app, run in the terminal:
```bash
git clone https://github.com/ac-i2i-engineering/matching-engine.git
cd matching-engine
```Set up a virtual environment and activate it to "containerize" the dependencies:
```bash
python3 -m venv env
source env/bin/activate
```To run the app locally, run:
```bash
pip install -r requirements.txt
cd matching_backend
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
```# System Architecture
```mermaid
graph TB
A["Read CSV File"] --> B{Contains Expected Cols?}
B -- No --> C["Throw Error"]
B -- Yes --> D["Clean Data"]
D --> J["Standardize & Create User Profiles"]
J --> L["Form Teams"]
L --> M["Calculate Final Scores"]
L --> P["Form Initial Teams (Roles)"]
M --> N["Calculate Cosine Similarity"]
M --> O["Calculate Interests/Goals Scores"]
N --> Q["Match Best Engineer & Finance"]
O --> Q
P --> Q
Q --> R["Handle Leftovers & Final Teams"]
R --> U["Render Teams in HTML"]
```# Expected Input CSV data format
|Timestamp|Email Address|Full Name|Class Year|Major|Additional Major 1|Additional Major 2|Domains of Interest|Do you have an idea(big or small)?|What is your idea?|What stage are you at?|What role are you interested in taking on a team?|Has your team been registered?|If your team has not registered enter your email below and we will send you the form|
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| | | | | | | | | | | | | | |# CI/CD Testing & Deployment Pipeline
We use modularized `pytest-django`-based unit-tests and `GitHub Actions` to test our backend ("business") logic in an end-to-end CI/CD environment. We also run custom regression-tests and deployment/integration-tests through a combination of technologies like [Railway](https://railway.app/), [Vercel](https://vercel.com/) & `npm`. This is to have health-checks on the system & give our developers extensive experience in technologies that they most-likely will encounter in industry settings.

# Demo & screenshots: (Last updated 10th Sept, 2024)
- **Youtube Demo link:** https://youtu.be/oAPVXGaYS8Q

