{"id":17598925,"url":"https://github.com/ac-i2i-engineering/matching-engine","last_synced_at":"2025-04-13T12:11:50.736Z","repository":{"id":254906031,"uuid":"847918422","full_name":"ac-i2i-engineering/matching-engine","owner":"ac-i2i-engineering","description":"This is the matching engine we are building to match students with each other \u0026 ideas!","archived":false,"fork":false,"pushed_at":"2025-02-16T18:57:33.000Z","size":137,"stargazers_count":0,"open_issues_count":1,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-13T12:11:44.618Z","etag":null,"topics":["artificial-intelligence","django-application","django-framework","edtech-software","machine-learning","python3"],"latest_commit_sha":null,"homepage":"https://matching-engine-p7v6.onrender.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ac-i2i-engineering.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-26T19:44:59.000Z","updated_at":"2025-02-15T21:12:08.000Z","dependencies_parsed_at":"2024-08-26T23:06:37.396Z","dependency_job_id":"94db00c3-ff58-4f38-b2ef-4ac7c258e9fb","html_url":"https://github.com/ac-i2i-engineering/matching-engine","commit_stats":null,"previous_names":["ac-i2i-engineering/matching-engine"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ac-i2i-engineering%2Fmatching-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ac-i2i-engineering%2Fmatching-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ac-i2i-engineering%2Fmatching-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ac-i2i-engineering%2Fmatching-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ac-i2i-engineering","download_url":"https://codeload.github.com/ac-i2i-engineering/matching-engine/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248710450,"owners_count":21149191,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","django-application","django-framework","edtech-software","machine-learning","python3"],"created_at":"2024-10-22T10:08:14.517Z","updated_at":"2025-04-13T12:11:50.730Z","avatar_url":"https://github.com/ac-i2i-engineering.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eMatching Engine\u003c/h1\u003e\n\nThe matching engine is built to match students with each other \u0026amp; ideas!\n\nThis 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.\n\nThe 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.\n\n# Installation\n\nTo clone the app, run in the terminal:\n\n```bash\ngit clone https://github.com/ac-i2i-engineering/matching-engine.git\ncd matching-engine\n```\n\nSet up a virtual environment and activate it to \"containerize\" the dependencies:\n\n```bash\npython3 -m venv env\nsource env/bin/activate\n```\n\nTo run the app locally, run:\n\n```bash\npip install -r requirements.txt\ncd matching_backend\npython manage.py makemigrations\npython manage.py migrate\npython manage.py runserver\n```\n\n# System Architecture\n\n```mermaid\ngraph TB\n    A[\"Read CSV File\"] --\u003e B{Contains Expected Cols?}\n    B -- No --\u003e C[\"Throw Error\"]\n    B -- Yes --\u003e D[\"Clean Data\"]\n    D --\u003e J[\"Standardize \u0026 Create User Profiles\"]\n    J --\u003e L[\"Form Teams\"]\n    L --\u003e M[\"Calculate Final Scores\"]\n    L --\u003e P[\"Form Initial Teams (Roles)\"]\n    M --\u003e N[\"Calculate Cosine Similarity\"]\n    M --\u003e O[\"Calculate Interests/Goals Scores\"]\n    N --\u003e Q[\"Match Best Engineer \u0026 Finance\"]\n    O --\u003e Q\n    P --\u003e Q\n    Q --\u003e R[\"Handle Leftovers \u0026 Final Teams\"]\n    R --\u003e U[\"Render Teams in HTML\"]\n```\n\n# Expected Input CSV data format\n|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|\n| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n|     |     |     |     |     |     |     |     |     |     |     |     |     |     |\n\n# CI/CD Testing \u0026 Deployment Pipeline\n\nWe 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/) \u0026 `npm`. This is to have health-checks on the system \u0026 give our developers extensive experience in technologies that they most-likely will encounter in industry settings.\n\n![image](https://github.com/user-attachments/assets/d51e5950-e859-4f95-bec9-98fb41eb450e)\n![image](https://github.com/user-attachments/assets/abe2b142-8e5a-4bde-80d3-e5f5c4c7bfae)\n\n# Demo \u0026 screenshots: (Last updated 10th Sept, 2024)\n\n- **Youtube Demo link:** https://youtu.be/oAPVXGaYS8Q\n\n![image](https://github.com/user-attachments/assets/5c34a4ef-7936-437b-8c41-4898a0dfefbb)\n![image](https://github.com/user-attachments/assets/50fcefee-292e-432b-85e0-248cb8e123d4)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fac-i2i-engineering%2Fmatching-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fac-i2i-engineering%2Fmatching-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fac-i2i-engineering%2Fmatching-engine/lists"}