A simple, console-based course management system built in Java. It provides separate interfaces for students and teachers to manage course enrollments, assignments, and grades through a menu-driven workflow.
This project includes a variety of features for both students and teachers:
- Dual Role System: Separate login and registration for Students and Teachers.
- Student Dashboard:
- View all available courses.
- Enroll in (add) a new course.
- Unenroll from (drop) a course.
- View marks for all enrolled courses.
- Teacher Dashboard:
- Add new courses to the system.
- Remove courses.
- Assign grades to students for specific courses.
- Data Persistence: A "Save Details" option to save the current state of students, teachers, and courses to files.
- UI Customization: A "System Theme" option to change the console's background color for a personalized experience.
- Java: The entire application is built using core Java, without any external frameworks.
To run this project on your local machine, follow these steps:
-
Navigate to the Source Directory Open your terminal or command prompt and navigate to the directory containing the project's source code (where
Main.java
is located).cd \Course-Management-System-Java-main\CourseManagementSystem\out\production\CourseManagementSystem
-
Compile the Code Use the Java compiler (
javac
) to compile the source files.javac Main.java
-
Run the Application Execute the compiled code using the
java
command.java Main
Here is a visual walkthrough of the application's core functionality.
Users can register as either a student or a teacher, each with a unique ID. They can then use these credentials to log in.
Once logged in, a teacher can add a new course to the system, specifying details like course name, ID, credit hours, and capacity.
A logged-in student can view all available courses and enroll in the one they choose.
The teacher can then assign a grade to any student enrolled in their course.
The student can log back in and check their marks for the courses they are enrolled in.
The application also includes features for data persistence and UI customization.