E-Learning Platform is a modern and scalable online education system built on top of the MERN stack. It provides seamless access to learning materials, video summaries using AI transcription, and a structured role-based dashboard for students and teachers. Secure authentication, payment integration, and cloud-based media storage enhance the user experience.
✅ AI-Powered Transcription & Summarization (Assembly AI API) 🧠
✅ Role-Based Dashboards (Students & Teachers) 📊
✅ Secure Authentication (Google OAuth via Firebase) 🔐
✅ Video & Image Storage (Cloudinary) 📁
✅ Payment Integration (Stripe) 💳
✅ Responsive & Modern UI (Tailwind CSS + ShadCN + Flowbite Components) 🎨
✅ Smooth Navigation & User Experience 🔄
- Frontend: React.js, Tailwind CSS, ShadCN, Flowbite Components
- Backend: Node.js, Express.js, MongoDB
- Authentication: Firebase (Google OAuth)
- Payment: Stripe API
- AI Integration: Assembly AI (Speech-to-Text Summarization)
- Media Storage: Cloudinary
- Deployment: Vercel (Frontend), Render (Backend)
E-LEARNING_PLATFORM/
├── client/ # Frontend with React
│ ├── public/ # Static assets
│ ├── src/ # Components & pages
│ ├── .env # Frontend environment variables
│ ├── package.json # Frontend dependencies
│ └── vite.config.js
├── server/ # Backend with Express & MongoDB
│ ├── config/ # Configuration files
│ ├── models/ # Database models (MongoDB)
│ ├── routes/ # API routes (Video, Auth, Payment, etc.)
│ ├── controllers/ # Request handling logic
│ ├── .env # Backend environment variables
│ ├── package.json # Backend dependencies
│ └── app.js # Main server file
├── README.md # Project documentation
└── LICENSE # Project license
To run this project locally, follow these steps:
git clone https://github.com/yourusername/e-learning-platform.git
cd e-learning-platform
cd client
npm install
cd ../server
npm install
Create a .env
file in both client/
and server/
directories with the necessary variables.
PORT=5000
MONGO_URI=your_mongodb_connection_url
FIREBASE_API_KEY=your_firebase_api_key
STRIPE_SECRET_KEY=your_stripe_secret_key
CLOUDINARY_CLOUD_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
ASSEMBLY_AI_API_KEY=your_assembly_ai_api_key
FRONTEND_URL=http://localhost:5173
VITE_PUBLIC_URL=your_backend_api_url
VITE_FIREBASE_API_KEY=your_firebase_api_key
VITE_STRIPE_PUBLIC_KEY=your_stripe_public_key
VITE_CLOUDINARY_URL=your_cloudinary_upload_url
cd server
npm run dev
cd ../client
npm run dev
🌐 App will run at: http://localhost:5173
- Push the latest code to GitHub.
- Connect the repository to Vercel.
- Set the root directory to
client/
. - Configure:
- Framework: Vite
- Build Command:
npm run build
- Output Directory:
dist
- Add environment variables
- Click Deploy.
- Push the latest code to GitHub.
- Create a new web service in Render.
- Set the root directory to
server/
. - Configure:
- Start Command:
npm start
- Environment Variables: Paste from
.env
- Start Command:
- Click Deploy.
Want to contribute? Follow these steps:
- Fork the repository.
- Clone it:
git clone https://github.com/yourusername/e-learning-platform.git
- Create a new branch:
git checkout -b feature-xyz
- Commit changes:
git commit -m "Added XYZ feature"
- Push to your branch:
git push origin feature-xyz
- Open a Pull Request 🚀
This project is licensed under the MIT License.
🔹 Backend development by Sarah Maheen 💻
🔹 Frontend development by Batchmate 🎨