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=productionMONGO_URIJWT_SECRETGOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETPRIVILEGED_REGISTRATION_CODERAZORPAY_KEY_IDRAZORPAY_KEY_SECRETRAZORPAY_WEBHOOK_SECRETCORS_ORIGINSFRONTEND_URLSENTRY_DSNif backend monitoring is enabledSENTRY_ENVIRONMENTSENTRY_TRACES_SAMPLE_RATE
Frontend production builds require:
VITE_API_BASE_URLVITE_API_URLas a documented fallbackVITE_WS_BASE_URLVITE_PRIVILEGED_REGISTRATION_CODEwhen privileged signup pages are enabledVITE_SENTRY_DSNif frontend monitoring is enabledVITE_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.mddocs/SECURITY_GUIDE.mddocs/DEPLOYMENT_GUIDE.mddocs/go-live-checklist.mddocs/monitoring.mddocs/backup-recovery.mddocs/TEST_PLAN.mddocs/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_ORIGINScontains the exact frontend origin. - If privileged signup fails, verify that frontend and backend use the same
PRIVILEGED_REGISTRATION_CODE. - If MongoDB fails, verify
MONGO_URIand that themongoservice is healthy.
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add vishal-patidar-02/pragyata