- SellItemPage: real file upload + API listing creation + activate - CreateProfilePage: save profile via PUT /users/profile - ProductDetailPage: wire edit/delete/message buttons, show edit for owner - ListingCard: persist favorites via API, show real images - Footer: connect newsletter subscribe to API - Router: add /dashboard/listings and /dashboard/saved routes - Backend: add GET /listings/favorites endpoint - New pages: MyListingsPage, SavedItemsPage - Fix unused imports causing build failures Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.5 KiB
1.5 KiB
Marketplace Project Notes
Database: PostgreSQL via Docker
Container name: marketplace-postgres
Image: postgres:17-alpine
Volume: marketplace-pgdata (persistent local data)
Start database
docker start marketplace-postgres
Stop database (frees memory)
docker stop marketplace-postgres
Check status
docker ps -f name=marketplace-postgres
Connection string
postgresql://marketplace:marketplace_dev@localhost:5432/marketplace
If container was deleted, recreate:
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
- Start database:
docker start marketplace-postgres - Server:
npm run dev:server(port 3000) - Client:
npm run dev:client(port 5173) - Or both:
npm run dev
Seed data
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 connectionGOOGLE_MAPS_API_KEY— Location autocompleteSTRIPE_SECRET_KEY/STRIPE_PUBLISHABLE_KEY— Payments (optional for dev)