VP

vishal-patidar-02/pragyata

Developer tools
0 stars Quality 43 Trend 8

Its an fully functional LMS platform.

Overview

LMS-Edumart is a FastAPI, React, and MongoDB learning management platform with student, instructor, admin, and super-admin portals. - Frontend: React and Vite in frontend/ - Backend: FastAPI in backend/app/ - Database: MongoDB via Motor async driver - Deployment: Docker Compose with Nginx reverse proxy The Vite dev server runs on http://localhost:5000. If you open it on 127.0.0.1, the app now treats that as a valid local-dev host too. - ENV=production - MONGO_URI - JWT_SECRET - GOOGLE_CLIENT_ID - GOOGLE_CLIENT_SECRET - PRIVILEGED_REGISTRATION_CODE - RAZORPAY_KEY_ID - RAZORPAY_KEY_SECRET - RAZORPAY_WEBHOOK_SECRET - CORS_ORIGINS - FRONTEND_URL - SENTRY_DSN if backend monitoring is enabled - SENTRY_ENVIRONMENT - SENTRY_TRACES_SAMPLE_RATE - VITE_API_BASE_URL - VITE_API_URL as a documented fallback - VITE_WS_BASE_URL - VITE_PRIVILEGED_REGISTRATION_CODE when privileged signup pages are enabled - VITE_SENTRY_DSN if frontend monitoring is enabled - VITE_SENTRY_ENVIRONMENT See .env.

README

LMS-Edumart

LMS-Edumart is a FastAPI, React, and MongoDB learning management platform with student, instructor, admin, and super-admin portals.

Architecture

  • Frontend: React and Vite in frontend/
  • Backend: FastAPI in backend/app/
  • Database: MongoDB via Motor async driver
  • Deployment: Docker Compose with Nginx reverse proxy

Local Setup

Backend:

cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload

Frontend:

cd frontend
npm install
npm run dev

The Vite dev server runs on http://localhost:5000. If you open it on 127.0.0.1, the app now treats that as a valid local-dev host too.

Environment Variables

Production API startup requires:

  • ENV=production
  • MONGO_URI
  • JWT_SECRET
  • GOOGLE_CLIENT_ID
  • GOOGLE_CLIENT_SECRET
  • PRIVILEGED_REGISTRATION_CODE
  • RAZORPAY_KEY_ID
  • RAZORPAY_KEY_SECRET
  • RAZORPAY_WEBHOOK_SECRET
  • CORS_ORIGINS
  • FRONTEND_URL
  • SENTRY_DSN if backend monitoring is enabled
  • SENTRY_ENVIRONMENT
  • SENTRY_TRACES_SAMPLE_RATE

Frontend production builds require:

  • VITE_API_BASE_URL
  • VITE_API_URL as a documented fallback
  • VITE_WS_BASE_URL
  • VITE_PRIVILEGED_REGISTRATION_CODE when privileged signup pages are enabled
  • VITE_SENTRY_DSN if frontend monitoring is enabled
  • VITE_SENTRY_ENVIRONMENT

See .env.example and secrets/backend.env.example.

Docker Deployment

cp .env.example .env
cp secrets/backend.env.example secrets/backend.env
docker compose up -d --build

Then verify:

curl -fsS http://localhost/health

The default Compose Nginx config is self-contained HTTP so a clean Docker host can build and start the stack without local certificate files. For domain deployment, terminate TLS at a managed load balancer/reverse proxy or adapt docker/nginx/conf.d/learn.edu-mart.com.ssl.conf.example after provisioning certificates.

Testing

python -m unittest discover backend/tests
cd frontend
npm run build

Documentation

  • docs/PRODUCTION_AUDIT.md
  • docs/SECURITY_GUIDE.md
  • docs/DEPLOYMENT_GUIDE.md
  • docs/go-live-checklist.md
  • docs/monitoring.md
  • docs/backup-recovery.md
  • docs/TEST_PLAN.md
  • docs/GO_LIVE_REPORT.md

Troubleshooting

  • If the API fails on startup in production, check the required environment variables. Unsafe defaults are intentionally rejected.
  • If CORS fails, ensure CORS_ORIGINS contains the exact frontend origin.
  • If privileged signup fails, verify that frontend and backend use the same PRIVILEGED_REGISTRATION_CODE.
  • If MongoDB fails, verify MONGO_URI and that the mongo service is healthy.
View this README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add vishal-patidar-02/pragyata