B2B Dashboard Screen Requirements โ
1. Initialization & Onboarding (The Concierge Flow) โ
- Intent: Guide Segment 1 ("Patchwork Operator") through their fear of software via a frictionless setup wizard, replacing standard empty states.
- Components:
- Welcome Wizard: Step-by-step modal flow for first-time login (e.g., "Add your first Vehicle," "Connect Mollie," "Upload your first PDF").
- Empty States: Contextual, action-oriented placeholders across all modules to prompt engagement (e.g., "No trips scheduled yet. Click here to use Magic Upload.")
2. Global Navigation & Layout โ
- Intent: Provide a persistent UX skeleton for dispatcher module switching.
- Elements: Navigation links (Home, Magic Upload, Trips & Tours, Bookings, Fleet & Staff, Settings).
- Utilities: Universal "Create New" action (defaults to Magic Upload), User Profile, Logout.
3. Dashboard Overview (Dispatcher Hub) โ
- Intent: Surface immediate operational states and actionable blockers for the dispatcher.
- Components:
- Metrics: Aggregated data on active trips today, recent
Bookings, and missing resources (e.g., unassigned drivers). - Imminent Departures: List of upcoming
Tripswith status indicators (Green/Yellow) for staffing and booking completion. - Activity Feed: Log of recent system events, including newly approved
TourTemplatesand incomingBookings.
- Metrics: Aggregated data on active trips today, recent
4. "Magic Upload" Workspace โ
- Intent: Core MVP workflow handling the transition from unstructured PDF data to structured database entities (
TourTemplate,Trip). - State 1: Dropzone UI: Drag-and-drop file ingestion.
- State 2: Processing UI: Transitional loading state indicating AI extraction progress.
- State 3: Split-Screen Review (Template Creation):
- View: Left pane (original PDF) vs. Right pane (editable extracted data).
- Data Binding: Form fields map directly to the
TourTemplateentity (Title, Dates, Stops, Base Price). - Upsell/Add-on Management: Input fields to define optional extras (e.g., "Wine Tasting", "Extra Luggage") mapped to the template.
- Validation: Surface EG 561/2006 compliance flags.
- Action: Approve and save the abstract
TourTemplate.
- State 4: Scheduling & Publishing (Trip Instantiation):
- Resource Linking: Dropdowns to assign a
Vehicle(automatically linking itsSeatMapLayout) and aUser(Driver role). - Action: Publish the instantiated
Trip, generate the unique booking link, and activate the B2C integration.
- Resource Linking: Dropdowns to assign a
5. Tour & Trip Manager โ
- Intent: CRUD interface for catalog management and schedule oversight.
- Views:
- Templates List: Data table of abstract
TourTemplates. - Active Trips List: Data table of scheduled
Tripsmapped to specific dates and resources.
- Templates List: Data table of abstract
- Actions: Edit itinerary attributes (overriding AI data), adjust linked Upsells/Add-ons, toggle publish status, and retrieve B2C widget integration links.
6. Booking & Passenger CRM โ
- Intent: Financial oversight and customer service management.
- Views:
- Master Bookings: Table of all
Bookingsfiltered by Trip, Date, and Mollie/Klarna payment status. - Passenger Manifest: Per-trip sub-view mirroring the Driver App. Displays
Passengerentities, assigned seats, andTicketQR check-in status. - Visual Seat Map (Dispatcher View): Interactive graphical representation of the
SeatMapLayoutoverlaying current bookings.
- Master Bookings: Table of all
- Actions: Initiate manual refunds, execute manual seat reassignments via the visual map interface, and trigger transactional communications.
7. Fleet & Staff Management โ
- Intent: Manage foundational operational entities required for trip instantiation.
- Vehicles: Manage
Vehiclerecords (license plates, internal names) and link them to specificSeatMapLayoutmodels. - Staff: Manage
Userrecords, contact information, and RBAC assignments (Admin vs. Dispatcher vs. Driver).
8. Settings & Integrations โ
- Intent: Operator tenant configuration, external service connections, and API surface management.
- Components:
- Company Profile: Branding and support endpoints injected into the B2C Widget.
- Payments: Mollie and Klarna API key configurations and connection status.
- Communications Connection: WhatsApp Business API connection status.
- Communication Templates: Text editors to configure the specific content and variables of automated Email and WhatsApp notifications (e.g., booking confirmations, departure reminders).
- Developer API Management: Interface for generating, rolling, and revoking the Operator's own system API keys to enable incoming data connections/migrations from legacy ERPs (e.g., Kuschick/Turista).
9. Out of Scope (V1.1+) โ
- Parked Features:
AI Copilot Chat Interfaceโ Integrated into Dispatch Board contextual assistance (ยง10).Automated CSV/DATEV Accounting Exportsโ Part of Financial Reconciliation module (ยง13).Advanced Dynamic Compliance Resolutionโ Part of Dispatch Board conflict blocking (ยง10).- Micro-Mobility Integration (E-scooters, Uber last-mile).
- Predictive Maintenance (IoT/OBD2).
- Gamified driver eco-driving.
10. Intelligent Dispatch Board (Resource Roster) โ
- Intent: Provide a visual Gantt timeline for dispatchers to assign vehicles and crew to service legs, with real-time conflict detection and proactive compliance enforcement.
- Full Specification: โ dispatch-board.md
- Components:
- Gantt Timeline: Horizontal timeline with resource rows (vehicles, crew). Blocks represent
ServiceLegassignments with capacity badges. - Drag-and-Drop Assignment: Assign vehicles and drivers by dragging onto timeline gaps. System validates compliance (EG 561/2006 rest times, qualifications, maintenance) before confirming.
- Conflict Highlighting: Real-time red/yellow indicators for rest time violations, qualification mismatches, capacity overflows, maintenance alerts, and leave conflicts.
- Contextual Driver Warnings (Dispohinweise): Proactive badges when dragging a crew member (e.g., "Auto only", "No UK visa", "License expiring").
- Live Updates: Hasura subscriptions push booking changes, incident alerts, ETA updates, and duty log changes to the board in real-time.
- Gantt Timeline: Horizontal timeline with resource rows (vehicles, crew). Blocks represent
11. Passenger Reassignment View ("Umbesetzung") โ
- Intent: Enable dispatchers to move passengers between vehicles during capacity conflicts or breakdowns without losing financial or CRM data.
- Components:
- Split-Screen Manifest: Left panel shows source vehicle's passenger list + seat map; right panel shows target vehicle.
- Drag-and-Drop Transfer: Individual passengers, booking groups, or entire boarding points can be dragged to the target.
- Automatic Remapping:
SeatReservationentries are re-mapped to equivalent positions on the target vehicle'sseat_map_layout. AllBooking,Payment, andPassengerProfilereferences are preserved. - Notification Queue: Affected passengers receive automated WhatsApp/Email notifications with updated boarding details.
- Audit Trail: All reassignments are logged in
change_events.
- Bulk Actions: "Move Boarding Point" (transfer all pax from a stop), "Swap Vehicles" (exchange full manifests).
12. Charter Quote Pipeline (Anmietverkehr) โ
- Intent: Visual sales funnel for B2B charter requests, from inquiry to scheduled operation.
- Components:
- Kanban Board: Columns map to
CharterQuote.statusenum:DRAFTโSENTโACCEPTEDโREJECTED. - Quote Builder: Dispatcher enters waypoints โ routing service calculates distance, travel time, and Leerkilometer (empty runs). Costing engine pulls real-time diesel costs and applies B2B markup.
- Automated UID Check: For B2B quotes, system validates the reseller's VAT ID against the EU VIES database for reverse-charge compliance.
- PDF Generation: Polished quote document generated from
CharterQuote+CostingSheetdata. - Auto-Conversion: When a quote status moves to
ACCEPTED, the system generates aTourOfferingand places it on the Dispatch Board for resource assignment.
- Kanban Board: Columns map to
13. Financial Reconciliation & Bank Import โ
- Intent: Automate payment matching and provide Soll/Ist margin analysis per departure.
- Components:
- Bank Statement Import: MT940/CAMT/SEPA file upload. Parser extracts transaction data (amount, reference, date, counterparty).
- Auto-Matching Algorithm: System matches incoming payments to
BookingorInvoiceentities by reference number (Verwendungszweck). Unmatched transactions surface in a review queue. - Margin Dashboard (Soll/Ist): Per-departure comparison of
CostingSheetprojections vs.FinancialLedgeractuals. Surfaces delta for diesel, driver costs, and procurement. - DATEV Export: Automated CSV export of reconciled data in DATEV-compliant format for the tax advisor.
- Color-Coded Booking Source: Booking overview uses color indicators for origin channel: ๐ข B2C Widget, ๐ก B2B Agency, ๐ Manual Entry, ๐ต Phone/CTI.