Skip to content

Cadema19/University-course-scheduling

Repository files navigation

University-course-scheduling

University departments offer many courses each semester. Creating a schedule is a big challenge since a huge number of constraints have to be considered, e.g. availability of rooms, number of estimated participants, no overlap with other courses or courses belonging to the same field of study and many more. In addition some time slots are favored (e.g. Tue, Thu 10-12) than others (Mo 8-10, Fr 4-6). The aim of this project is to develop a web based system that is browser independent, having a user friendly and interactive graphical user interface to help schedule the courses. The system is expected to serve as the link between the lecturers and the study coordinator. The system should be able to provide lecturers options which fulfil as many requirements as possible while avoiding strong inconveniences. All constraints must be clearly identified and algorithms that enable the lecturer and the study coordinator to interact efficiently should be developed. These algorithms should therefore optimize the scheduling process. Also a database should be incorporated and the front ends should be coded. The database model of this project looks like the following. UCSS

Prerequisites

Python 2.7
python Flask  
Flask mail
Python constraint
regular expression
bcrypt

Installing

Download the zip file or clone the repository to your local folder.

Install python 2.7

Install python flask

pip install Flask

Install python constraint

pip install python-constraint

Install python mail

pip install python-mail

Install re

pip install re101

Install bcrypt

pip install bcrypt

Open command prompt and navigate to the UCSS folder and run the below command

python coco_app.py

Usage

Types of Users

Study Coordinator
Lecturer

To use the system for the first time you need to register.

Registration(New User) as coordinator

Register as Coordinator by providing the passphrase i.e ucss

Registration(New User)as lecturer

Register with your email address and a preferred password After registering,you can login with your email/password.

Add semester(Study coordinator)

To create a new semester, click on the "add semester button" Add core courses/Estimated number of students/Fields of study (Study coordinator)

After creating a semester, add a list of the courses taking place in the current semester, Estimated number of students for each core course added and the Fields of study Save the entries. Manually change/block time slots

Add Preferences(Lecturer)

Select add preferences to fill in information about the course such as course name, the number of hours allocated to the course per week and the preffered days of the week Submit/Reset your chosen preferences

After a schedule has been generated by the system for a particular course and viewed by the coordinator, the coordinator can change the time slot/preferences for a particular course manually and save the changes accordingly. Time slots can also be blocked by selecting the "Mark timeslots" function, providing a reason for the blocked time and saving the entry.

Change password

Forgot or want to change your password? Click on the forgot/change password label. A reset password link will be sent to your email. Please click on the link to update your password.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published