https://github.com/yesitha/lms
A microservices-based LMS with secure authentication, payment integration, AWS S3 storage, API Gateway, and Docker containerization for scalability, efficiency, and seamless course management.
https://github.com/yesitha/lms
api-gateway aws-cloudfront aws-s3 docker github-actions kubernetes microservices nextcloud payherelk springboot
Last synced: 2 months ago
JSON representation
A microservices-based LMS with secure authentication, payment integration, AWS S3 storage, API Gateway, and Docker containerization for scalability, efficiency, and seamless course management.
- Host: GitHub
- URL: https://github.com/yesitha/lms
- Owner: yesitha
- Created: 2024-04-09T15:23:21.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-14T06:36:49.000Z (over 1 year ago)
- Last Synced: 2025-03-14T07:24:37.592Z (over 1 year ago)
- Topics: api-gateway, aws-cloudfront, aws-s3, docker, github-actions, kubernetes, microservices, nextcloud, payherelk, springboot
- Language: Java
- Homepage:
- Size: 423 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Learning Management System (LMS)
## Overview
The LMS project is a **microservices-based application** designed to streamline learning and course management. It integrates various tools and technologies to ensure scalability, security, and efficiency.

## Features
- **Payment Integration:** Supports payments through [PayHere](https://www.payhere.lk/).
- **Microservices Architecture:** Built using Spring Cloud with centralized service discovery via **Eureka**.
- **API Gateway:** Utilizes Spring Gateway for request routing and load balancing.
- **Authentication & Authorization:** Secured with JWT token-based authentication and role-based access control.
- **Content Delivery Network (CDN):** Uses AWS CloudFront with **Signed URLs** to restrict access by IP and provide time-limited links.
- **Storage Solutions:**
- **AWS S3:** Securely stores videos.
- **Nextcloud:** Manages and stores other documents.
- **Containerization:**
- Docker images are created using the **Maven Jib plugin**.
- **GitHub Actions** automate Docker image creation and push to DockerHub.
- **Orchestration:** Configured with a Docker Compose file to simplify project setup and deployment.
## Architecture
This project employs a microservices architecture with the following components:
- **Eureka Server:** Centralized service registry for microservices.
- **Spring Gateway:** Handles routing and authentication.
- **Multiple Microservices:** Each handles specific functionalities, ensuring modularity and scalability.
## Technologies Used
- Backend: Spring Boot, Spring Cloud, Eureka, Spring Gateway
- Authentication: JWT Tokens
- Storage: AWS S3, Nextcloud
- Payment Gateway: PayHere
- Containerization: Docker, Maven Jib Plugin
- CI/CD: GitHub Actions