# Marketplace Project Notes

## Database: PostgreSQL via Docker

Container name: `marketplace-postgres`
Image: `postgres:17-alpine`
Volume: `marketplace-pgdata` (persistent local data)

### Start database
```bash
docker start marketplace-postgres
```

### Stop database (frees memory)
```bash
docker stop marketplace-postgres
```

### Check status
```bash
docker ps -f name=marketplace-postgres
```

### Connection string
```
postgresql://marketplace:marketplace_dev@localhost:5432/marketplace
```

### If container was deleted, recreate:
```bash
docker run -d \
  --name marketplace-postgres \
  -e POSTGRES_USER=marketplace \
  -e POSTGRES_PASSWORD=marketplace_dev \
  -e POSTGRES_DB=marketplace \
  -p 5432:5432 \
  -v marketplace-pgdata:/var/lib/postgresql/data \
  --restart unless-stopped \
  postgres:17-alpine
```

Data persists in the `marketplace-pgdata` Docker volume even if the container is removed.

## Running the app

1. Start database: `docker start marketplace-postgres`
2. Server: `npm run dev:server` (port 3000)
3. Client: `npm run dev:client` (port 5173)
4. Or both: `npm run dev`

## Seed data

```bash
cd server && npx tsx prisma/seed.ts
```

Test users (all password: `password123`):
- alice.chen@example.com
- bob.smith@example.com
- carol.jones@example.com
- david.wilson@example.com
- eva.martinez@example.com

## Key env vars (server/.env)

- `DATABASE_URL` — PostgreSQL connection
- `GOOGLE_MAPS_API_KEY` — Location autocomplete
- `STRIPE_SECRET_KEY` / `STRIPE_PUBLISHABLE_KEY` — Payments (optional for dev)
