A full-stack MERN application for managing internships, courses, enrollments, assignments, and certificates.
- Backend: Node.js, Express, Mongoose, JWT, bcryptjs, Multer, PDFKit
- Frontend: React (Vite), React Router, Tailwind CSS (CDN), Axios, Recharts, Lucide Icons
- Node.js (v18+)
- MongoDB (running locally or Atlas URI)
cd backend
cp .env.example .env # edit MONGO_URI and JWT_SECRET
npm install
npm run seed # seed demo data (admin, instructors, students, courses)
npm run dev # starts on http://localhost:5000cd frontend
npm install
npm run dev # starts on http://localhost:5173The Vite dev server proxies /api requests to the backend on port 5000.
| Role | Password | |
|---|---|---|
| Admin | admin@portal.com | admin123 |
| Instructor | sarah@portal.com | instructor123 |
| Student | alex@student.com | student123 |
- Students: Browse and enroll in courses, track progress, submit assignments, download PDF certificates
- Instructors: Create courses, view enrolled students, grade assignments with feedback
- Admin: Full access to all data, manage users/courses, view analytics dashboard with Recharts
/backend
/config - MongoDB connection
/models - User, Course, Enrollment, Assignment
/middleware - JWT auth, role authorization, file upload
/routes - REST API endpoints
seed.js - Database seed script
/frontend
/src
/api - Axios instance with JWT interceptor
/context - AuthContext (login, register, logout)
/components - Layout with sidebar navigation
/pages - All page components