A simple web app for managing alcohol bottle stock, daily sales, and returns.
- Frontend: React (Vite), React Router
- Backend: Node.js, Express
- Database: SQLite (file:
server/data/bluewave.db)
# Install dependencies (root + server + client)
npm run install:all
# Or manually:
cd server && npm install
cd ../client && npm installTerminal 1 — API (port 3001):
npm run serverTerminal 2 — Frontend (port 5173):
npm run clientOpen http://localhost:5173. The app proxies /api to the backend.
npm run build
npm run startThe server serves the API and the built React app from client/dist on the same port when client/dist exists.
Deploy to the cloud with a free public URL and auto-updates on every push. See DEPLOY.md for step-by-step instructions using Render.com:
- Push the repo to GitHub
- Connect the repo to Render (New Web Service)
- Get a URL like
https://bluewave-stock.onrender.com - Every push to
maintriggers a new deploy
The repo includes render.yaml so Render can use the correct build and start commands. On Render’s free tier, the SQLite database is ephemeral (data resets on deploy/restart); To retain data, add a Render Persistent Disk and set DATA_DIR=/data; see DEPLOY.md § Retain data.
- Brands: Add/edit/delete alcohol brands (name, category).
- Stock: View and adjust bottle count per brand (add/remove or set exact).
- Daily Sales: Record bottles sold per brand per day; view and edit by date.
- Returns: Record bottles returned per brand per day.
- Dashboard: Summary for a selected date (bottles sold, returns, total stock) and last 14 days sales.