A Java-based Course Recovery System developed using NetBeans.
This system helps manage students, course results, eligibility checking, course recovery planning, academic reports, and email notifications.
The Course Recovery System is designed to support academic recovery management for students who need to retake or recover failed modules. The system provides role-based features such as user management, eligibility checking, recovery plan generation, report viewing, and email notification logging.
This project was developed as part of a Java Object-Oriented Programming assignment to demonstrate the use of Java, Swing GUI, file handling, modular programming, and object-oriented design principles.
- User login system
- Role-based access
- User management
- Student eligibility checking
- Course recovery plan generation
- Academic performance report
- Email notification feature
- OTP/password recovery support
- File-based data storage
- Java Swing graphical user interface
- Java
- Java Swing
- NetBeans IDE
- Maven
- File Handling
- Object-Oriented Programming
- CSV/TXT Data Files
Course-Recovery-System/
│
├── src/
│ └── main/
│ └── java/
│ └── crs/
│ ├── gui/
│ ├── models/
│ └── services/
│
├── student_information.csv
├── course_assessment_information.csv
├── results.csv
├── email_log.txt
├── pom.xml
└── README.md
Handles login, user accounts, and role-based access.
Checks whether a student is eligible for course recovery based on academic results.
Generates recovery tasks and plans for students who need academic recovery.
Displays academic performance information and generates reports.
Sends or logs email notifications related to recovery plans, reports, and user actions.
- Open NetBeans IDE.
- Click File > Open Project.
- Select the project folder.
- Wait for Maven dependencies to load.
- Right-click the project.
- Click Run.
Open terminal inside the project folder and run:
mvn clean compileThen run the main class:
mvn exec:java -Dexec.mainClass="crs.gui.LoginFrame"Through this project, I learned how to:
- Build a Java GUI application using Swing
- Apply object-oriented programming concepts
- Use modular programming with separate models, services, and GUI classes
- Read and write data using CSV/TXT files
- Implement login and role-based access
- Manage project dependencies using Maven
- Work with a team-based Java project structure
- Connect the system with a database
- Improve UI design
- Add admin dashboard analytics
- Add stronger authentication
- Generate PDF reports
- Add real email sending with secure configuration
Muhammad Usman
Computer Science Student
Asia Pacific University of Technology & Innovation
GitHub: usmanmunim
LinkedIn: Muhammad Usman