1.4 KiB
1.4 KiB
🏄 Cabo Bachelor Party Voting App
Real-time group voting for the bachelor party — hotels, golf, nightlife, excursions, and full itineraries.
Quick Start
cd cabo-voting-app
npm install
node server.js
# → http://localhost:3001
Features
- Real-time WebSocket voting — all clients update instantly
- 5 categories — Hotels, Golf, Nightlife, Excursions, Full Itineraries
- Budget planner tab — quick compare for 8, 10, and 12 guys across Budget, Balanced, and Splurge tracks
- Add suggestions — anyone can propose new venues
- Admin approval — pending options require approval before going live
- Responsive — works on desktop and mobile
Data
Votes are stored in data/votes.json (created on first run). Edit directly or use the admin panel.
System seed data auto-refreshes researched package options and budget scenarios while preserving existing votes and user-added options.
For hosted deployments, set DATA_DIR or DATA_FILE so mutable vote data lives outside the Git checkout.
Deployment
The app can run directly under systemd with:
PORT=3021 DATA_DIR=/srv/state/cabo-voting node server.js
Traefik can then reverse proxy to the chosen host port.
See Gitea Issues for the UI/UX roadmap.
Tech Stack
- Node.js + Express
- WebSocket (ws)
- Vanilla JS frontend (no framework)
- No database — JSON file persistence