| Version 3 (modified by , 4 days ago) ( diff ) |
|---|
About: Courses Management System
Team members:
- Viktor Petrovski 231150
- Aleksandar Nikoloski 231082
- Martin Mitevski 231112
Short description:
The Courses Management System (CMS) is a relational database platform designed to support the full academic lifecycle of a higher-education institution. The database contains data about members (students and teachers), academic programs and program enrollment history, courses and their editions, semester enrollments, exercises and exam assessments, grades, lecture materials, announcements, direct messaging between members, and surveys. Students may switch academic programs, with a full historical record of enrollments and disenrollments maintained. All student activity — submissions, exam attempts, grades, and survey responses — is restricted to courses the student is actually enrolled in.
Detailed description:
The CMS manages the complete academic workflow of a higher-education institution within a single PostgreSQL database. At its core, the system distinguishes between abstract courses (a course as defined in a catalog) and course editions (a concrete offering of that course in a specific academic year and semester). This separation allows the institution to maintain a stable course catalog while independently scheduling and managing each semester's offerings. Members of the system are either students or teachers. A student enrolls in an academic program, and that program defines a curriculum — a set of courses recommended across semesters, some mandatory and some elective. Students may switch academic programs over time; each enrollment and disenrollment is recorded with its respective date, and a student may even re-enroll in a previously attended program. When switching programs, courses that have been declared equivalent across programs are recognised, so that a student does not lose credit for passed work covered by an equivalent course in the new program. Courses may have prerequisites, forming a directed dependency graph across the catalog. Teachers are assigned to course editions, and students who qualify may serve as teaching assistants to teachers. Each semester, a student's enrollment is recorded as a Semester Enrollment, which lists the specific course editions the student is taking that term through individual Course Enrollment records. The Course Enrollment is the central linking entity of the system: a student can only submit exercises, attempt exams, receive a final grade, or respond to surveys for a course edition they are concretely enrolled in. Final grades are recorded per course enrollment. Assessment is handled through two mechanisms: exercises (assignments with deadlines, submissions, and grading) and exams (scheduled events composed of individual problems, supporting multiple attempts per student with per-problem answers and points). Course editions also host lecture materials, announcements (which support threaded replies), and surveys (with defined options and student responses). Members can exchange direct private messages with one another.
Who is the database and project intended for?
The database and application are intended to be owned and operated by a higher-education institution - such as a faculty or university - and provided as an internal service to its students, teachers, and administrative staff. The institution is responsible for maintaining the course catalog, academic programs, and member accounts.
What problems does it solve?
Higher-education institutions typically rely on a fragmented set of tools for course scheduling, enrollment tracking, assessment, communication, and grading. The CMS consolidates all of these into one system, reducing administrative overhead and eliminating data inconsistencies that arise from maintaining multiple disconnected databases. It additionally handles the complexity of students switching academic programs, including the recognition of equivalent courses across programs — a scenario that manual processes typically handle inconsistently.
What types of users will have access?
Three user roles interact with the system: students (who enroll in programs and courses, submit exercises, attempt exams, respond to surveys, and communicate with teachers), teachers (who manage course content, grade submissions, post announcements, and conduct exams), and administrators (who manage the member registry, academic programs, course catalog, and equivalence declarations). Teaching assistants are students who additionally take on a supporting teaching role for a specific teacher.
How is it different from existing solutions?
General-purpose learning management systems such as Moodle or Canvas cover some of the same ground, but they are not designed around a structured relational academic data model. They typically lack first-class support for academic program curricula with prerequisite chains, course equivalence across programs, per-semester enrollment records as auditable entities, or fine-grained exam modeling with per-problem attempts and answers. The CMS is designed from the ground up as a data-model-first system, built around a comprehensive relational schema that captures the full academic lifecycle.
