main class· schoolcourseenrolmentsystem
SchoolCourseEnrolmentSystem.java
The main class wires everything together. It loads the data, registers a default administrator, then loops asking for a role until someone types exit, at which point every list is saved.
public class SchoolCourseEnrolmentSystem
- Entry
- public static void main(String[] args)
- Default admin
- Created as a static field and always registered
- Roles typed
- student, instructor, admin, exit (any case)
- Safety net
- One try/catch around the whole loop
Responsibilities#
- Initialise the dataManager singleton and load all files
- Register a default administrator so the system is never locked out
- Run the role-selection loop and each role's menu loop
- Save after profile and course edits, and save everything on exit
Fields & enums#
| Type | Name | Modifiers | Line | |
|---|---|---|---|---|
Administrator | DefaultAdmin | private static | L6 |
1 method
Entry point#
The whole program lives in this method; see the Run page for the full flow.
Load data, register the default admin, then loop over role selection until exit.
- student / instructor / admin → Helpers.login<T> → role menu loop
- exit → saveAllData() and “Goodbye.”
- Anything else → “Invalid role. Try again.”
Known issues#
Source
SchoolCourseEnrolmentSystem.java195 lines · from the project report
1package schoolcourseenrolmentsystem;
3import java.util.*;
5public class SchoolCourseEnrolmentSystem {
6 private static Administrator DefaultAdmin = new Administrator("Shoug", "1122334455", "Default12345",
7 "S.Alomran@gmail.com",
8 "0531110904", "Qirawan district");
10 public static void main(String[] args) {
11 dataManager dataManagerInstance = dataManager.getInstance();
12 Scanner input = Helpers.input;
14 dataManagerInstance.loadAllData();
16 try {
17 boolean exit = false;
18 dataManagerInstance.addAdministrator(DefaultAdmin);
19 System.out.println("\nWelcome to School Course Enrolment System!");
20 while (!exit) {
21 System.out.println(
22 "Enter your role from the current options: (Student/Instructor/Admin) or exit to finish.");
23 String role = input.next();
24 input.nextLine();
26 switch (role.toLowerCase()) {
27 case "student":
28 Student tempStudent = new Student();
29 Student loggedInStudent = Helpers.login(dataManagerInstance.getAllStudents(), tempStudent);
31 if (loggedInStudent == null) {
32 continue;
33 }
34 boolean studentExit = false;
36 while (!studentExit) {
37 Helpers.showStudentMenu();
38 int studentChoice = Helpers.getSafeIntInput("Option: ");
40 switch (studentChoice) {
41 case 1:
42 loggedInStudent.viewAvailableCourses(dataManagerInstance.getAllCourses());
43 break;
44 case 2:
45 Helpers.enroll_In_Course_Student(dataManagerInstance.getAllCourses(),
46 loggedInStudent);
47 break;
48 case 3:
49 loggedInStudent.viewEnrolledCourses();
50 break;
51 case 4:
52 loggedInStudent.viewCreditLimit(dataManagerInstance.getAllStudents());
53 break;
54 case 5:
55 Helpers.dropCourse(dataManagerInstance.getAllCourses(), loggedInStudent);
56 break;
57 case 6:
58 loggedInStudent.viewGrades(dataManagerInstance.getAllAssessments());
59 break;
60 case 7:
61 Helpers.updateStudentProfile(loggedInStudent);
62 dataManagerInstance.saveStudents(); // Save after profile update
63 break;
64 case 8:
65 loggedInStudent.logout(loggedInStudent);
66 studentExit = true;
67 break;
68 default:
69 System.out.println("Invalid option.");
70 }
71 }
72 break;
74 case "instructor":
75 Instructor tempInstructor = new Instructor();
76 Instructor loggedInInstructor = Helpers.login(dataManagerInstance.getAllInstructors(),
77 tempInstructor);
79 if (loggedInInstructor == null) {
80 continue;
81 }
82 boolean exitInstructor = false;
83 while (!exitInstructor) {
84 Helpers.showInstructorMenu();
85 int instructorChoice = Helpers.getSafeIntInput("Option: ");
87 switch (instructorChoice) {
88 case 1:
89 loggedInInstructor.viewEnrolledStudents(loggedInInstructor,
90 dataManagerInstance.getAllCourses());
91 break;
92 case 2:
93 loggedInInstructor.gradeStudent(dataManagerInstance.getAllAssessments(),
94 dataManagerInstance.getAllCourses());
95 break;
96 case 3:
97 Helpers.updateCourseInfo(loggedInInstructor, dataManagerInstance.getAllCourses());
98 dataManagerInstance.saveCourses(); // Save after course update
99 break;
100 case 4:
101 Helpers.updateInstructorProfile(loggedInInstructor);
102 dataManagerInstance.saveInstructors(); // Save after profile update
103 break;
104 case 5:
105 loggedInInstructor.logout(loggedInInstructor);
106 exitInstructor = true;
107 break;
108 default:
109 System.out.println("Invalid option.");
110 }
112 }
113 break;
114 case "admin":
115 Administrator temp = new Administrator();
116 Administrator loggedInAdministrator = Helpers.login(dataManagerInstance.getAllAdministrators(),
117 temp);
119 if (loggedInAdministrator == null) {
120 continue;
121 }
122 boolean exitAdmin = false;
123 while (!exitAdmin) {
124 Helpers.showAdminMenu();
125 int adminChoice = Helpers.getSafeIntInput("Option: ");
127 switch (adminChoice) {
128 case 1:
129 Helpers.addStudent(loggedInAdministrator, dataManagerInstance.getAllStudents());
130 break;
131 case 2:
132 Helpers.removeStudent(loggedInAdministrator, dataManagerInstance.getAllStudents());
133 break;
134 case 3:
135 loggedInAdministrator.viewStudentList(dataManagerInstance.getAllStudents());
136 break;
137 case 4:
138 Helpers.addInstructor(loggedInAdministrator,dataManagerInstance.getAllInstructors());
139 break;
140 case 5:
141 Helpers.removeInstructor(loggedInAdministrator, dataManagerInstance.getAllInstructors());
142 break;
143 case 6:
144 loggedInAdministrator.viewInstructorList(dataManagerInstance.getAllInstructors());
145 break;
146 case 7:
147 Helpers.addCourse(loggedInAdministrator, dataManagerInstance.getAllCourses(),
148 dataManagerInstance.getAllInstructors());
150 break;
151 case 8:
152 Helpers.closeCourse(loggedInAdministrator, dataManagerInstance.getAllCourses());
153 break;
154 case 9:
155 Helpers.adminUpdateStudentProfile(loggedInAdministrator, dataManagerInstance.getAllStudents());
156 dataManagerInstance.saveStudents(); // Save after profile update
157 break;
158 case 10:
159 Helpers.adminUpdateInstructorProfile(loggedInAdministrator,dataManagerInstance.getAllInstructors());
160 dataManagerInstance.saveInstructors(); // Save after profile update
161 break;
162 case 11:
163 Helpers.assignInstructor(loggedInAdministrator, dataManagerInstance.getAllCourses(),
164 dataManagerInstance.getAllInstructors());
165 break;
166 case 12:
167 dataManagerInstance.viewEnrollmentStatistics();
168 break;
169 case 13:
170 dataManagerInstance.generateReports();
171 break;
172 case 14:
173 loggedInAdministrator.logout(loggedInAdministrator);
174 exitAdmin = true;
175 break;
176 default:
177 System.out.println("Invalid option.");
178 }
179 }
180 break;
181 case "exit":
182 exit = true;
183 dataManagerInstance.saveAllData(); // Save all data before exiting
184 System.out.println("Goodbye.");
185 break;
186 default:
188 System.out.println("Invalid role. Try again.");
189 }
190 }
191 } catch (Exception e) {
192 System.out.println("Error: " + e.getMessage());
193 }
194 }
195}