R2ALS = Registration Assistant Application using Local-Search
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



Registration Assistant Application using Local-Search technique, it can call "R2ALS" shortly.

Table of Contents



Each curriculum in the university has a unique set of requirements such as the co-requisite and prerequisite which each student in the curriculum must follow. Furthermore, each university must enforce some rules and regulations on the student registration process in order to ensure the student status and ability to graduate. For example, the student with below average grades will be allowed to register fewer credits than regular students in order to make sure that the students can cope with the subjects at hand. Moreover, each student may not be able to register according to the study plan because he/she has withdrawal some subjects. Thus, this situation will add more constraints in the registration process/planning. As a result, there are lots of rules, regulations and constraints that each student must consider in order to plan his/her subjects for each semester. As a student in the computer engineering undergraduate program at Prince of Songkla University, some of my friends are facing the difficulty in planning the subjects. Even though Prince of Songkla University already provided the study result simulation tool via sis.psu.ac.th for students to simulate their study results in order to see the status, the tool is not directly suggest the subjects to be taken in each semester. Furthermore, the Faculty of Engineering is also provided a web-based application for students to check their study progress according to their respective curriculum. However, the tool shows only the list of subjects in the curriculum and the grades of each subject in order for the students to see what subjects the student are still missing and what subjects the students are already passed. The task of planning the list of subjects to be taken in each semester is still relying on the student. To solve such problem, this project aims to develop a tool that can help the student by providing a list of subjects to be taken each semester according to the rules and regulations of the curriculum and the university. The student’s preference, the student current status and grades. The proposed tool will be based on the 2010 Computer Engineering Undergraduate curriculum of the Department of Computer Engineering at Prince of Songkla University. Local search technique will be employed as the main solution searching technique in this project. The solution that satisfies all constraints is returned for the user to make the final decision.


  • Prerequistie
sudo aptitude install git python3 python3-venv python3-pip mongodb
  • Create a vitual environment: pyvenv r2als-env

  • Activate the enviroment: source r2als-env/bin/activate

  • Setup project: python setup.py develop


  • Activate the enviroment: source r2als-env/bin/activate

  • Run the project: