Skip to main content
Skillhouse is a monorepo containing two independent applications: Backend/ (Express + Node.js) and Frontend/ (React + Vite). You run them as separate processes.

Prerequisites

Before you begin, make sure the following are installed and running:
  • Node.js 18+ — required by both applications
  • MongoDB — the Backend connects on startup; the process exits if the connection fails
  • Redis — used for OTP storage and session management; defaults to 127.0.0.1:6379
  • Git

Setup

1

Clone the repository

git clone https://github.com/omchaudhary007/SkillHouse.git
cd SkillHouse
2

Install Backend dependencies

cd Backend
npm install
3

Install Frontend dependencies

Open a second terminal and run:
cd Frontend
npm install
4

Configure environment variables

Create a .env file in each application directory. See Environment variables for the full list of required variables and example values.
# Backend/.env
PORT=3000
MONGODB_URL=mongodb://localhost:27017/skillhouse
JWT_SECRET=...
REFRESH_SECRET=...
CLIENT_URL=http://localhost:5173
# ... (see environment variables page for all required vars)
# Frontend/.env
VITE_API_URL=http://localhost:3000
VITE_STRIPE_PUBLISHABLE_KEY=pk_test_...
VITE_GOOGLE_CLIENT_ID=...
5

Start MongoDB and Redis

Make sure both services are running before starting the Backend.
brew services start mongodb-community
brew services start redis
6

Start the Backend dev server

From the Backend/ directory:
npm run dev
The server starts with nodemon and reloads on file changes. You should see:
Server running on http://localhost:3000
MongoDB connected
Connected to Redis
7

Start the Frontend dev server

From the Frontend/ directory:
npm run dev
Vite starts the development server at http://localhost:5173 by default.
Run the Backend and Frontend dev servers in separate terminal windows or tabs so you can see logs from both simultaneously.

Access the app

Once both servers are running, open your browser to:
ServiceURL
Frontendhttp://localhost:5173
Backend APIhttp://localhost:3000/api

Production build

To build and run both applications in production mode:
1

Build the Backend

cd Backend
npm run build
npm start
npm run build compiles TypeScript to dist/. npm start runs the compiled output with node dist/index.js.
2

Build the Frontend

cd Frontend
npm run build
npm run build runs tsc -b && vite build and outputs static files to dist/. Serve this directory with any static host (e.g. Vercel, Nginx).
The Frontend includes a vercel.json with a catch-all rewrite rule so that React Router handles client-side navigation correctly when deployed to Vercel.

Build docs developers (and LLMs) love