A Modern Learning Management System
A comprehensive e-learning platform built with modern web technologies
π Live Demo β’ π Documentation β’ π Report Bug β’ π‘ Request Feature
LearnHub LMS is a full-stack learning management system that revolutionizes online education. It provides educators with powerful tools to create and manage courses, while offering students an engaging learning experience with progress tracking, video streaming, and interactive features.
- π― Course Management - Create, edit, and manage comprehensive courses
- π₯ User Authentication - Secure login with Supabase integration
- πΉ Video Streaming - YouTube playlist integration for course content
- π Progress Tracking - Monitor student progress and completion rates
- π³ Payment Processing - Secure payments via Stripe integration
- π± Responsive Design - Optimized for all devices and screen sizes
- π¨ Modern UI/UX - Beautiful interface with smooth animations
- π Analytics Dashboard - Comprehensive insights for educators
| Technology | Purpose |
|---|---|
| UI Framework | |
| Build Tool | |
| Styling | |
| Animations | |
| HTTP Client |
| Technology | Purpose |
|---|---|
| Runtime Environment | |
| Web Framework | |
| Database | |
| ODM |
| Service | Purpose |
|---|---|
| Authentication | |
| Payment Processing | |
| Media Storage |
π¦ LearnHub-LMS
βββ π client/ # Frontend React Application
β βββ π src/
β β βββ π components/ # Reusable UI Components
β β β βββ π educator/ # Educator-specific components
β β β βββ π student/ # Student-specific components
β β βββ π pages/ # Page Components
β β β βββ π educator/ # Educator pages
β β β βββ π student/ # Student pages
β β βββ π context/ # React Context Providers
β β βββ π assets/ # Static assets
β β βββ π config/ # Configuration files
β βββ π package.json
β βββ π vite.config.js
β
βββ π server/ # Backend Node.js Application
β βββ π controllers/ # Route controllers
β βββ π models/ # Database models
β βββ π routes/ # API routes
β βββ π middlewares/ # Custom middlewares
β βββ π configs/ # Configuration files
β βββ π server.js
β
βββ π README.md
- Node.js (v16 or higher)
- MongoDB
- Supabase account
- Stripe account
- Cloudinary account
-
Clone the repository
git clone https://github.com/engmaryamameen/LearnHub-LMS.git cd LearnHub-LMS -
Install dependencies
# Install frontend dependencies cd client npm install # Install backend dependencies cd ../server npm install
-
Environment Setup
Create
.envfiles in bothclient/andserver/directories:Frontend (.env)
VITE_BACKEND_URL=http://localhost:3000 VITE_SUPABASE_URL=your_supabase_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
Backend (.env)
PORT=3000 MONGODB_URI=your_mongodb_connection_string SUPABASE_URL=your_supabase_url SUPABASE_KEY=your_supabase_service_key STRIPE_SECRET_KEY=your_stripe_secret_key CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret
-
Run the application
# Start backend server cd server npm start # Start frontend development server cd ../client npm run dev
-
Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- Course Creation: Create comprehensive courses with chapters and lectures
- Content Management: Upload course thumbnails and organize content
- Student Analytics: Track enrollment, progress, and engagement
- Revenue Tracking: Monitor earnings and payment status
- YouTube Integration: Add playlist links for additional content
- Course Discovery: Browse and search available courses
- Enrollment System: Easy course enrollment with secure payments
- Progress Tracking: Monitor learning progress and completion
- Video Learning: Stream course content with embedded players
- Personal Dashboard: View enrolled courses and achievements
- Real-time Updates: Live progress tracking and notifications
- Secure Authentication: JWT-based authentication with Supabase
- Payment Processing: Secure payment handling with Stripe
- File Management: Cloud storage for course materials
- Responsive Design: Optimized for desktop, tablet, and mobile
POST /api/user/register- User registrationPOST /api/user/login- User loginGET /api/user/profile- Get user profile
GET /api/course/all- Get all coursesGET /api/course/:id- Get course detailsPOST /api/course/add- Add new course (Educator only)PUT /api/course/:id- Update course (Educator only)
GET /api/user/enrolled-courses- Get user's enrolled coursesPOST /api/user/purchase-course- Purchase a coursePOST /api/user/update-course-progress- Update course progress
GET /api/educator/courses- Get educator's coursesGET /api/educator/dashboard- Get dashboard dataGET /api/educator/enrolled-students- Get enrolled students
cd client
vercel --prodcd server
vercel --prodMake sure to set all required environment variables in your deployment platform.
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow the existing code style
- Add comments for complex logic
- Test your changes thoroughly
- Update documentation if needed
This project is licensed under the MIT License - see the LICENSE file for details.
- React - Frontend framework
- Node.js - Backend runtime
- MongoDB - Database
- Supabase - Authentication
- Stripe - Payment processing
- Tailwind CSS - Styling framework







