SkillNova is a full-fledged MERN-based E-learning platform that bridges the gap between students and instructors through an intuitive UI/UX, secured backend services, and seamless video course delivery. It also integrates secure payment processing and follows modern development workflows with Docker support.
- Frontend: React.js (Vite), Tailwind CSS
- Backend: Node.js, Express.js
- Database: MongoDB (Mongoose)
- Authentication: JWT (Cookies Based)
- Emails: Nodemailer with Gmail SMTP
- Payments: Razorpay (Test Mode)
- Containerization: Docker, Docker Compose
- Role-based login: Instructor & Student
- JWT-based session management via secure HTTP-only cookies
- Email verification & password reset using Nodemailer with OTP
- Protected routes for role-specific access
-
Instructors can:
- Create, update, and delete courses
- Add lectures, manage content
- View enrolled students and revenue
-
Students can:
- Browse, purchase, and access video-based courses
- Rate and review enrolled courses
- Razorpay Test Mode integration
- Order creation, payment verification
- Handles success/failure flows gracefully
- Fully responsive layouts using Tailwind CSS
- Clean and accessible dashboards for both user types
- Toast notifications, custom loaders, OTP inputs, video previews
- Uses 3 containers:
frontend,backend, andmongo - Clean and scalable Docker + Docker Compose setup
- Ideal for local development and production CI/CD setups
✅ Ensure Docker is installed and running 👉 https://www.docker.com/products/docker-desktop/
git clone https://github.com/Bhivanshu45/skillnova_edtech_platform.git
cd skillnova_edtech_platformPORT=8000
MONGODB_URL=mongodb://mongo:27017/skillnova
JWT_SECRET=your_jwt_secret
COOKIE_SECRET=your_cookie_secret
RAZORPAY_KEY=your_test_key_id
RAZORPAY_SECRET=your_test_secret_key
MAIL_HOST=smtp.gmail.com
MAIL_USER=your_email@gmail.com
MAIL_PASSWORD=your_app_passwordVITE_BASE_URL=http://localhost:8000/api/v1💡 Gmail SMTP Note: Enable 2-Step Verification and generate App Password
docker-compose up --build- Frontend: http://localhost:3000
- Backend: http://localhost:8000
# Step 1: Start MongoDB locally or use cloud DB
# Step 2: Run Backend
cd backend_server
npm install
npm run dev
# Step 3: Run Frontend
cd ../frontend_skillnova
npm install
npm run dev| Service | Link |
|---|---|
| Frontend | Vercel |
| Backend | Render |
📌 Add respective environment variables in Vercel & Railway dashboard for production.
# Frontend Setup
cd frontend_skillnova && npm install
# Backend Setup
cd backend_server && npm install
# Run both (from frontend folder)
npm run devOr using Docker:
docker-compose up --build| Problem | Solution |
|---|---|
| ❌ Emails not received | Check MAIL_USER and MAIL_PASSWORD (Use App Password) |
| 💳 Razorpay not working | Use correct Test Mode keys + ensure Test Mode enabled in dashboard |
| 🐳 Docker Errors | Run docker system prune or restart Docker |
| 🔁 Frontend not calling backend | Check VITE_BASE_URL in .env file |
This project is licensed under the MIT License. Feel free to fork, contribute, and build upon it!
Built with ❤️ by Bhivanshu Lawaniya