Eagle LMS is a secure, cloud-native learning management platform designed for high-performance enterprise training. Featuring a dual-role (Trainer and Trainee) dashboard web app, a mobile learning client, secure watermarking for intellectual property protection, and an automated DevOps delivery pipeline.
Tip
DevOps Portfolio Proof: For the complete local cloud simulation documentation, including step-by-step resolution of Docker port bindings, S3 path-style routing, database seeding, and the local Jenkins pipeline configuration, see the DevOps & Cloud Simulation Log (DEVOPS_PROOF.md).
Here are the primary interface views from the Eagle LMS platform:
Trainer Dashboard Overview
|
Trainer Course Content & Module Detail
|
Trainer Module Reports & Scores
|
Trainee Profile Dashboard
|
Trainee Training Calendar
|
|
Eagle LMS is organized as a monorepo containing three core subsystems:
- Framework: FastAPI (Python 3.11/3.13) for high-performance HTTP request handling.
- ORM / Database: SQLAlchemy with PyMySQL connecting to a MySQL 8.0 instance.
- Security: Role-based JWT access tokens (
python-jose) and password hashing (passlibwithbcrypt). - File Storage: AWS S3 (simulated locally via LocalStack) with lazy-downloading caching routines.
- Watermarking Engine: PDF rendering (
reportlab) and image compositing (Pillow) for personalizing learning resources with trainees' emails.
- Build Tool & Framework: Vite + React 18.
- Styling: Custom dark-themed responsive layout optimized for analytical dashboards.
- Routing & APIs: React Router DOM and Axios.
- Framework: React Native + Expo.
- Purpose: Immersive, on-the-go training for field security personnel.
Ensure you have the following installed on your machine:
- Docker Desktop (start the daemon before proceeding).
- Terraform CLI.
Run the containers in detached mode:
docker compose up -dThis spins up:
- MySQL Database: Exposed on host port
3307(to prevent conflicts with any local MySQL running on port 3306). - FastAPI Backend: Exposed on host port
8000. - Vite Frontend: Exposed on host port
5173. - LocalStack AWS Emulator: Exposed on host port
4566.
Initialize and apply the Terraform configuration to create the S3 bucket in LocalStack:
cd infra
terraform init
terraform apply -auto-approveOpen your browser and navigate to:
- Web Frontend:
http://localhost:5173 - Demo Trainer Credentials:
trainer@eagle.com/trainer123 - Demo Trainee Credentials:
trainee@eagle.com/trainee123 - FastAPI Swagger Documentation:
http://localhost:8000/docs

.jpeg)
.jpeg)
.jpeg)
.jpeg)