64 lines
1.1 KiB
Markdown
64 lines
1.1 KiB
Markdown
# Local Development
|
|
|
|
## Prerequisites
|
|
- Node.js >= 18
|
|
- pnpm >= 8
|
|
|
|
## Setup
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone <repo>
|
|
cd kooltab
|
|
|
|
# Install dependencies
|
|
pnpm install
|
|
|
|
# Copy environment variables
|
|
cp .env.example apps/api/.env
|
|
|
|
# Generate Prisma client
|
|
cd apps/api
|
|
pnpm db:generate
|
|
|
|
# Run migrations
|
|
pnpm db:migrate
|
|
|
|
# Seed demo data
|
|
pnpm db:seed
|
|
cd ../..
|
|
```
|
|
|
|
## Running
|
|
|
|
```bash
|
|
# Start both API and Dashboard
|
|
pnpm dev
|
|
```
|
|
|
|
Or individually:
|
|
```bash
|
|
cd apps/api && pnpm dev
|
|
cd apps/dashboard && pnpm dev
|
|
```
|
|
|
|
## Database Commands
|
|
|
|
```bash
|
|
pnpm db:generate # Generate Prisma client
|
|
pnpm db:migrate # Run migrations
|
|
pnpm db:seed # Seed demo data
|
|
pnpm db:reset # Reset database and re-seed
|
|
```
|
|
|
|
## Environment Variables
|
|
|
|
### API (`apps/api/.env`)
|
|
- `DATABASE_URL` - SQLite path (default: `file:./dev.db`)
|
|
- `JWT_SECRET` - JWT signing secret
|
|
- `JWT_REFRESH_SECRET` - Refresh token secret
|
|
- `PORT` - API port (default: 3001)
|
|
- `CORS_ORIGIN` - Allowed CORS origin (default: http://localhost:3000)
|
|
|
|
### Dashboard
|
|
- `NEXT_PUBLIC_API_URL` - API base URL (default: http://localhost:3001/api/v1) |