No description
| data | ||
| public | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| env.example | ||
| package.json | ||
| README.md | ||
| server.js | ||
Birthday Booking Portal
A simple, mobile-friendly booking portal for vacation house bed reservations.
Quick Start
-
Copy
env.exampleto.envand configure your trip dates:cp env.example .env -
Edit
.envwith your trip details:TRIP_START=2026-03-13 TRIP_END=2026-03-16 SITE_TITLE=Your Party Name ADMIN_PATH=your-secret-admin-path -
Add room images to
public/images/(optional but nice) -
Run with Docker:
docker-compose up -d -
Visit
http://localhost:3000 -
Admin panel at
http://localhost:3000/your-secret-admin-path
Development (without Docker)
If running in the node toolbox:
npm install
cp env.example .env
npm run dev
Room Configuration
Edit data/rooms.json to customize rooms and beds. Each room has:
id: unique identifiername: display nameblurb: short descriptionimages: array of paths to images in/images/overflow: if true, room is deprioritized in suggestionsbeds: array of beds withidandtype(single/double)
Note: Room configuration (rooms.json) is tracked in git, while user data (userdata.json - bookings, guests, bulletin board) is gitignored and created automatically on first run.
Features
- Browser fingerprint + name-based guest registration
- Smart bed suggestions prioritizing room continuity
- Couple mode prefers double beds, solo prefers singles
- Overflow rooms used only when others are full
- Cork board-style bulletin board for ride coordination
- Mobile-optimized, sharp-cornered aesthetic
- Admin overview with guest lists and room occupancy