Busflow Docs

Internal documentation portal

Skip to content

Feature Spec: Cross-Cutting Surfaces ​

Goal: Map the screen architecture for the cross-cutting workspace features that do not belong to a single Bounded Context: Dashboard, Settings, and the Global Command Palette.


1. Dashboard ​

Path: /Horizon: [v0.1]

The landing page after login. Provides an at-a-glance operational overview and guides new operators through their first steps.

Layout ​

Two zones stacked vertically:

Zone 1: Onboarding Checklist ([v0.1], dismissible) ​

A "Getting Started" card shown to new tenants. Disappears once all steps are completed or the operator dismisses it.

Checklist items:

  • [ ] Complete your company profile (β†’ /settings)
  • [ ] Create your first tour template (β†’ /tours)
  • [ ] Set up boarding points (β†’ /tours β†’ Boarding Points tab)
  • [ ] Preview your booking widget (β†’ external URL)
  • [ ] Receive your first booking (auto-completes)

Zone 2: Operational Overview ​

  • Upcoming Departures: Next 7 days of TourDepartures with fill rate, status. Clicking a row navigates to the Departure Detail.
  • Recent Bookings: Last 5 bookings received, with passenger name, tour, and payment status. Clicking navigates to Booking Detail.
  • Action Items: Alerts requiring attention (e.g., "2 failed payments", "1 departure this week with 0 bookings").
  • [v0.2]: Key metrics cards (total revenue this month, booking conversion rate, upcoming capacity utilization).
  • [v0.2]: Unread Inbox count (links to /inbox).

2. Settings ​

Path: /settingsHorizon: [v0.1] (core) Β· [v0.2] (channels, templates, user management) Position: Pinned to the bottom of the sidebar, separated from operational nav items.

Structure: Sub-navigation (vertical tabs or sidebar within Settings) ​

[v0.1] Settings Pages ​

Company Profile (/settings/profile)

  • Operator name, legal name, address, country.
  • Legal form (GMBH, UG, EINZELUNTERNEHMEN).
  • VAT ID (USt-IdNr.), Tax ID.
  • Bank details (IBAN, BIC β€” for SEPA payouts and DATEV export).

Branding (/settings/branding)

  • Logo upload (stored via Nhost Storage).
  • Primary color, accent color.
  • These values feed the booking widget's theming.

Tax Configuration (/settings/tax)

  • Default VAT rate.
  • Β§ 25 UStG margin taxation toggle (Reiseleistungen).
  • Default deposit percentage.

Ancillary Catalog (/settings/catalog)

  • Global management of bookable extras (insurance, room upgrades, excursions, meals).
  • CRUD on ancillary_catalog_items β€” operator defines type, label, price, per-passenger/per-booking, max quantity.
  • Concierge Onboarding seeds 3 starter items.
  • See ancillary-catalog.md Β§Workspace UX.

Pricing Categories (/settings/pricing)

[v0.2] Settings Pages ​

Users & Roles (/settings/users)

  • List of workspace users (from user_tenant_assignments).
  • Invite new users by email.
  • Assign roles (Manager, Dispatcher).
  • Deactivate users.

Communication Channels (/settings/channels)

  • Provision WhatsApp, Email, SMS channels (ChannelAccount entities).
  • Verify sender identity (phone number, email domain).
  • Test message sending.

Notification Templates (/settings/templates)

  • Configure automated message templates (NotificationTemplate entities).
  • Template variables (e.g., , ).
  • Trigger event mapping (booking confirmed, pre-trip reminder, etc.).
  • Channel selection per template.

Payment Gateway (/settings/payments)

  • Mollie Marketplace connection status.
  • OAuth reconnect flow.
  • Payout schedule configuration.
  • Default deposit and final payment timing rules (FinalPaymentConfig).

3. Global Command Palette (⌘K) ​

Horizon: [v0.1] (search only) · [future] (AI commands) Trigger: ⌘K (Mac) / Ctrl+K (Windows) from any page. Also accessible via a search icon in the header bar.

[v0.1] Architecture: Search Only ​

Search across all Bounded Contexts:

EntityContextSearchable FieldsResult Action
Tour TemplateBackofficeNameNavigate to Template Detail
Tour DepartureBackofficeTemplate name + dateNavigate to Departure Detail
BookingCommerceReference number, lead passenger nameNavigate to Booking Detail
PassengerCommerceName, emailNavigate to parent Booking Detail
Boarding PointBackofficeName, addressNavigate to Boarding Point in library

[v0.2] adds:

EntityContextSearchable FieldsResult Action
VehicleBackofficeLicense plate, internal nameNavigate to Vehicle Detail
Crew MemberBackofficeNameNavigate to Crew Detail
ConversationCommunicationsContact name, message contentNavigate to Inbox thread
IncidentOperationsDescription, ServiceLegNavigate to Dispatch Board

UI Pattern ​

  • Modal overlay with a text input at the top.
  • Results grouped by entity type with icons.
  • Keyboard navigation: arrow keys to select, Enter to navigate, Escape to close.
  • Recent searches shown when the palette opens with an empty query.

[future] Architecture: AI Commands ​

Natural language commands that trigger actions:

  • "Create a new tour template called Nordsee 7-Tage"
  • "Show me all departures next week with less than 50% fill rate"
  • "Who is available to drive on June 15?"

These commands route through an AI interpretation layer that maps natural language to GraphQL queries or mutation intents, with a confirmation step before execution.

Internal documentation β€” Busflow