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

git clone https://github.com/pv-pushkarverma/SkillRise.git
cd SkillRise
2

Configure environment variables

Create environment files for both server and client:
# Copy example files
cp server/.env.example server/.env
cp client/.env.example client/.env
Edit server/.env and client/.env with your API keys. See Configuration for detailed setup instructions.
3

Start with Docker Compose

docker compose up --build
Your application will be available at:
4

Seed the database (optional)

Populate with sample data:
docker compose exec server node seed.js
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

git clone https://github.com/pv-pushkarverma/SkillRise.git
cd SkillRise

# Install server dependencies
cd server && npm install

# Install client dependencies
cd ../client && npm install
2

Set up environment variables

Configure both server and client environment files:
MONGODB_URI=mongodb://localhost:27017/skillrise
CURRENCY=INR

CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
CLERK_WEBHOOK_SECRET=whsec_...

CLOUDINARY_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_SECRET_KEY=your_api_secret

STRIPE_PUBLISHABLE_KEY=pk_test_...
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...

GROQ_CHATBOT_API_KEY=gsk_...
GROQ_MODEL=llama-3.3-70b-versatile
VITE_CLERK_PUBLISHABLE_KEY=pk_test_...
VITE_STRIPE_PUBLISHABLE_KEY=pk_test_...
VITE_BACKEND_URL=http://localhost:3000
3

Start MongoDB

If using local MongoDB:
brew services start mongodb-community
Or use MongoDB Atlas and update MONGODB_URI with your connection string.
4

Start the development servers

Open two terminal windows:
cd server
npm run server
Server runs at http://localhost:3000
5

Seed sample data

In a third terminal:
cd server
npm run seed
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

Troubleshooting

Ensure MongoDB is running:
# Check if MongoDB is running
mongo --eval "db.version()"
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:
ngrok http 3000
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