BookClub is a textbook exchange app originally built as a capstone project. The old Angular/Cordova frontend and provided database dependency have been replaced with a modern React client plus a local Express/Prisma API.
- Modern React/Vite/TypeScript client in
client/. - Local Express API in
server/. - Prisma schema with a SQLite development database.
- Seed data for demo users and textbook listings.
- Login, registration, search, book detail, dashboard, listing management, and profile editing.
Install client dependencies:
cd client
npm install
cp .env.example .envInstall backend dependencies:
cd server
npm install
cp .env.example .env
npm run db:push
npm run db:seed
npm run devIn another terminal, start the React client:
cd client
npm run devThe client runs at http://127.0.0.1:5173 and expects the API at http://localhost:4000. Override the API URL with VITE_API_URL if needed.
Each seeded user uses the password password123.
alice@example.eduben@example.edumaya@example.edu
- Add API and frontend tests for the main workflows.
- Add image upload instead of image URL entry.
- Improve messaging/contact flows between buyers and sellers.
- Add Capacitor after the web app is stable if mobile app packaging is still desired.
- Move SQLite to Postgres for deployed production use.