Prerequisites
Before you begin, ensure you have:- Node.js 20+ and npm installed
- MongoDB (local or Atlas account)
- Accounts for third-party services:
- Clerk - Authentication
- Stripe - Payments (or Razorpay)
- Cloudinary - Media uploads
- Groq - AI features
Don’t have these accounts yet? You can set them up as you go through the quickstart. Free tiers are available for all services.
Quick start with Docker
The fastest way to get started is with Docker Compose:Configure environment variables
Create environment files for both server and client:Edit
server/.env and client/.env with your API keys. See Configuration for detailed setup instructions.Start with Docker Compose
Docker Compose will automatically pull pre-built images from Docker Hub. The first run may take a few minutes.
Local development setup
For active development, run the services locally:Set up environment variables
Configure both server and client environment files:
Server environment variables (server/.env)
Server environment variables (server/.env)
Client environment variables (client/.env)
Client environment variables (client/.env)
Start MongoDB
If using local MongoDB:Or use MongoDB Atlas and update
MONGODB_URI with your connection string.Start the development servers
Open two terminal windows:Server runs at http://localhost:3000
- Backend
- Frontend
Verify your setup
After starting the application:- Visit the frontend at http://localhost:5173 (or http://localhost with Docker)
- Sign up using Clerk authentication
- Browse courses on the home page
- Test AI features by opening the chat assistant
Configure integrations
Set up Clerk, Stripe, Cloudinary, and Groq
Deployment guide
Deploy to production with Docker
Project structure
Understand the codebase architecture
API reference
Explore the REST API endpoints
Troubleshooting
MongoDB connection failed
MongoDB connection failed
Ensure MongoDB is running:If using Atlas, verify your connection string includes the correct password and IP whitelist.
Clerk authentication not working
Clerk authentication not working
- Verify
CLERK_PUBLISHABLE_KEYmatches in both server and client.env - Check that your frontend URL is added to Clerk’s allowed origins
- Ensure webhooks are configured in Clerk dashboard
Payment webhooks failing
Payment webhooks failing
For local development, use ngrok to expose your webhook endpoint:Then update your webhook URL in Stripe/Razorpay dashboard to the ngrok URL.
AI features not responding
AI features not responding
- Verify
GROQ_CHATBOT_API_KEYis set correctly - Check rate limits on your Groq account
- Ensure the model name is
llama-3.3-70b-versatile
Next steps
Explore features
Learn about course management, AI features, and community tools.
Become an educator
Apply to create courses through the educator application process.
Customize the platform
Review the project structure and contributing guidelines.