A Java-based Learning Management System (LMS) built with Spring Boot as a RESTful API. The system manages online courses, assessments, and user roles for students and instructors. Core functionalities include course creation, user and role management, performance tracking, and assessment handling. It uses a MySQL database for persistent storage and has been thoroughly tested using Postman.
- Duaa Abd-Elati – Project Lead, Core functionality, JUnit Testing
- Raghad Thabet – Email Services
- Ahmed Ameen – Database Designer
- Rehab Ameen – Core functionality
- Safaa Tawfiq – Research, Documentation & Coordination
- User Types: Admin, Instructor, Student
- Admin: Manages system settings, creates users, and manages courses.
- Instructor: Creates courses, manages content, adds assignments and quizzes, grades students, and removes students.
- Student: Enrolls in courses, accesses materials, submits assignments, and views grades.
- Features:
- User registration and login (role-based access)
- Profile management
- Course Creation: Allows instructors to create courses with details, upload media files, and organize lessons.
- Enrollment Management: Students can enroll in courses, and admins/instructors can view enrolled students.
- Attendance Management: OTP-based attendance tracking for lessons.
- Quiz Creation: Supports various question types and randomized question selection.
- Assignment Submission: Students can upload assignments for instructor review.
- Grading and Feedback: Automated quiz feedback and manual assignment feedback.
Instructors can track student progress, quiz scores, assignment submissions, and attendance.
- System notifications for enrollments, grades, and updates.
- Unread and read notification views.
- Instructors receive notifications for student enrollments.
- Role-Based Access Control: Authentication and authorization using Spring Security.
- Performance Analytics: Visual reports (charts) and Excel exports for student performance.
- Email Notifications: Similar to system notifications for updates and grades.
- Backend: Java with Spring Boot for RESTful APIs
- Database: MySQL, PostgreSQL, or SQLite
- Testing: JUnit for unit testing
- Version Control: Git