https://github.com/softengmuhammadali/eduzone
A modern, full-stack Learning Management System (LMS) built using the MERN stack, designed to support students, teachers, and administrators with a seamless learning experience.
https://github.com/softengmuhammadali/eduzone
express frontend mongodb nodejs react responsive-web-design tailwind-css
Last synced: 4 months ago
JSON representation
A modern, full-stack Learning Management System (LMS) built using the MERN stack, designed to support students, teachers, and administrators with a seamless learning experience.
- Host: GitHub
- URL: https://github.com/softengmuhammadali/eduzone
- Owner: SoftEngMuhammadAli
- Created: 2025-06-14T11:10:12.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-07-23T11:59:35.000Z (about 1 year ago)
- Last Synced: 2025-07-23T12:31:20.565Z (about 1 year ago)
- Topics: express, frontend, mongodb, nodejs, react, responsive-web-design, tailwind-css
- Language: JavaScript
- Homepage: https://edu-zone-kappa.vercel.app
- Size: 15.2 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# EduZone LMS (MERN)
Production-oriented LMS monorepo with:
- `client/` (React + Vite + Redux Toolkit + Tailwind)
- `server/` (Node.js + Express + MongoDB + JWT access/refresh auth)
## Architecture
### Backend (`server/src`)
- `config/` database + env config
- `controllers/` request handlers
- `models/` mongoose schemas
- `routes/` API route modules
- `middlewares/` auth, validation, security, error handling
- `utils/` token helpers, API response helpers, mailer, misc
- `validators/` request validators
### Frontend (`client/src`)
- `components/` shared/admin/lms UI
- `features/` Redux slices by domain
- `hooks/` reusable hooks
- `pages/` route-level views
- `routes/` route guards + app routing
- `services/` axios API client layer
- `app/` Redux store
## Key Implemented Upgrades
- Access + refresh JWT auth flow (`/api/auth/login`, `/api/auth/refresh`, `/api/auth/logout`)
- Role-based guards (`admin`, `instructor`, `student`)
- Request validation middleware + validators
- Security middleware:
- in-memory rate limiting
- request sanitization against Mongo operator injection keys
- secure default headers
- Centralized success/error response utilities
- Public browse APIs for courses/blogs
- Course search/filter + pagination metadata
- Enrollment ownership checks + student progress update endpoint
- Analytics APIs with real data:
- `GET /api/analytics/admin`
- `GET /api/analytics/instructor`
- `GET /api/analytics/student`
- Frontend axios interceptor with token refresh retry
- Dashboard pages wired to real analytics API data
- Student learning room wired to backend lessons + enrollment progress persistence
## Run Locally
## 1) Backend
```bash
cd server
npm install
cp .env.example .env
# update .env values
npm run dev
```
## 2) Frontend
```bash
cd client
npm install
cp .env.example .env
# update .env values
npm run dev
```
## 3) URLs
- Frontend: `http://localhost:5173`
- Backend: `http://localhost:5000`
## Environment Variables
### Backend (`server/.env`)
Use `server/.env.example` as reference.
Required:
- `DB_CONFIGURATION`
- `ACCESS_TOKEN_SECRET`
- `REFRESH_TOKEN_SECRET`
- `CLIENT_URL`
- `BASE_URL`
### Frontend (`client/.env`)
Use `client/.env.example` as reference.
Required:
- `VITE_BASE_URL`