Skip to content

DishaDewangan/LearnItt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ LearnItt β€” AI-Powered Learning Management System

MongoDB Express React Node Redux Gemini GoogleAuth Razorpay Cloudinary

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


πŸ“Œ Table of Contents


πŸ“– Overview

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.


✨ Features

πŸ‘€ For Students

  • 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

🏫 For Educators / Admins

  • 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

πŸ” Authentication & Security

  • 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

πŸ€– AI Integration

  • Gemini AI-powered Smart Search β€” intelligent, context-aware course discovery
  • Fast and relevant results beyond simple keyword matching

πŸ’³ Payments

  • Integrated Razorpay payment gateway for seamless course purchases
  • Secure order creation and payment verification

🎨 UI / UX

  • Modern responsive design with Tailwind CSS
  • Clean component-driven architecture
  • Mobile-friendly interface across all screen sizes
  • Smooth and intuitive navigation

πŸ› οΈ Tech Stack

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)

πŸ“‚ Project Structure

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

πŸ”„ Project Pipeline

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)

πŸ”Œ API Endpoints

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.


βš™οΈ Setup & Installation

1. Clone the repository

git clone https://github.com/DishaDewangan/LearnItt.git
cd LearnItt

2. Backend Setup

cd backend
npm install

Create 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_password

Start the backend:

npm run dev

3. Frontend Setup

cd frontend
npm install

Create 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_id

Start the frontend:

npm run dev

πŸš€ Deployment

The application can be deployed on Render (both frontend and backend).

To deploy your own instance:

  1. Create a Render account
  2. Connect your GitHub repository
  3. Configure all environment variables in the Render dashboard
  4. Deploy backend and frontend as separate services
  5. Update VITE_API_URL in frontend .env to point to your live backend URL

βœ… Key Implementations

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 βœ…

πŸ‘©β€πŸ’» Author

Disha Dewangan GitHub LinkedIn LeetCode


If this project helped you, consider giving it a ⭐!

About

AI-powered LMS built with MERN Stack featuring Google Auth, Razorpay payments, Gemini smart search, and dual dashboards for students and educators.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages