this has been moved to (https://github.com/ESN-Buddy-Program/buddy-matcher)
This project is a student pair-matching system aimed at matching local students with incoming international students based on their common interests, courses, and faculties. This can be used by higher institutions for an effective buddy system where international students are paired with a local student of the same interest.
the best way to use this project is though a docker container as it will ensure that all dependencies are installed and the script is run in a controlled environment. To use the docker container, follow the steps below:
- Create a directory on your local machine where you want to store the project files. You can do this by running the command below:
mkdir esn-buddy-matcher
cd esn-buddy-matcher- Create a docker-compose.yml file in the directory you created above. You can do this by running the command below:
touch docker-compose.yml- Open the docker-compose.yml file in a text editor and add the following content:
services:
buddy-matcher:
image: daiigr/buddy-matcher:latest
container_name: buddy-matcher
volumes:
- ./config:/config
- ./input:/input
- ./output:/output- run the following command to start the docker container:
docker compose up- the first time you run the container, the necessary directories will be created in the
config,input, andoutputdirectories. You can then add the necessary files to theinputandconfigdirectories once the files are added, you can start the docker container again by running the command below:
docker compose up- Clone the project to your local system. You can clone using the command below:
git clone <Repository-URL>
cd path-to-folder
- Run the bash shell script
run.shon your terminal. This script will install necessary dependencies and execute the main Python script. Use the command:
./run.sh-
Ensure you have
python3installed on your system. If not, you can download and install python from here. -
Clone the project to your local system. You can clone using the command below:
git clone <Repository-URL>
cd path-to-folder
- Set up the virtual environment. If not typically installed, you can install by running the command:
python3 -m venv .venv- Enter the following command to activate the environment:
- On MacOS/Linux:
source .venv/bin/activate - Install the required dependencies:
pip install -r requirements.txt
- Once the above steps are done, run the bash shell script
run.shon your terminal. This script will install necessary dependencies and execute the main Python script. Use the command:
./run.sh- if you prefer to run the script manually, you can run the following command:
python3 src/main.py-
The script will process the data from incoming and local students from the
inputfolder. It will use hobbies from theconfig/hobbies.csvand faculty distances fromconfig/faculty_distances.xlsx. -
All results will be output to the
outputfolder. If outliers are detected, two separate reports will be generated: a buddy pair report ignoring outliers, and one including outliers. If there are no outliers, only one report is generated.
-
The
input/local_students.csvandinput/incoming_students.csvfiles contain the information about the local and incoming students, respectively. The columns in these files are self-explanatory and contain relevant information needed for the match-making process. -
The hobbies are read from
config/hobbies.csvand it's a simple list of hobbies. -
The
config/faculty_distances.xlsxfile contains distances between faculties at the school setting. This information helps delivering a more refined match-making results. -
The
config/local_students_column_renames.csvandconfig/incoming_students_column_renames.csvhelp map the input column names to a standard form, facilitating data processing. practically speaking, they map one set of header names to another so that they match for processing
-
Output files are saved in the
outputdirectory. -
If outliers are detected, two separate reports will be generated. One is a 'matching_report_no_outliers.csv', which contains a buddy pair report ignoring outliers, the other 'matching_report_with_outliers.csv' will include outliers. Each row in this file represents a buddy pair, with relevant matching information included.
-
If there are no outliers, only a single report 'matching_report.csv' is generated.
Please note, each time the script is run, a new output file is created with the timestamp in the filename to avoid overwriting previous results. Please make sure to review the latest file for the most recent results.
That's it! You've now successfully setup and run the ESN Buddy Matcher.