A comprehensive Java-based Student Management System that enables educational institutions to manage students, courses, and enrollments efficiently. The system provides a console-based interface with robust data persistence and business logic implementation.
- Add New Students: Register students with personal information (ID, name, email, phone, DOB)
- View All Students: Display complete list of registered students with their details
- Search Students: Search students by name with partial matching
- Update Student Information: Modify existing student records
- Delete Students: Remove student records from the system
- GPA Tracking: Automatic calculation and tracking of student GPA
- Add New Courses: Create courses with details (ID, name, code, instructor, credits, department)
- View All Courses: Display available courses with enrollment information
- Search Courses: Search courses by name or department
- Update Course Information: Modify course details and capacity
- Delete Courses: Remove courses from the system
- Capacity Management: Track available seats and maximum capacity
- Enroll Students: Register students in courses with validation
- Drop Courses: Allow students to withdraw from courses
- Grade Assignment: Assign numeric and letter grades to students
- View Enrollments: Display student-course relationships
- GPA Calculation: Automatic GPA computation based on grades
- Enrollment Validation: Prevent duplicate enrollments and capacity violations
- Reports & Analytics: System-wide statistics and insights
- Data Persistence: File-based storage for all entities
- Comprehensive Logging: Application activity tracking
- Input Validation: Robust validation for all user inputs
- Error Handling: Graceful exception handling throughout the system
- Language: Java 8+
- Architecture: Layered Architecture (UI → Service → Repository)
- Design Patterns:
- Repository Pattern
- Service Layer Pattern
- Singleton Pattern (Logger)
- Data Storage: File-based serialization (.dat files)
- Input/Output: Console-based UI using Scanner
- Error Handling: Custom exception hierarchy
- Logging: File and console logging system
JAVA Project/
├── src/
│ └── com/
│ └── studentmanagement/
│ ├── Main.java
│ ├── model/
│ │ ├── Student.java
│ │ ├── Course.java
│ │ ├── Enrollment.java
│ │ └── User.java
│ ├── service/
│ │ ├── StudentService.java
│ │ ├── CourseService.java
│ │ └── EnrollmentService.java
│ ├── repository/
│ │ ├── StudentRepository.java
│ │ ├── CourseRepository.java
│ │ └── EnrollmentRepository.java
│ ├── ui/
│ │ └── ConsoleUI.java
│ ├── util/
│ │ ├── Logger.java
│ │ └── InputValidator.java
│ └── exception/
│ ├── ValidationException.java
│ ├── DuplicateEntityException.java
│ ├── EntityNotFoundException.java
│ └── BusinessLogicException.java
├── data/
│ ├── students.dat
│ ├── courses.dat
│ └── enrollments.dat
├── logs/
│ └── application.log
├── docs/
│ ├── diagrams/
│ │ ├── use-case-diagram.png
│ │ ├── class-diagram.png
│ │ ├── sequence-diagram.png
│ │ └── er-diagram.png
│ └── Database_Schema.md
├── README.md
├── statement.md
└── BuildYourOwnProject.pdf
- Java Development Kit (JDK) 8 or higher
- Command line terminal (PowerShell, CMD, or Bash)
- Text editor or IDE (VS Code, IntelliJ IDEA, Eclipse)
-
Clone or Download the Repository
cd "c:\Users\killi\OneDrive\Documents\JAVA Project" -
Compile the Java Source Files
javac -d bin src/com/studentmanagement/**/*.java src/com/studentmanagement/*.java
-
Run the Application
java -cp bin com.studentmanagement.Main
- Open the project folder in your IDE (IntelliJ IDEA, Eclipse, or VS Code with Java extension)
- Ensure JDK is configured
- Run the
Main.javafile
Run the Main class to launch the console interface. You'll see the main menu with options for managing students, courses, and enrollments.
-
Student Management
- Add students with required information
- View, search, update, or delete student records
- System validates email format and required fields
-
Course Management
- Create courses with instructor and capacity details
- Manage course information and enrollment capacity
- Search courses by name or department
-
Enrollment Management
- Enroll students in available courses
- Drop courses with proper validation
- Assign grades and track academic performance
-
Reports & Analytics
- View system statistics (total students, courses, enrollments)
- Analyze student performance (average GPA)
- Monitor course capacity and availability
1. Add a new student (Student Management → Add New Student)
2. Add a new course (Course Management → Add New Course)
3. Enroll the student in the course (Enrollment Management → Enroll Student)
4. Assign grades (Enrollment Management → Assign Grade)
5. View reports (Reports & Analytics → System Statistics)
-
Test Student Management
- Add multiple students with valid/invalid data
- Search for students by name
- Update student information
- Verify data persistence by restarting the application
-
Test Course Management
- Create courses with various capacities
- Test course full condition
- Search and filter courses
-
Test Enrollment Management
- Enroll students in courses
- Test duplicate enrollment prevention
- Test capacity validation
- Assign grades and verify GPA calculation
-
Test Error Handling
- Try to add duplicate student IDs
- Attempt to enroll in full courses
- Enter invalid email formats
- Test with empty required fields
- All inputs are validated before processing
- Duplicate IDs are rejected
- Full courses prevent new enrollments
- GPA is automatically calculated from grades
- All operations are logged to file
- Data persists across application restarts
- Performance: Operations complete in < 1 second for datasets up to 1000 records
- Reliability: Data integrity maintained through serialization; crash recovery supported
- Usability: Intuitive console interface with clear prompts and error messages
- Maintainability: Modular architecture with separation of concerns; well-documented code
- Scalability: Can handle thousands of students and courses; file-based storage easily upgradeable to database
- Security: Input validation prevents injection attacks; data stored in binary format
- Error Handling: Comprehensive exception handling with user-friendly error messages
- Logging: All operations logged for audit and debugging purposes
============================================================
STUDENT MANAGEMENT SYSTEM
============================================================
Welcome to the Student Management System!
Manage students, courses, and enrollments efficiently.
------------------------------------------------------------
MAIN MENU
------------------------------------------------------------
1. Student Management
2. Course Management
3. Enrollment Management
4. Reports & Analytics
5. Exit
------------------------------------------------------------
=== All Students ===
ID Name Email GPA Status
--------------------------------------------------------------------------------
S001 John Doe john.doe@email.com 3.75 ACTIVE
S002 Jane Smith jane.smith@email.com 3.90 ACTIVE
Total Students: 2
- Presentation Layer (UI): ConsoleUI handles user interaction
- Business Logic Layer (Service): Service classes implement business rules
- Data Access Layer (Repository): Repository classes handle data persistence
- Domain Layer (Model): Entity classes represent business objects
- Repository Pattern: Abstracts data access logic
- Service Layer Pattern: Encapsulates business logic
- Exception Hierarchy: Custom exceptions for different error types
- Web-Based Interface: Develop a Spring Boot REST API with React frontend
- Database Integration: Migrate from file storage to MySQL/PostgreSQL
- Authentication & Authorization: Implement role-based access control
- Email Notifications: Send enrollment confirmations and grade notifications
- Advanced Reporting: Generate PDF reports and data visualizations
- Bulk Operations: Import/export students and courses via CSV
- Course Prerequisites: Implement prerequisite validation for enrollments
- Payment Integration: Track and manage tuition payments
- Attendance Tracking: Monitor student attendance in courses
- Mobile Application: Develop Android/iOS apps for students and faculty
- Developer: Akshat Kumar Singh
- Role: Solo Developer & Architect
- GitHub: @AkshatKumarSingh001
- Version: 1.0
- Date: November 2025
This project is created for educational purposes as part of academic coursework.
Note: This is an academic project developed to demonstrate Java programming concepts including OOP, data structures, file I/O, and software design patterns.