Project Information
To reduce the chance of clashing between different students, each student is required to provide a finite number of projects with priority that they are interested in. This is known as the preference list. Likewise, each lecturer is required to provide a preference list on students for each project.
The problem in here is to find the stable matching between students and projects. It is similar to that of the Student-Project Allocation Problem, which can be further generalised by the Two-sided Matching problem.
Background
Stable vs Unstable
An unstable matching $M'$ happens when
\[
M'={(s_1,p_1),(s_2,p_2)}
\]
(see Figure 1(a)). When such a pair exists, a stable matching
\[
M={(s_1,p_2),(s_2,p_1)}
\]
(see Figure 1(b)) can always obtain by swapping their projects.
Objectives
This project aims to develop and implement a web-based system called the Project Allocation System (PAS), for matching between students and projects. Students and lecturers will submit their preference list on the system. The PAS will then run an algorithm to find the stable matching between students and projects.
The PAS contains following major functions:
- Student registration. Each student can register as a user in the system.
- Ranking projects/students. Users are allowed to rank a finite number of projects or students.
- Generate the stable matching. After the system collected preference lists fro all users, the stable matching is generated.
- Administrator panel. For administrator to manage the system. One major function is to approve generated matching.