This repository contains the sourse code for the REGIE Course Registration System, a mockup of an institution's course registration system.
This project is a part of MPCS 51410: Object Oriented Programming. A detailed description of the project and its features can be found here.
+--/src
| +--/python : Contains all the class files
| +--/sql : Contains all the database initialization files
| +--/documentation : Contains all the reference materials and diagrams
| +--README.md : Readme
REGIE is a console-based application written in python 3.10. To run the system, cd
to the /src/python
folder and run the following commands:
pip install -r requirements.txt
python main.py
- MySQL - For User and Course Management
- MongoDB - For Logging
- Abstract Factory Design Pattern
- Template Design Pattern
- Singleton Pattern
- State pattern
- Composite pattern
- Observer pattern
- S ingle Responsibility Principle
- O pen – Closed principle
- L iskov Substitution Principle
- I nterface Segregation Principle
- D ependency Inversion Principle
- If a student tries to register for a course section for Winter 2023, he/she will not be able to do it based on Winter 2023's course registration timings. However, adding a course sction to Spring 2023 will not give an error.
You can test it by registering course section900153272
and the student ID will be stored in thePendingCourseSection
table. - The course feature
Instructor Approval Required
, if added to a course section will invoke the Observer.