DEV Community


Posted on

I need a design for a Credit-based Course Registration System

I need a design architecture for a website for registering for credit-based courses for students.
Each semester, students can register for a maximum of 30 credits (approximately 9-10 courses). Courses can be mandatory or elective, and may have one or more prerequisite courses (if a prerequisite course has not been completed, the student cannot register for the subsequent course).

On the registration opening time, students will log into the system and see a list of courses they can register for. They will select the courses and proceed with registration. If classes are full, students will be placed on a waiting list for the university to consider opening additional classes. If no extra classes are opened, the student's registration for that course will be canceled.

After successful registration, an email confirmation will be sent to the student, including details of the registration and tuition fee payment decision.

Additionally, the system will allow students to view their academic information (such as earned credits, courses taken, course grades, cumulative GPA), weekly schedules, and other utilities.

Once the required credits for each major are fulfilled, students have the right to apply for graduation. If all criteria are met, students will be awarded their degree and listed among the university's alumni. Degree information will be publicly available on the university's website. Alumni information will be retained for tracking career progression (with the consent of the student), conducting surveys, and other activities.

I need a schematic design of the server-client connection method and the reasons for choosing that particular style/pattern, as well as how to store the database.

For example, a system may have multiple servers, with each server handling 4-12 APIs for specific tasks to reduce congestion if there are many users accessing the system. Alternatively, some servers may only allow reading data from views, while updating data requires access from another server with direct access to the tables.

A major issue with the credit registration system is that on the registration opening day, there is a high influx of users, leading to system errors or slowdowns, while on regular days, there are fewer users accessing the system. How can I address this issue?

Where I can seek advice or find schematic designs, class diagrams, document for similar systems?

Top comments (0)