Develop a system that will perform a fair division of elective courses for the students.
Today in higher education institutions "first come, first served” is the common method.
The problems: major burden on the server, make important decisions under time pressure,
registration for a group of courses in parallel, a burden on the coordinator, unfair division.
Thus, we implemented a new method of fair division among the elective courses.
There are two types of users with our software:
First, the student will log in by entering the ID and the password that has been given by the University.
Second, the student considers the course information (=such that capacity, schedule, syllabus, lecturer, etc.)
given by the student coordinator and ranks the elective courses as he/she sees fit, and this
rank will be editable until the deadline the students coordinator will provide.
Third, after the algorithm will enroll the student in courses, he/she will see the enrollment outcome.
First, the coordinator will define registration opening dates and deadlines.
Second, the student coordinator will provide the course
information and the student information as noted above.
Third, after the algorithm will enroll the student in courses,
the coordinator will approve the enrollment outcome.
We implement an algorithm named SP which mentioned in the following artical.
Article name: Optimization Mechanisms for the Course Allocation Problem,
Written by: Hoda Atef Yekta, Robert.
Day Published: 13 Jan 2020 Online by INFORMS Institute for Operations Research
and the Management Sciences: https://pubsonline.informs.org/doi/10.1287/ijoc.2018.0849
1) Repeats k times, every round:
i) Each student updates his preferences table according to the collision of other courses that
he already signed up to. Also, removing courses that have a full capacity.
ii) Each student offers a bid amount for his top priority course.
iii) Each course accepts up to his available seats of the highest offers,
and rejects any remaining offers, Then capacities are updated.
iv) If a student gets rejected by a certain course then he gets return unspent points to use on the next
most preferred course. Furthermore, the rejected students will repeat steps (i)–(iii)
until no more students are rejected.
Video link: https://www.youtube.com/watch?v=3kkxUZOsRMw
link to a website: https://fair-division.herokuapp.com/
login details for student coordinator:
Username: Ariel-cs
Password: Capcap11
login details for student:
Username: user_test_11
Password: Capcap77
Node JS version 10.9
Python3 (preferred IDE for running the code is Pycharm)
If you installing the Backend on linux, replace python with python3
1) Backend:
a) Go to the repository: https://github.com/Course-Allocation-Problem/cap-backend.
b) Clone the repository.
c) Write the command:cd cap-backend
.
d) Create a Python virtual environment for your Django project:
Write in the terminal: python -m venv venv
e) Activate the virtual environment.
For Linux: source venv/bin/activate
For Windows: venv\Scripts\activate
f) Install Python dependencies for this project: pip install -r requirements.txt
.
g) Create super user using: python manage.py createsuperuser
.
h) Start the Django development server by command: python manage.py runserver
.
i) Open http://127.0.0.1:8000/admin/ in a web browser to view your application.
j) Insert your super user informantio has been created on VII to insrt to Dejango.
k) Now you can examine the database.
2) Frontend:
a) Go to the repository: https://github.com/Course-Allocation-Problem/cap-frontend.
b) Clone the repository.
c) Write the command: cd cap-frontend
.
d) In the terminal write the command: npm i
.
e) After the previous command writes the next command: npm start
.
f) Open http://localhost:3000/ in a web browser to view your application.
1) Login as student coordinator with the following login details:
Username: Ariel-cs
Password: Capcap11
2) Define begin date and deadline date for ranking time.
3) Logout.
4) Login as student with the following login details:
Username: user_test_11
Password: Itaysim7
5) Considers the course information (=such that capacity, schedule, syllabus, lecturer, etc).
6) Ranks the elective courses as you sees the best fit.
7) Logout, and repeat on stage one.
8) When the ranking time over, run the algorithm in the approval page.
9) Logout, and repeat on stage four.
10) See the results of the algorithm from stage 8.