Busflow Docs

Internal documentation portal

Skip to content

Demo Loop β€” Exact Flow & Complete Feature Map ​

One-Liner: "Watch a hotel PDF become a bookable tour, a passenger buy a ticket from their couch, and a driver board them in an Alpine valley with no WiFi β€” all without leaving one platform."

Format: ~6 min interactive prototype, real backend, pre-seeded data. Audience: Bus tour operator (GF / Disponent). First contact. Mood: SouverΓ€n β€” calm, confident, zero feature dumping.


The Loop: 7 Scenes ​

SCENE 0 β€” THE HOOK (30s)
  Branded intro. "30 Stunden Abtippen β†’ 3 Sekunden."

SCENE 1 β€” MAGIC UPLOAD (90s)                        [.theme-dispatcher]
  PDF drag β†’ AI extracts β†’ split-screen review β†’ approve
  β†’ assign vehicle + driver β†’ publish β†’ the system generates a booking link πŸŽ‰

SCENE 2 β€” DISPATCH BOARD (60s)                       [.theme-dispatcher]
  Gantt overview β†’ drag Klaus onto tour β†’ βœ… Compliance OK
  β†’ drag Thomas β†’ πŸ”΄ "Im Urlaub" β†’ can't drop
  β†’ capacity badge fills: 0/49 β†’ 47/49

SCENE 3 β€” BOOKING WIDGET + SEAT MAP (90s)            [.theme-passenger]
  ✨ Theme shift ✨ β†’ warm, boutique passenger view
  Tour landing β†’ visual seat map β†’ pick seat 14
  β†’ toggle Weinprobe upsell β†’ Apple Pay β†’ Wallet pass

SCENE 4 β€” DRIVER HUB (60s)                           [.theme-driver]
  ✨ Theme shift ✨ β†’ dark, rugged, oversized targets
  Daily assignment β†’ passenger manifest β†’ QR scan
  β†’ green checkmark β†’ "Offline-Modus aktiv" badge

SCENE 5 β€” CRISIS FLOW (45s)                          [.theme-dispatcher]
  ServiceLeg flashes red β†’ "Stau A13, ETA +45 min"
  β†’ AI-drafted WhatsApp β†’ one-click send
  β†’ Wallet pass departure time updates live

SCENE 6 β€” THE BRIDGE (30s)
  "Den Umstieg machen wir fΓΌr Sie."
  Concierge onboarding visual β†’ "Pilotprojekt starten β†’"

Key Demo Beats ​

BeatWhat Makes It MagicMood Phase
PDF β†’ Tour in 3s"The system understands my workflow"Recognition
Compliance βœ…/πŸ”΄ badges"It catches mistakes silently"Trust
.theme-passenger shift"This is a platform, not an app"Flow
Seat map + Apple Pay"My customers would book at midnight"Delight
Offline QR scan"My drivers would actually use this"Trust
AI crisis broadcast"It handles crises before I call"Trust
Break-even badge (47/49)"I see my business in real-time"Confidence

Feature Map β€” What Must Be Built ​

Legend ​

IconMeaning
βœ…Spec exists, ready to code
🟑Schema exists, needs L3 spec (API, state machine, edge states)
πŸ”΄Needs new spec from scratch
πŸ”§Infrastructure / glue
πŸ’…Frontend build

Scene 0 β€” The Hook ​

No features needed β€” branded slide or intro animation.


Scene 1 β€” Magic Upload (Backoffice) ​

FeatureAppStatusNotes
Dropzone (drag & drop)workspaceπŸ”΄
PDF processing animationworkspaceπŸ”΄3s loading, subtle
Split-screen review (PDF + form)workspaceπŸ”΄Left: original PDF. Right: extracted data
TourTemplate form (title, dates, stops, pricing)workspaceπŸ”΄ πŸ’…
Vehicle selector (with seat map preview)workspaceπŸ”΄ πŸ’…
Crew selector dropdownworkspaceπŸ”΄ πŸ’…
Publish action + booking link displayworkspaceπŸ”΄ πŸ’…
Confetti micro-animationui-coreπŸ”΄
Mock AI extraction (n8n + LLM pipeline)api / n8nπŸ”΄Pre-seeded output for demo PDF. Real pipeline later.

Supporting (indirect):

FeatureStatusWhy Needed
App Shell / navigation🟑MainLayout.vue skeleton exists, needs build-out
Theme .theme-dispatcher wiring🟑Tokens defined, needs CSS scope activation
Tenant provisioning + Nhost Authβœ…ADR-003, ADR-005
TourDeparture + BoardingPoint CRUDβœ…Fully spec'd
Vehicle + CrewMember CRUDβœ…Fully spec'd
Supplier CRUD (for Β§ 25 demo)βœ…Needed for Fremdleistung proof
Hasura Backoffice schema + permissionsβœ…
Demo seed data (PDF, tour, vehicles, crew)πŸ”΄See Seed Scenario

Scene 2 β€” Dispatch Board (Backoffice) ​

FeatureAppStatusNotes
Gantt timeline (resource rows, blocks, zoom)workspaceπŸ”΄ πŸ’…3 vehicles, 4 crew, ~5 blocks
Resource panel (vehicles + crew, grouped)workspaceπŸ”΄ πŸ’…
Drag-and-drop assignmentworkspaceπŸ”΄ πŸ’…
Compliance Copilot badge (βœ… green / πŸ”΄ red)workspaceπŸ”΄ πŸ’…"Lenkzeit OK Β· Modul 95 gΓΌltig"
Conflict modal (red block + reason)workspaceπŸ”΄ πŸ’…"Thomas is on vacation"
Capacity badge on blocksworkspaceπŸ”΄ πŸ’…0/49 β†’ 47/49

Supporting:

FeatureStatusWhy Needed
Dispatch Availability Engineβœ…dispatch-availability-engine.md
Crew Qualification Protocolβœ…crew-qualification-protocol.md
CrewAbsence data + renderingπŸ”΄Leave records for Thomas conflict demo
Qualification data renderingπŸ”΄Module 95, visa check display

Scene 3 β€” Booking Widget + Seat Map (Commerce) ​

FeatureAppStatusNotes
Tour landing page (hero, dates, pricing)booking-widgetπŸ”΄ πŸ’…Consumer-grade design
Interactive seat map (select, highlight, hold)booking-widgetπŸ”΄ πŸ’…From Vehicle.seat_map_layout JSONB
Boarding point selector (Zustiegsstelle)booking-widgetπŸ”΄ πŸ’…
Upsell toggle cards (Weinprobe)booking-widgetπŸ”΄ πŸ’…
Checkout flow (passenger form, payment)booking-widgetπŸ”΄ πŸ’…
Mollie payment (Apple Pay / Klarna)booking-widget + apiπŸ”΄Mollie test mode, real integration
Confirmation screenbooking-widgetπŸ”΄ πŸ’…
Wallet Pass preview (Apple Wallet card)booking-widgetπŸ”΄ πŸ’…
WhatsApp booking confirmationn8nπŸ”΄n8n workflow β†’ WhatsApp Business API

Supporting:

FeatureStatusWhy Needed
Theme .theme-passenger wiring🟑Warm palette, serif headings. Transition IS a demo beat.
Booking State Machine (XState)🟑DRAFT β†’ PENDING_PAYMENT β†’ DEPOSIT_PAID β†’ FULLY_PAID. Schema exists, needs L3 spec.
CheckoutSession lifecycle🟑Creation, TTL, conversion to Booking. Schema exists, needs L3.
SeatReservation hold + expiry🟑HELD β†’ CONFIRMED β†’ RELEASED. Schema + unique index exist, needs L3.
TripPublished event + consumerπŸ”΄Creates TourOffering + PickupOptions from Backoffice event
PriceMatrixPublished consumerβœ…Upserts tour_offering_prices. Contract spec'd.
Mollie OAuth + sub-account provisioningπŸ”΄Per-tenant marketplace splits
Commerce Hasura schema + permissions🟑Tables defined, Hasura metadata not configured
Responsive mobile layoutπŸ”΄Booking widget must work on phone
Ticket + QR hash generation🟑The system requires a logic spec

Scene 4 β€” Driver Hub (Operations) ​

FeatureAppStatusNotes
Daily assignment viewdriver (PWA)πŸ”΄ πŸ’…Tour, time, bus, route
Passenger manifest listdriverπŸ”΄ πŸ’…Names, seats, boarding points
QR scanner overlaydriverπŸ”΄ πŸ’…Camera-based, validates qr_hash
Check-in success animationdriverπŸ”΄ πŸ’…Green checkmark, "Eingecheckt βœ“"
Offline mode indicatordriverπŸ”΄ πŸ’…"Offline-Modus aktiv" badge

Supporting:

FeatureStatusWhy Needed
Theme .theme-driver wiring🟑Dark, oversized touch targets. Transition IS a demo beat.
Driver PWA shell + Nhost authπŸ”΄New app, crew-member scoped
Bottom-docked navigationπŸ”΄Mobile PWA pattern
Manifest read modelπŸ”΄Denormalized join: Departure + Passengers + Seats + BoardingPoints
Offline sync protocol (IndexedDB)🟑Architecture described, no implementation spec
BoardingEvent write + offline queueπŸ”΄Idempotent by qr_hash, syncs when online
ServiceLeg auto-creation from TourDepartureπŸ”΄Operations needs legs when the system publishes the departure
BookingConfirmed β†’ manifest updateπŸ”΄Passenger data flows to Operations read model

Scene 5 β€” Crisis Flow (Cross-Domain) ​

FeatureAppStatusNotes
Incident flash overlay on Gantt blocksworkspaceπŸ”΄ πŸ’…Red pulse on affected ServiceLeg
Omnichannel Inbox sidebarworkspaceπŸ”΄ πŸ’…
AI-drafted WhatsApp message previewworkspaceπŸ”΄ πŸ’…Pre-drafted template
"Senden" action + confirmationworkspaceπŸ”΄ πŸ’…
Wallet Pass live update animationstandaloneπŸ”΄ πŸ’…Departure time changes in pass

Supporting:

FeatureStatusWhy Needed
Incident data model🟑Schema exists in Operations, needs event trigger
NotificationTemplate rendererπŸ”΄Variable interpolation for WhatsApp template
NotificationRequested eventπŸ”΄Generic dispatch to Communications
Wallet Pass dynamic update (APNs)πŸ”΄Apple Push Notification for pass updates

Scene 6 β€” The Bridge ​

FeatureAppStatus
Concierge onboarding timeline visualstaticπŸ”΄
CTA buttonstaticπŸ”΄

Spec Work Required ​

New L3 Specs to Write ​

#SpecDomainPriority
S1Booking State MachineCommerceπŸ”₯
S2Checkout Flow (Session β†’ Mollie β†’ Confirmed)CommerceπŸ”₯
S3TourOffering Sync ProtocolCommerce ← BackofficeπŸ”₯
S4Seat Reservation ProtocolCommerceπŸ”₯
S5Driver Manifest Read ModelOperationsHIGH
S6Boarding Event Protocol (offline + sync)OperationsHIGH
S7Wallet Pass GenerationCommunications/CommerceMED
S8Notification DispatchCommunicationsMED
S9Incident β†’ Crisis Broadcast FlowCross-DomainMED

New Event Contracts to Write ​

EventProducerConsumer(s)
TripPublishedBackofficeCommerce
BoardingEventOperationsBackoffice
NotificationRequestedCommerce/OperationsCommunications (n8n)
WalletPassIssuedCommunicationsCommerce
IncidentCreatedOperationsBackoffice (dispatch board), Communications

Ready to Implement (Spec'd) ​

SpecDocument
Kalkulations-Enginekalkulations-engine.md
PriceMatrix Event Contractsevent-contracts-pricing.md
Dispatch Availability Enginedispatch-availability-engine.md
BookingConfirmed β†’ CostingSheet LockADR-009
Vehicle Swap Protocolvehicle-swap-protocol.md
Crew Qualification Protocolcrew-qualification-protocol.md
Tenant ProvisioningADR-003

Build-or-Fake Matrix ​

FeatureRealFakeSkipRationale
Kalkulations-Engineβœ…Core differentiator, tax wrapping must be real
PriceMatrix β†’ Commerce syncβœ…Real event flow = "no duct-tape" proof
Booking Widget + checkoutβœ…Must feel premium and real
Mollie paymentβœ…Test mode, real capture flow
BookingConfirmed cascadeβœ…Event β†’ lock + manifest = architectural proof
Driver PWA + offline QRβœ…Core differentiator, must work offline
Break-even progress barβœ…Small build, high emotional impact
Dispatch Board + complianceβœ…Trust builder, drag-drop interaction
Magic Upload (PDF β†’ Tour)βœ…Pre-seeded n8n output for demo PDF. Real AI pipeline later.
Wallet Pass generationβœ…n8n workflow generating static .pkpass
WhatsApp confirmationβœ…n8n β†’ WhatsApp Business sandbox
Crisis broadcastβœ…Pre-drafted template, mock incident trigger
Wallet Pass live updateβœ…Animated mock, real APNs is Phase 2
Full Gantt (zoom, scroll, 50+ rows)βœ…Simplified SVG/CSS for 3 vehicles is enough
Storno / refundsβœ…Explicitly deferred
Multi-tenancy demoβœ…Architectural req, not a demo beat

Seed Scenario ​

One coherent story: "Tyrol AlpenglΓΌhen 7 Tage"

EntityData
Operator"Reisedienst Alpenberg GmbH"
PDF2-page hotel partner itinerary (German, dates, stops, hotel)
TourTemplate"Tyrol AlpenglΓΌhen 7 Tage" β€” 4 stops, 1 hotel (Fremdleistung), Weinprobe upsell
TourDeparture15. Juni 2026, status: PUBLISHED
Vehicle"Bus 01" β€” 49-seater, seat_map_layout JSONB, ACTIVE
KlausDRIVER, Module 95 valid, no visa restrictions, ACTIVE
ThomasDRIVER, on vacation 10.–17.04. (conflict demo)
SarahDRIVER, ACTIVE, assigned to Bavaria day trip
47 PassengersPre-seeded bookings with names, seats, boarding points
Incident"Stau A13" β€” delay +45min, affecting Leg 2
WhatsApp templatePre-drafted delay notification for boarding point passengers

Theme Transitions (Demo Beat) ​

The visual shift between themes is itself a differentiator β€” proof this is a platform, not an app.

TransitionFrom β†’ ToDemo Moment
Scene 2 β†’ 3.theme-dispatcher β†’ .theme-passengerNeo-corporate β†’ warm boutique. "This is what your customers see."
Scene 3 β†’ 4.theme-passenger β†’ .theme-driverBoutique β†’ dark, rugged, oversized. "This is what your drivers see."
Scene 4 β†’ 5.theme-driver β†’ .theme-dispatcherBack to control center. "And you see everything."

Internal documentation β€” Busflow