Skip to content

Repository files navigation

🦅 Eagle Learning Management System (Eagle LMS)

FastAPI React React Native Docker Terraform Jenkins

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.


🔗 Cloud Infrastructure & CI/CD Pipeline Proof

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).


🖼️ Application Interfaces (Website Showcase)

Here are the primary interface views from the Eagle LMS platform:

Trainer Dashboard Overview
Trainer Dashboard
Trainer Course Content & Module Detail
Module Details
Trainer Module Reports & Scores
Module Reports
Trainee Profile Dashboard
Trainee Profile
Trainee Training Calendar
Trainee Calendar

🏗️ Core Architecture & Tech Stack

Eagle LMS is organized as a monorepo containing three core subsystems:

1. Backend API Service (/backend)

  • 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 (passlib with bcrypt).
  • 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.

2. TrainerPro Web Frontend (/frontend)

  • Build Tool & Framework: Vite + React 18.
  • Styling: Custom dark-themed responsive layout optimized for analytical dashboards.
  • Routing & APIs: React Router DOM and Axios.

3. Mobile Companion Client (/mobile)

  • Framework: React Native + Expo.
  • Purpose: Immersive, on-the-go training for field security personnel.

🚀 Quick Start (Local Run)

📋 Prerequisites

Ensure you have the following installed on your machine:

1. Launch the Stack

Run the containers in detached mode:

docker compose up -d

This 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.

2. Provision S3 Bucket

Initialize and apply the Terraform configuration to create the S3 bucket in LocalStack:

cd infra
terraform init
terraform apply -auto-approve

3. Log In

Open 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

About

Enterprise-grade LMS built with React/Vite, FastAPI, & React Native. Containerized with Docker Compose, automated via a local Jenkins CI/CD pipeline, and provisioned with AWS S3 emulation using Terraform & LocalStack.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages