Commit Graph

46 Commits

Author SHA1 Message Date
TopherMayor
d5a7e85417 Add inline admin option editor 2026-04-30 22:43:09 -07:00
TopherMayor
1e36d45976 Add editable option approval flow 2026-04-30 22:39:51 -07:00
TopherMayor
1674930435 Surface flight search shortcuts 2026-04-30 21:29:10 -07:00
TopherMayor
86733522eb Add explicit flight origin selector 2026-04-30 21:21:06 -07:00
TopherMayor
16a0252647 Tighten flight search links 2026-04-30 21:18:46 -07:00
TopherMayor
b768990e05 Expand flight search coverage 2026-04-30 21:17:48 -07:00
TopherMayor
bee992e10b Update cabo price watch snapshot 2026-04-30 21:15:54 -07:00
TopherMayor
7d139fead9 Refresh Cabo automation snapshot 2026-04-30 20:57:37 -07:00
TopherMayor
538de0039c Switch budget tab to attendee dropdown 2026-04-30 20:34:33 -07:00
TopherMayor
1e0a072231 Make budget tab scale with roster size 2026-04-30 20:26:49 -07:00
TopherMayor
bdd2e5968f Add guest auth for Cabo voters 2026-04-30 19:58:22 -07:00
TopherMayor
e5079cbce4 Update Cabo price watch with live flight data 2026-04-30 19:22:29 -07:00
8685527155 [ice] admin PIN: 1584 (Chris) 2026-04-30 18:22:23 -07:00
cf13c71132 [ice] add PIN auth: 2-step name+last4 login gate against groomsmen list 2026-04-30 18:21:03 -07:00
1926839a4b [ice] budget tab: dynamic live prices from details, hide options without scraped data 2026-04-30 18:12:27 -07:00
accf9a57f6 feat: add BudgetTab with live vote-driven cost calculation
- BudgetTab shows current leaders per category (hotel/golf/nightlife/excursion)
- Dominant tier (budget/balanced/splurge) auto-detected from votes
- Per-person and group totals for 8/10/12 guy scenarios
- Built on seed data pricing signals for accuracy
2026-04-30 17:46:40 -07:00
TopherMayor
ad6c89f68d fix: replace blocked comfort inn link 2026-04-30 13:24:52 -07:00
TopherMayor
bcd80f3795 fix: route option links to detail pages 2026-04-30 12:26:22 -07:00
TopherMayor
4a83abf05e fix: display numeric tracked prices 2026-04-30 12:15:43 -07:00
TopherMayor
3e0a462431 fix: calculate stay totals 2026-04-30 12:07:45 -07:00
TopherMayor
071a18e4a4 fix: keep source selector stable 2026-04-30 12:03:35 -07:00
TopherMayor
106270117d fix: parse gathered price labels 2026-04-30 11:59:21 -07:00
TopherMayor
a3b8e9a4b0 feat: expand price automation contract 2026-04-30 11:53:18 -07:00
TopherMayor
4ad51ed2c6 feat: require vote confirmation 2026-04-30 11:28:33 -07:00
TopherMayor
8726eb7cf9 feat: add option sort dropdown 2026-04-30 11:25:10 -07:00
TopherMayor
3ee4fb7914 fix: keep option cards in stable order 2026-04-30 11:23:49 -07:00
TopherMayor
bdc0a5d8e6 feat: track prices by source 2026-04-30 11:21:06 -07:00
TopherMayor
81c82949f0 feat: add date-matched hotel listings 2026-04-30 11:16:39 -07:00
TopherMayor
c17e97b46f fix: deploy tracked price history 2026-04-30 11:12:03 -07:00
TopherMayor
09982c2d9c fix: alias source-prefixed price history keys 2026-04-30 11:10:21 -07:00
TopherMayor
b7a4386e00 feat: surface automation option details 2026-04-30 11:07:26 -07:00
TopherMayor
899c9cb30b feat: add price history support 2026-04-30 10:52:21 -07:00
TopherMayor
516bcd0a44 feat: support external runtime state for hosting 2026-04-29 22:19:10 -07:00
TopherMayor
8f31b80647 feat: add cabo package planning and price watch assets 2026-04-29 21:29:20 -07:00
Hermes Agent
88ee723981 [cabo-voting-app] Multi-provider map search: Yelp/OSM/All tabs + quick-book aggregators + legend update 2026-04-29 11:05:16 -07:00
47acadc88c Add Yelp Fusion API proxy endpoint for dynamic map search 2026-04-29 15:43:40 +00:00
0d01b83af6 Map: independent category toggles + Yelp dynamic search with dashed markers 2026-04-29 15:43:32 +00:00
e7fa88567a Add unified Map tab with Leaflet, CARTO dark tiles, live vote counts, and venue search 2026-04-29 14:57:04 +00:00
f47dac1e41 Add Cabo map tab with Leaflet integration and lat/lng seed data 2026-04-29 14:56:57 +00:00
39b9277236 [ice] session persistence: skip name modal when voter already stored in localStorage 2026-04-28 21:51:56 -07:00
bc18555432 [#11] WebSocket reconnection with exponential backoff + offline vote queue
- Exponential backoff: 1s → 2s → 4s → … → 30s max
- Full-screen overlay when disconnected (spinner + message)
- Votes cast offline are queued and replayed on reconnect
- Deduplicated queue: same voter+option only queued once
- ✓ Reconnected toast on successful reconnect
2026-04-28 21:43:58 -07:00
a6e07258c6 [#6] Add admin panel at /admin
- Password-protected (cabo2026) admin page
- View/approve/reject pending options
- Delete any option
- Toggle polls open/closed
- Live stats: voters, options, votes, pending count
- Add DELETE /api/options/:id endpoint
- Add option_deleted WebSocket broadcast
2026-04-28 21:42:41 -07:00
6f4167e7ab [#5] Add results leaderboard tab
- 6th tab (🏆 Results) shows ranked results across all categories
- Medal icons 🥇🥈🥉 for top 3 per category
- Percentage bars with category colors
- Accessible without voter name via ?view=results URL
- Shareable link: no modal, shows live results
2026-04-28 21:40:54 -07:00
3a3ff55893 [#1+#7] Mobile-first redesign + accessibility
- Bottom tab bar on mobile (≤640px), top tabs on desktop
- Name modal → bottom sheet on mobile with drag handle
- Larger tap targets (72px cards, 44px touch areas)
- Arrow hint (›) on clickable option cards
- Touch feedback with :active scale animation
- ARIA roles: tablist/tab/tabpanel, aria-selected, aria-live=polite
- Keyboard: Arrow keys navigate tabs, 1-5 number keys switch tabs
- Skip-to-content link for screen readers
- Visible :focus-visible ring
- Desktop body padding reset for bottom tabs
2026-04-28 21:37:46 -07:00
ee1f4d93ce Add README with quick start and roadmap link 2026-04-29 03:56:16 +00:00
6ed5f360ac Initial commit: Cabo Bachelor Party voting app
- Node.js/Express + WebSocket real-time voting
- Hotel, Golf, Nightlife, Excursion, Itinerary categories
- Seed data with 20+ Cabo venues and 3 itineraries
- Gitea issues: #1-16 for UI/UX improvements
2026-04-28 20:55:42 -07:00