A comprehensive Learning Management System (LMS) designed to bridge the gap between administrators and students through a clean, efficient, and user-friendly interface.
- About the Project
- Key Features
- Software Architecture
- Installation & Usage
- Screenshots
- Technicals
- Contributors
The LMS Classroom System is a desktop application developed in Java. It serves as a centralized platform for academic management, replacing legacy manual systems with a digital solution.
Purpose: To streamline course enrollment, assignment distribution, and notice broadcasting in an educational setting.
User Roles:
- 👨🏫 Admin: Manages the curriculum. Can Create/Delete courses, post assignments, and publish notices.
- 👨🎓 Student: Consumes content. Can enroll in courses, view dashboard analytics, and check deadlines.
- Login System: Secure access with ID and Password verification.
- Role Detection: Automatically redirects to Admin or Student dashboard based on credentials.
- Registration: Easy signup process for new students.
- Profile Card: Displays user details (Name, ID, Email).
- Navigation: Seamless switching between views (Courses, Assignments, Notices) without reloading.
- Real-time Updates: UI refreshes instantly upon data changes (e.g., enrolling in a course).
- Admin: Add new courses with details (Code, Name, Instructor, Schedule). Delete outdated courses.
- Student: Browse available courses and enroll with a single click. View enrolled courses list.
- Assignment Board: Centralized list of tasks and details.
- Notice Board: Announcements with automatic date stamping.
- CSV Database: All data (Users, IDs, Courses, Enrollments) is saved locally in CSV files.
- Reliability: Data remains intact even after closing the application.
The project follows a modular MVC-like (Model-View-Controller) structure using pure Java.
| Package | Description |
|---|---|
gui |
Contains LMSGui (Main Window) and UI (Swing components wrapper). Handles all user interactions. |
data |
Contains UserDataManager and DataManager. Manages file I/O and CSV parsing. |
users |
Contains the User abstract class and its subclasses Admin and Student. |
core |
Contains POJO classes: Course, Assignment, and Notice. |
app |
Contains the App entry point. |
OOP Principles Implemented:
- Encapsulation: Private fields with strict getters/setters.
- Inheritance:
StudentandAdminextend the baseUserclass. - Polymorphism: Dynamic dashboard updates based on
instanceof User. - Abstraction: Abstract
Userclass enforcing specific behaviors.
- Java Development Kit (JDK) 8 or higher.
- Clone the repository:
git clone https://github.com/username/LMS-Classroom.git cd LMS-Classroom - Compile the code:
javac -d bin -sourcepath src/main src/main/app/App.java
- Run the application:
java -cp bin app.App
(Note: Ensure src/main/resources/users/login.csv exists for data to load correctly)
| Login Screen | Signup Screen |
|---|---|
![]() |
![]() |
| Profile Info | Course Menu |
|---|---|
![]() |
![]() |
| Notice Board | Assignment |
|---|---|
![]() |
![]() |
- Language: Java (SE)
- GUI Framework: Swing (javax.swing)
- Data Format: CSV (Comma Separated Values)
- IDE Used: VS Code / IntelliJ IDEA
Built with ❤️ for University OOP Project.





