A modern, full-stack e-learning platform built with the MERN stack. Empowering educators to create dynamic courses and students to learn seamlessly.
- Secure Authentication: Traditional Email/Password or 1-Click Google OAuth (Firebase).
- Course Discovery: Browse, search, and enroll in published courses.
- Interactive Learning: Watch video lectures seamlessly.
- Reviews & Ratings: Share your feedback on courses you've taken.
- Course Management: Create, edit, publish, and delete courses.
- Lecture Management: Upload lecture videos securely to Cloudinary.
- Dashboard: Track your created courses and content.
- Robust Security: JWT-based authentication stored in HTTP-only cookies with secure cross-origin support.
- Optimized Storage: Automated asset cleanup on Cloudinary to prevent storage bloat.
- State Management: Redux Toolkit for predictable state containers.
- Containerized: Fully Dockerized for instant local development.
- Framework: React 19 + Vite
- Styling: Tailwind CSS
- State Management: Redux Toolkit
- Routing: React Router DOM
- Authentication: Firebase (Google OAuth)
- Runtime: Node.js + Express.js
- Database: MongoDB with Mongoose
- Storage: Cloudinary (for videos and thumbnails)
- Security: bcryptjs, jsonwebtoken
The easiest way to run the application locally is using Docker.
- Docker & Docker Compose installed
- MongoDB URI
- Cloudinary Account
- Firebase Project (for Google Auth)
-
Clone the repository
git clone https://github.com/Official-Vinit/ThoughtCamp.git cd ThoughtCamp -
Environment Variables Create a
.envfile in thebackend/directory:PORT=8000 MONGODB_URI=your_mongodb_connection_string FRONTEND_URL=http://localhost:5173 NODE_ENV=development # Cloudinary Keys CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret # JWT JWT_SECRET=your_random_jwt_secret
-
Start the containers
docker-compose up --build
-
Access the application
- Frontend:
http://localhost:5173 - Backend API:
http://localhost:8000
- Frontend:
If you prefer to run the application without Docker:
cd backend
npm install
npm run devcd frontend
npm install
npm run devThis project is optimized for deployment on standard cloud providers:
- Frontend: Designed for Vercel. Ensures SPA routing fallback is handled.
- Backend: Designed for Render. Ensure
NODE_ENV=productionis set so cross-origin cookies work properly.
This project is licensed under the ISC License.