Skip to content

Repository files navigation

EduForge Enterprise LMS

A complete course-selling and learning-management platform inspired by modern course marketplaces. It includes a public course marketplace, paid enrollment, learner classroom, instructor studio, administrator console, analytics, coupons, quizzes, progress tracking, certificates, live-session scheduling, Docker deployment, migrations, seed data and automated tests. image image image

This repository is an enterprise-ready reference implementation and strong production starter. The included checkout uses a mock payment provider and lesson videos use URL-based placeholders. Connect a real gateway such as Razorpay/Stripe and a secure video provider before accepting production payments.

Technology stack

  • Frontend: React 19, TypeScript, Vite, React Router, Axios, Lucide icons
  • Backend: FastAPI, SQLAlchemy 2, Pydantic Settings, JWT, Argon2
  • Database: SQLite locally; PostgreSQL through Docker/production configuration
  • Infrastructure: Alembic migrations, Docker Compose, Nginx, health endpoint
  • Quality: Ruff, Pytest, strict TypeScript, production Vite build

Applications included

Public course marketplace

  • Responsive landing page and course catalogue
  • Keyword search, category/level filters and sorting
  • Course details, curriculum preview, outcomes and requirements
  • Instructor profile, ratings and learner counts
  • Coupon-based checkout and wishlist
  • Public content controlled by administrator settings

Student portal

  • Registration and secure JWT login
  • Purchased-course library
  • Structured classroom with sections and lessons
  • Video/article/resource lesson support
  • Lesson completion and saved progress
  • Quizzes and pass/fail attempts through API
  • Reviews restricted to enrolled learners
  • Automatic completion certificate code
  • Wishlist and order-backed enrollment

Instructor portal

  • Instructor registration and role workspace
  • Revenue, course and learner analytics
  • Draft course creation and pricing
  • Curriculum builder for sections and lessons
  • Video, article, resource and preview lesson types
  • Quiz creation API
  • Live-session scheduling API
  • Course submission for administrator moderation

Administrator panel

  • Platform KPI dashboard and gross revenue
  • User activation, role and verification APIs
  • Course review, approval, rejection and featured controls
  • Category management
  • Coupon and campaign management
  • Order and payment visibility
  • Storefront hero, announcement and support settings
  • Audit-log persistence for sensitive actions

Domain model

The database includes 18 application tables plus Alembic metadata:

users, categories, courses, sections, lessons, enrollments, lesson_progress, coupons, orders, order_items, reviews, wishlists, quizzes, questions, quiz_attempts, live_sessions, site_settings, and audit_logs.

Project structure

eduforge-lms-enterprise/
├── backend/
│   ├── app/
│   │   ├── api/             # Auth, public, student, instructor and admin APIs
│   │   ├── core/            # Configuration and security
│   │   ├── db/              # SQLAlchemy engine/session
│   │   ├── models/          # Enterprise LMS entities
│   │   ├── schemas/         # Validated request schemas
│   │   ├── services/        # Serializers/domain helpers
│   │   ├── main.py          # FastAPI application
│   │   └── seed.py          # Demonstration data
│   ├── alembic/             # Database migration
│   ├── tests/               # End-to-end API workflow
│   ├── Dockerfile
│   └── requirements.txt
├── frontend/
│   ├── src/
│   │   ├── components/      # Layout, guards, cards and dashboard shell
│   │   ├── context/         # Authentication state
│   │   ├── pages/           # Marketplace and all role workspaces
│   │   ├── api.ts
│   │   ├── types.ts
│   │   └── styles.css
│   ├── Dockerfile
│   ├── nginx.conf
│   └── package.json
├── docs/
├── scripts/
└── docker-compose.yml

Demo accounts

Role Email Password
Student student@eduforge.com Student123!
Instructor instructor@eduforge.com Instructor123!
Administrator admin@eduforge.com Admin123!

These credentials are seed data only. Change or remove them before production deployment.

Windows setup

Requirements: Python 3.11+ and Node.js 20+.

Set-ExecutionPolicy -Scope Process Bypass
.\scripts\setup-windows.ps1

Start the API:

.\scripts\start-backend.ps1

Start the frontend in a second PowerShell window:

.\scripts\start-frontend.ps1

Linux/macOS setup

./scripts/setup-unix.sh
./scripts/start-backend.sh

In another terminal:

./scripts/start-frontend.sh

Local URLs

  • Storefront: http://localhost:5173
  • Student dashboard: http://localhost:5173/student
  • Instructor studio: http://localhost:5173/instructor
  • Administrator panel: http://localhost:5173/admin
  • API documentation: http://localhost:8000/docs
  • Health endpoint: http://localhost:8000/health

Docker deployment

docker compose up --build

Open http://localhost:8080.

Docker starts PostgreSQL, runs the Alembic migration, starts FastAPI, builds the React frontend and serves it with Nginx.

Manual backend setup

cd backend
python -m venv .venv
# Windows: .venv\Scripts\activate
# Linux/macOS: source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
alembic upgrade head
uvicorn app.main:app --reload

Manual frontend setup

cd frontend
npm install
cp .env.example .env
npm run dev

Automated validation

Backend:

cd backend
.venv/bin/ruff check app tests
.venv/bin/pytest -q

Frontend:

cd frontend
npm run build
npm audit --omit=dev

Important environment variables

Backend .env:

SECRET_KEY=replace-with-at-least-64-random-characters
DATABASE_URL=sqlite:///./eduforge.db
CORS_ORIGINS=http://localhost:5173,http://localhost:8080
ENVIRONMENT=development
SEED_DEMO_DATA=true

Frontend .env:

VITE_API_URL=http://localhost:8000/api/v1

Production integrations to add

The source isolates the places where production services belong. Before a real launch, connect:

  • Razorpay, Stripe or another payment gateway with signed webhooks
  • Object storage such as S3/R2 and signed upload URLs
  • Secure video streaming such as Mux, Vimeo OTT or Cloudflare Stream
  • Transactional email and notification queues
  • Redis caching/rate limiting and background workers
  • Search engine for a very large catalogue
  • Observability, centralized logs, alerting and secrets management
  • Tax invoices, refunds and regional compliance rules

See docs/ARCHITECTURE.md and docs/SECURITY.md.

About

A complete course-selling and learning-management platform inspired by modern course marketplaces. It includes a public course marketplace, paid enrollment, learner classroom, instructor studio, administrator console, analytics, coupons, quizzes, progress tracking, certificates, live-session scheduling, Docker deployment.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages