A modern, AI-powered Learning Management System built with Next.js 16, Express.js, MongoDB, and featuring secure JWT authentication.
Built by: Nikhil
GitHub: github.com/nikhil
LinkedIn: linkedin.com/in/nikhil
- Node.js 18+
- MongoDB (local or Atlas)
- npm or yarn
# 1. Install dependencies
npm install
# 2. Set up environment variables
cp .env.example .env.local
# Edit .env.local with your configuration
# 3. Start MongoDB (if using locally)
brew services start mongodb-community # macOS
# or
mongod --config /usr/local/etc/mongod.conf
# 4. Run the application
npm run dev:all
# Or run separately:
# Terminal 1: npm run dev
# Terminal 2: npm run dev:server- Frontend: http://localhost:3000
- Backend API: http://localhost:4000
- ✅ Complete CRUD Operations for courses, lessons, users
- 🔐 Secure JWT Authentication
- 👥 Role-Based Access (Student, Instructor, Admin)
- 📚 Comprehensive Course Management
- 📊 Real-time Progress Tracking
- 🎓 Enrollment System
- ⭐ Reviews & Ratings
- 🤖 AI-Powered Content Generation (Optional)
- 🔍 Advanced Search & Filters
- 📱 Fully Responsive Design
- 🎨 Modern UI with Tailwind CSS + shadcn/ui
- ⚡ Real-time Updates
- 🛡️ Data Validation & Sanitization
- 🔄 Robust Error Handling
Frontend: Next.js 16, TypeScript, Tailwind CSS, shadcn/ui
Backend: Express.js, Node.js, MongoDB, Mongoose
Auth: JWT, bcryptjs
AI: OpenAI (optional)
edumaster-lms/
├── app/ # Next.js pages
├── components/ # React components
├── lib/ # Utilities & API
├── server/ # Express backend
│ ├── controllers/ # Business logic
│ ├── models/ # MongoDB schemas
│ ├── routes/ # API routes
│ └── middleware/ # Auth & validation
└── .env.local # Environment config
MONGODB_URI=mongodb://localhost:27017/edumaster-lms
JWT_SECRET=your-secret-key-here
API_URL=http://localhost:4000
NEXT_PUBLIC_API_URL=http://localhost:4000
OPENAI_API_KEY=optional-for-ai-featuresvercel --prodrailway login
railway upDon't forget to set environment variables in your hosting platform!
POST /api/auth/register- Register userPOST /api/auth/login- LoginGET /api/auth/profile- Get profile
GET /api/courses- List coursesPOST /api/courses- Create course (instructor)GET /api/courses/:id- Get course detailsPUT /api/courses/:id- Update courseDELETE /api/courses/:id- Delete coursePOST /api/courses/:id/enroll- Enroll in course
GET /api/progress- Get all progressGET /api/progress/:courseId- Get course progressPUT /api/progress/:courseId- Update progress
- Authentication - Secure signup/login with JWT
- Course Creation - Instructors can create rich courses
- Browse & Filter - Search courses by category/level
- Enrollment - One-click course enrollment
- Progress Tracking - Real-time learning analytics
- AI Content - Generate course content with AI
Create test accounts:
Instructor:
Email: instructor@test.com
Password: test123
Role: instructor
Student:
Email: student@test.com
Password: test123
Role: student
Nikhil
- GitHub: github.com/nikhil
- LinkedIn: linkedin.com/in/nikhil
Built for House of EdTech Full-Stack Developer Assignment - December 2025
Built with ❤️ using Next.js, Express, MongoDB, and AI