A production-ready, AI-powered Learning Management System connecting students with educators β featuring dual dashboards, Google OAuth, Razorpay payments, Gemini-powered smart search, and real-time course management. Built with the MERN Stack.
π Live Demo: Coming Soon π GitHub: Coming Soon
- Overview
- Features
- Tech Stack
- Project Structure
- Project Pipeline
- API Endpoints
- Setup & Installation
- Deployment
- Key Implementations
LearnItt is a next-generation, SaaS-level Learning Management System built from scratch using the MERN stack. It provides two distinct dashboards β one for students and one for educators/admins β with secure Google OAuth authentication, AI-powered smart search via Gemini, seamless Razorpay payment integration, resume/image uploads via Multer and Cloudinary, and a sleek, fully responsive UI powered by Tailwind CSS.
Whether you're a student looking to upskill or an educator building your brand, LearnItt delivers a seamless, modern EdTech experience.
- Browse and explore courses with AI-powered smart search (Gemini)
- Enroll in courses via Razorpay payment gateway
- Track learning progress in real time
- View complete enrollment and course history
- Update profile and avatar anytime
- Reset password functionality
- Create, publish, and manage courses
- Upload course thumbnails and content via Cloudinary
- Edit and update existing course listings
- View enrolled students per course
- Manage educator profile and dashboard
- Track course performance metrics
- One-click Google OAuth 2.0 sign-in
- JWT-based session management with middleware-protected routes
- Secure password reset flow via email
- Role-based access control (Student / Educator / Admin)
- Password encryption with bcrypt
- Gemini AI-powered Smart Search β intelligent, context-aware course discovery
- Fast and relevant results beyond simple keyword matching
- Integrated Razorpay payment gateway for seamless course purchases
- Secure order creation and payment verification
- Modern responsive design with Tailwind CSS
- Clean component-driven architecture
- Mobile-friendly interface across all screen sizes
- Smooth and intuitive navigation
| Layer | Technology |
|---|---|
| Frontend | React.js (Vite), Redux Toolkit, React Router, Tailwind CSS, Axios |
| Backend | Node.js, Express.js, Mongoose, JWT, Bcrypt, Multer |
| Database | MongoDB |
| Storage | Cloudinary (images & course media) |
| Auth | Google OAuth 2.0 |
| Payments | Razorpay |
| AI | Gemini API (Smart Search) |
LearnItt/
β
βββ backend/
β βββ controllers/ # Route logic (user, course, payment, auth)
β βββ middleware/ # Auth guards & role-based access
β βββ models/ # Mongoose schemas (User, Course, Enrollment, Order)
β βββ routes/ # API route definitions
β βββ utils/ # Helper functions (email, cloudinary config)
β βββ index.js # Server entry point
β
βββ frontend/
β βββ src/
β β βββ components/ # Reusable UI components (Navbar, CourseCard, etc.)
β β βββ hooks/ # Custom React hooks
β β βββ redux/ # Redux store & slices (auth, course, user)
β β βββ pages/ # Route-level page components
β β βββ App.jsx
β βββ package.json
β
βββ README.md
User visits LearnItt
β
Google OAuth / Register / Login (JWT issued)
β
Role Detection (Student / Educator / Admin)
β
ββββββββββββββββββββββββββββββββββββββββββ
β Student β Educator β
β AI Smart Search β Create Course β
β Browse & Enroll β Edit Course β
β Razorpay Payment β View Students β
β Track Progress β Manage Dash β
ββββββββββββββββββββββββββββββββββββββββββ
β
Redux State persisted across 10+ pages
β
MongoDB β REST API (15+ endpoints) β React UI
β
Cloudinary (Media) + Razorpay (Orders) + Gemini (AI Search)
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/user/register |
Register new user |
| POST | /api/v1/user/login |
Login & get JWT |
| POST | /api/v1/user/google |
Google OAuth sign-in |
| POST | /api/v1/user/reset-password |
Send reset password email |
| PUT | /api/v1/user/update-profile |
Update user profile & avatar |
| GET | /api/v1/course/all |
Get all courses |
| POST | /api/v1/course/create |
Create a new course (Educator) |
| PUT | /api/v1/course/edit/:id |
Edit an existing course |
| GET | /api/v1/course/search |
AI-powered course search (Gemini) |
| POST | /api/v1/order/create |
Create Razorpay order |
| POST | /api/v1/order/verify |
Verify payment & enroll student |
| GET | /api/v1/enrollment/my |
Get student's enrolled courses |
| GET | /api/v1/enrollment/course/:id |
Get enrollments for a course |
15+ REST API endpoints total across User, Course, Order, and Enrollment routes.
1. Clone the repository
git clone https://github.com/DishaDewangan/LearnItt.git
cd LearnItt2. Backend Setup
cd backend
npm installCreate a .env file in the backend/ directory:
PORT=8000
MONGO_URI=your_mongodb_connection_string
SECRET_KEY=your_jwt_secret_key
CLOUD_NAME=your_cloudinary_cloud_name
API_KEY=your_cloudinary_api_key
API_SECRET=your_cloudinary_api_secret
GOOGLE_CLIENT_ID=your_google_oauth_client_id
GOOGLE_CLIENT_SECRET=your_google_oauth_client_secret
RAZORPAY_KEY_ID=your_razorpay_key_id
RAZORPAY_KEY_SECRET=your_razorpay_key_secret
GEMINI_API_KEY=your_gemini_api_key
EMAIL_USER=your_email_for_notifications
EMAIL_PASS=your_email_passwordStart the backend:
npm run dev3. Frontend Setup
cd frontend
npm installCreate a .env file in the frontend/ directory:
VITE_API_URL=http://localhost:8000/api/v1
VITE_RAZORPAY_KEY_ID=your_razorpay_key_id
VITE_GOOGLE_CLIENT_ID=your_google_oauth_client_idStart the frontend:
npm run devThe application can be deployed on Render (both frontend and backend).
To deploy your own instance:
- Create a Render account
- Connect your GitHub repository
- Configure all environment variables in the Render dashboard
- Deploy backend and frontend as separate services
- Update
VITE_API_URLin frontend.envto point to your live backend URL
| Feature | Status |
|---|---|
| User authentication & authorization | β |
| Google OAuth 2.0 sign-in | β |
| JWT + role-based access control | β |
| Reset password via email | β |
| AI-powered smart search (Gemini) | β |
| Course creation & management | β |
| Razorpay payment gateway | β |
| Image & media upload (Multer + Cloudinary) | β |
| Student enrollment & tracking | β |
| Educator dashboard | β |
| Student dashboard | β |
| Redux state persistence (10+ pages) | β |
| Protected routes | β |
| Responsive design | β |
| Profile update system | β |
If this project helped you, consider giving it a β!