This is a course registration system. The system supports the registration of students/lecturers/practitioners in the system. Adding courses to the system by lecturers and practitioners, registration for the course by students. Receiving updates on course changes for each user. The code is implemented according to object-oriented principles and various design patterns.