Skip to content

mentor-matching-online/mentor-match

 
 

Repository files navigation

Mentor Match

This is a service to help mentoring programme administrators match mentors and mentees. Get in touch to find out more, or raise an issue.

It uses this package to calculate matches. It relies on the Munkres, or Hungarian, algorithm. The Munkres algorithm works on a grid of scores and finds the solution that makes the most people the least unhappy. That is to say, everyone will be equally unhappy with their score: any switch will make someone worse off.

Roadmap

This service is free and open source. It welcomes pull requests, feature suggestions, improvements to grammar, spelling, or any other way folks want to help.

Our roadmap is hosted here on GitHub. Make feature suggestions by raising an issue on this repo.

Architecture

This service has three main parts: a web server, running Flask; a Celery worker; and a Redis instance. The long-running task of matching mentors and mentees is passed off to the Celery worker via Redis, which acts as the broker. Results are also stored in Redis and retrieved by the Flask app as needed.

The Flask app is very basic: mostly HTML and basic routes, with a smidgeon of javascript to keep the user interested in what's happening while they wait for their results. That needs some work so pull requests are welcome.

Setup

To use this software your local machine, you will need:

  • admin rights, or at least enough rights to install stuff
  • Python 3.7+
  • docker-compose
  • git
  • a file of mentors and mentees. These files should be called "mentees.csv" and "mentors.csv", and align to the template in the data folder.

By default, the service can be accessed on the following ports:

service port
flask 5001
redis 6379

Installing dependencies

You must install docker-compose to use this software. Follow the documentation from Docker to install the required software.

After docker-compose is installed, clone the mentor match repository. This repository is hosted on Github, but a Github account is not required to clone the repository.

A Github account is required if you wish to contribute to the documentation or code.

Use the command line to get to where you've cloned this repository.

From the repository folder, in the command line run:

docker-compose up

You should now be able to access the service on the localhost: followed by the ports above.

To stop the service at any time, just press the control (Ctrl) key and C key together.

Once you have the app running in your browser, you will be redirected to /login. The credentials for logging in locally are:

Username: CSLGBT
Password: HorseBatteryStapleCorrect

You can use the randomised data in the sample_data folder to try out the system and see for yourself how quickly it matches 500 mentors and mentees. The record on my hardware is 97 seconds. I've not yet tried it by hand...

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Languages

  • Python 60.2%
  • HTML 22.0%
  • HCL 15.0%
  • JavaScript 1.6%
  • Dockerfile 1.2%