https://github.com/theekshana-nirmal/lms-backend
A backend for a University Learning Management System (LMS) built with Spring Boot. Features include user authentication (Student/Teacher), course enrollment, email notifications, and resource sharing
https://github.com/theekshana-nirmal/lms-backend
backend jwt-authentication learning-management-system lms rest-api spring-boot spring-security
Last synced: about 2 months ago
JSON representation
A backend for a University Learning Management System (LMS) built with Spring Boot. Features include user authentication (Student/Teacher), course enrollment, email notifications, and resource sharing
- Host: GitHub
- URL: https://github.com/theekshana-nirmal/lms-backend
- Owner: theekshana-nirmal
- Created: 2025-11-20T10:12:39.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2026-01-20T19:37:53.000Z (5 months ago)
- Last Synced: 2026-01-21T03:47:21.656Z (5 months ago)
- Topics: backend, jwt-authentication, learning-management-system, lms, rest-api, spring-boot, spring-security
- Language: Java
- Homepage:
- Size: 212 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Learning Management System (LMS) - Backend
## Overview
This repository contains the backend code for a comprehensive Learning Management System designed for university environments. The system facilitates interaction between students and teachers, streamlining the academic process from course enrollment to grading and communication.
## Features
### 👥 User Management
- **Registration:** Secure sign-up process for both Students and Teachers.
- **Authentication:** Role-based login system (Student/Teacher) with secure password handling.
- **Profiles:** Persistent user profiles for personalized dashboards.
### 📚 Course Management
- **Course Catalog:** Students can browse available university courses with details (description, instructor, schedule).
- **Enrollment:** One-click enrollment for students.
- **Class Rosters:** Teachers can view lists of all courses they teach and the students enrolled in them.
### 📝 Grading & Assessment
- **Teacher Tools:** Interface for teachers to input marks for assignments, tests, and modules.
- **Student Portal:** Dedicated grades page for students to track their academic performance across all courses.
### 📢 Communication & Resources
- **Announcements:** Teachers can post updates which trigger automatic email notifications to enrolled students.
- **Study Materials:** Centralized repository for teachers to upload lecture notes, assignments, and reading resources.
## Architecture
### C4 Level 2 Container Diagram

## Tech Stack
- **Language:** Java 21
- **Framework:** Spring Boot 3.5
- **Build Tool:** Maven
- **Database:** (Configured in `application.properties`)
## Getting Started
### Prerequisites
- Java Development Kit (JDK) 21 or higher
- Maven
### Installation
1. **Clone the repository**
```bash
git clone https://github.com/theekshana-nirmal/lms-backend.git
cd lms-backend
```
2. **Build the project**
```bash
./mvnw clean install
```
3. **Run the application**
```bash
./mvnw spring-boot:run
```
The application will start on the default port (usually 8080).
## Project Structure
```
src/main/java/lk/uwu/lms_backend/
├── config/ # Configuration classes
├── controllers/ # REST API Controllers
├── dtos/ # Data Transfer Objects
├── models/ # JPA Entities
├── repositories/ # Database access interfaces
├── security/ # Authentication & Authorization logic
└── services/ # Business logic layer
```