A comprehensive Learning Management System built with Spring Boot and modern web technologies to facilitate online education, course management, and institutional administration.
- Manage multiple institutions and their administrators
- Global view of all statistics, courses, and users
- System configuration and maintenance
- Manage teachers, students, and courses within their institution
- Monitor attendance, schedules, and feedback
- Generate institutional reports
- Create and manage courses, modules, and lessons
- Schedule and conduct online classes with Google Meet
- Mark student attendance and track progress
- Create and grade assignments
- Post announcements and course materials
- Enroll in available courses
- Access course materials and submit assignments
- View class schedules and join online sessions
- Track personal progress and grades
- Provide course feedback
- Hierarchical course structure (Course β Modules β Lessons)
- Support for video content and file uploads
- Flexible enrollment system (manual/auto)
- Course completion tracking
- Assignment creation with deadlines
- File upload and link submission
- Grading with feedback
- Submission history and tracking
- Weekly class scheduling
- Google Calendar integration
- Automated meeting link generation
- Calendar view for students and teachers
- Student attendance tracking (Present/Absent/Late)
- Teacher attendance monitoring
- Attendance reports and analytics
- Course announcements
- Email and SMS notifications
- In-app messaging
- Push notifications
- Student performance tracking
- Course completion statistics
- Teacher performance metrics
- Custom report generation
- Java 17
- Spring Boot 3.x
- Spring Security
- JPA/Hibernate
- Maven
- React.js
- Redux
- Material-UI
- Axios
- PostgreSQL
- Redis (Caching)
- Google Meet API
- Google Calendar API
- Jitsi Meet (Open Source Alternative)
- Keycloak (Authentication)
- Moodle (LMS Integration)
lms-learning-platform/
βββ src/
β βββ main/
β βββ java/com/lms/
β β βββ config/ # Application configurations
β β βββ controller/ # REST endpoints
β β βββ dto/ # Data Transfer Objects
β β βββ entity/ # JPA entities
β β βββ repository/ # Data access layer
β β βββ service/ # Business logic
β β βββ security/ # Authentication & Authorization
β βββ resources/ # Static resources and configs
βββ pom.xml
Auth:LoginRequest,RegisterRequest,AuthResponseCourse:CourseDto,ModuleDto,LessonDtoEnrollment:EnrollmentRequestDto,EnrollmentResponseDtoAssignment:AssignmentDto,SubmissionDtoSchedule:ScheduleDtoFeedback:FeedbackDtoNotification:NotificationDto
- Java 17 or higher
- Maven 3.6+
- Node.js 16+
- PostgreSQL 13+
- Google Cloud Account (for Google APIs)
-
Clone the repository
git clone https://github.com/your-username/learning-management-system.git cd learning-management-system -
Configure the database
- Create a new PostgreSQL database
- Update
application.propertieswith your database credentials - Configure Google OAuth2 and Calendar API credentials
-
Build and run the backend
mvn clean install mvn spring-boot:run
-
Set up the frontend
cd frontend npm install npm start -
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- API Documentation: http://localhost:8080/swagger-ui.html
We welcome contributions! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Project Link: https://github.com/your-username/learning-management-system
- Multi-role System: Comprehensive role-based access control (Admin, Instructor, Student, Teaching Assistant)
- Authentication: Secure JWT-based authentication with email verification
- Profile Management: Customizable user profiles with avatars and personal information
- Password Recovery: Secure password reset flow with email verification
- SSO Integration: Support for Google, Microsoft, and other OAuth2 providers
- User Groups: Create and manage user groups for better organization
- Course Creation: Intuitive course creation wizard with rich text editing
- Curriculum Builder: Drag-and-drop course content organization
- Prerequisites: Set course prerequisites and completion requirements
- Batch Processing: Manage multiple courses and student enrollments in bulk
- Scheduling: Set course start/end dates and enrollment periods
- Certification: Generate and manage course completion certificates
- Rich Media Support: Embed videos, images, and interactive content
- SCORM Compliance: Import and export SCORM-compliant courses
- Version Control: Track and manage content versions
- Content Locking: Restrict access based on completion of previous modules
- Offline Access: Download course materials for offline study
- Interactive Content: Support for H5P interactive elements
- Quiz Engine: Multiple question types (MCQ, True/False, Essay, etc.)
- Automated Grading: Instant feedback for objective assessments
- Rubric-Based Grading: Create custom rubrics for subjective assessments
- Plagiarism Detection: Integrated tools to ensure academic integrity
- Peer Review: Enable peer assessment for assignments
- Survey & Feedback: Collect course and instructor feedback
- Announcements: Broadcast important updates to all enrolled users
- Discussion Forums: Threaded discussions with rich text support
- Live Chat: Real-time messaging between users
- Video Conferencing: Integrated BigBlueButton for live sessions
- Notifications: In-app, email, and mobile push notifications
- Calendar: Shared calendar for important dates and deadlines
- Progress Tracking: Visual dashboards for student progress
- Engagement Metrics: Track user activity and participation
- Custom Reports: Generate and export detailed reports
- Learning Analytics: Identify at-risk students and learning patterns
- Completion Tracking: Monitor course and certification completion
- Revenue Reports: For paid courses and subscriptions
- Course Marketplace: Sell courses with integrated payment gateways
- Subscription Plans: Create different pricing tiers
- Coupons & Discounts: Run promotional campaigns
- Affiliate Program: Enable users to become affiliates
- Tax & Payouts: Handle taxes and instructor payouts
- Responsive Design: Fully responsive for all devices
- Mobile App: Native mobile applications for iOS and Android
- Screen Reader Support: WCAG 2.1 AA compliant
- Multilingual Support: RTL and multiple language support
- Dark Mode: Reduce eye strain with dark theme
- LTI Integration: Seamless integration with other learning platforms
- RESTful API: Comprehensive API for custom integrations
- Webhooks: Real-time event notifications
- Zapier/IFTTT: Connect with thousands of apps
- Single Sign-On (SSO): Enterprise authentication support
- LMS Standards: Support for xAPI (Tin Can), IMS Global standards
- GDPR Compliance: Data protection and privacy controls
- Data Encryption: End-to-end encryption for sensitive data
- Regular Backups: Automated backup system
- Compliance Reporting: Generate compliance reports
- Audit Logs: Detailed logs of all system activities
- Access Control: Fine-grained permissions system
- Java 17
- Spring Boot 3.x
- Spring Security
- JPA/Hibernate
- Maven
- React.js
- Redux
- Material-UI
- Axios
- PostgreSQL
- Docker
- GitHub Actions (CI/CD)
- Moodle - LTI integration for content sharing
- BigBlueButton - For live video conferencing
- H5P - Interactive content creation
- Nextcloud - File storage and sharing
- Rocket.Chat - Real-time communication
- Java 17 or higher
- Maven 3.6+
- Node.js 16+
- PostgreSQL 13+
- Docker (optional)
-
Clone the repository
git clone https://github.com/your-username/learning-management-system.git cd learning-management-system -
Configure the database
- Create a new PostgreSQL database
Update
application.propertieswith your database credentials
- Create a new PostgreSQL database
Update
-
Build and run the backend
mvn clean install mvn spring-boot:run
-
Set up the frontend
cd frontend npm install npm start -
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Project Link: https://github.com/your-username/learning-management-system
- Spring Boot
- React
- Material-UI
- And all the amazing open-source libraries and frameworks that made this project possible