Initial release: collaborative trip planner

Multi-user trip planning web app in a single Docker container. Mullvad-style token accounts, trip sharing via join codes, day-by-day calendar with typed entries (activity, hotel, travel, flight, rental car, immigration, note), multi-leg flight segments with bundled IATA airport dataset, Leaflet/OSM map with per-leg great-circle km (air vs ground), rough km-driven vs rental included-km comparison, cost splitting with settle-up suggestions, flip-clock departure countdown. Node 20 + Express + SQLite (WAL, additive migrations), vanilla JS SPA, 44 API tests.
This commit is contained in:
2026-07-18 23:15:29 +07:00
commit fe89bb2b1c
54 changed files with 8565 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
services:
tripplan:
build: .
ports:
- "3000:3000"
volumes:
# SQLite database persists on the host across container rebuilds.
- ./data:/app/data
environment:
# CHANGE THIS: set a long random string before exposing the app.
# e.g. `openssl rand -hex 32`
SESSION_SECRET: "change-me-to-a-long-random-secret"
restart: unless-stopped