Skip to main content
Get your SkillRise e-learning platform running locally or with Docker in just a few steps.

Prerequisites

Before you begin, ensure you have:
  • Node.js 20+ and npm installed
  • MongoDB (local or Atlas account)
  • Accounts for third-party services:
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:
1

Clone the repository

2

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.
3

Start with Docker Compose

Your application will be available at:
4

Seed the database (optional)

Populate with sample data:
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:
1

Clone and install dependencies

2

Set up environment variables

Configure both server and client environment files:
3

Start MongoDB

If using local MongoDB:
Or use MongoDB Atlas and update MONGODB_URI with your connection string.
4

Start the development servers

Open two terminal windows:
Server runs at http://localhost:3000
5

Seed sample data

In a third terminal:
This creates sample courses, users, and community content.

Verify your setup

After starting the application:
  1. Visit the frontend at http://localhost:5173 (or http://localhost with Docker)
  2. Sign up using Clerk authentication
  3. Browse courses on the home page
  4. 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

Ensure MongoDB is running:
If using Atlas, verify your connection string includes the correct password and IP whitelist.
  1. Verify CLERK_PUBLISHABLE_KEY matches in both server and client .env
  2. Check that your frontend URL is added to Clerk’s allowed origins
  3. Ensure webhooks are configured in Clerk dashboard
For local development, use ngrok to expose your webhook endpoint:
Then update your webhook URL in Stripe/Razorpay dashboard to the ngrok URL.
  1. Verify GROQ_CHATBOT_API_KEY is set correctly
  2. Check rate limits on your Groq account
  3. Ensure the model name is llama-3.3-70b-versatile

Next steps

1

Explore features

2

Become an educator

Apply to create courses through the educator application process.
3

Customize the platform