Google Sign-In Required

Use your company Google account to access the BetterFleet private content.

Back to private home

BetterFleet Support Private
Skip to content
BetterFleet Dev Wiki
Specification: Mobile Operations Companion v1
Initializing search
    bf-dev
    • Home
    • Process
    • Products
    • Reference
    • Decisions
    • Work
    • Operations
    bf-dev
    • Home
      • Process Handbook
      • BetterFleet Workflow Map
      • Product Development System
      • Product Engineering Workflow
        • Process Workflows
        • Work Intake and Weekly Planning
        • Product Engineering Workflow in Linear
        • Product Engineering Delivery
        • Agent Guidance
        • Workflow
        • Skills
        • Skill Sources
        • Process Guides
        • GitLab Feature Flags
        • In-App Docs Authoring
        • Release Notes
        • Process Templates
        • Release Plan: <title>
      • Process Publishing
      • Product overview
        • General Reference
          • Core Domain Training
          • System Topology
          • Two-Axis Ontology Model
          • Ontology Primer
          • Worked Example
          • Evidence, Ownership, and Lineage
          • Energy Management
          • Standards and Protocol Map
          • Charging, Roaming, and Commercial Model
          • Charge Planning and Operations
          • Cross-Cutting Domains
          • Domain Coverage Matrix
        • BetterFleet Product Ontology
        • Core Operations Data Ontology
        • BetterFleet R&D Plan
        • Index
        • Architecture
        • Manage Product Capabilities
        • Manage Data and State
        • Manage Service Interaction Flows
        • Manage Reference
        • Manage Internal Application Diagrams
          • Manage Authorization And Permissions
          • bf-manage-core Auth and Authorization Model
          • Manage Authorization and Permissions
          • bf-manage-web Auth and Permission Model
          • Manage Service Catalog
          • bf-depot-sim
          • bf-digital-twin (Manage Role)
          • bf-fleet-health
          • bf-manage-connect
          • bf-manage-core
          • bf-manage-incidents
          • bf-manage-roaming
          • bf-manage-sitepwrmon
          • bf-manage-web
          • bf-schedule-creator (Manage Role)
          • bf-support-microsite
          • bf-telematics
        • Index
        • Architecture
        • Plan Reference
        • Plan Internal Application Diagrams
        • Plan Migration and Flags
        • Plan Simulation Request Lifecycle
          • Plan Service Catalog
          • bf-bnl-schedule-analysis-compute
          • bf-bnl-settings
          • bf-bnl-ui
          • bf-digital-twin (Plan Role)
          • bf-route-modelling
          • bf-schedule-creator (Plan Role)
      • Where to Ask Product Questions
      • Reference
        • Platform Reference
        • Platform Architecture
        • Script Runtime Model
        • Compose Profiles and Modes
        • Repository Map
        • Monolithic Git Transition FAQ
        • Monolithic Git Sizing
        • CI and Release Integration
        • Shared Reference
        • Shared Infrastructure Architecture
        • Secrets and Env Strategy
        • Vendors and Local Dependencies
        • System Reference
        • Cloud Data Dependencies
        • Ports and URLs
        • Service Matrix
          • API Docs
          • OCPI API Docs
          • OCPP API Docs
          • OSCP API Docs
          • VDV API Docs
          • Yard State API Docs
        • System Design
        • System Design: BBA Microgrid Controller Generic Packet Translation
        • System Design: Depot Simulation
        • System Design: IoT Sensor Packet
        • System Design: Microgrid Energy Orchestration
          • System Design: OCPP Profile 3 And ISO 15118 PKI
          • Architecture: BetterFleet OCPP Profile 3 and ISO 15118 PKI
          • Specification: BetterFleet OCPP Profile 3 and ISO 15118 Certificate Lifecycle Management
          • System Design: On-Prem Control
          • Challenge
          • Specification: BetterFleet On-Prem Continuity Control
          • System Design: OSCP
          • OSCP Protocol Documentation
          • Depot Sim Testing Requirements
          • System Design: OSCP Flexibility Provider Domain
      • Decisions
        • Architecture Decision Records
        • 0001 - Record architecture decisions
        • 0002 - Cognito for Authentication and Authorisation
        • 0003 - AWS Amplify for Authentication
        • 0004 - DynamoDB for default database
        • 0005 - Data Persistence
        • 0006 - Trunk-Based Development
        • 0007 - Generalised principle for automation
        • 0008 - Naming Repositories, Services, and URLs
        • 0009 - Use Timezone Aware DateTimes and UTC
        • 0010 - Use semantic release
        • 0011 - Centralized feature flag repository
        • 0012 - Use Named Exports in Storybook
        • 0013 - RESTful TITLE GraphQL
        • 0014 - Service Granularity
        • 0015 - Async/co-routine exception handling pattern
        • 0016 - Logging & log levels
        • 0017 - Instantiated Models
        • 0018 - Repository Pattern for Database Access
        • 0019 - Use of Design Tokens in TypeScript React Application
        • 0020 - API backwards compatibility and versioning
        • 0021 - Alembic Migration strategy
        • 0022 - Consistent react-hook-form usage
        • 0023 - Domain Event-Driven Architecture
        • 0024 - Domain Event Bus Tech Stack
        • 0025 - No enum types in DB table columns
        • 0026 - In-Memory Ormar Stores for Repository testing
        • 0027 - Storing Tab State in Query and Local Storage
        • 0028 - Adopt OpenTelemetry Semantic Conventions for Structured Logging
        • 0029 - Adopt RFC 9457 for HTTP Error Responses
        • 0030 - Use GitLab registry and Terraform state for ECS services
        • 0031 - Adopt DDD, Hexagonal Architecture, and CQRS for Python Domain Services
      • Work
        • Active Work
          • Work: Bba Microgrid Controller
          • Implementation Specification: BBA Microgrid Controller
          • BBA Microgrid Controller Deliverables (Stories)
          • Work: BFDev Monolithic Git
          • Challenge
          • Specification: BFDev Monolithic Git v2
          • BFDev Monolithic Git v2 Stories
          • Work: Complex Circuit Load Balancing
          • Implementation Specification: Complex Circuit Load Balancing
          • Complex Circuit Load Balancing Deliverables (Stories)
            • COR-10 and COR-11 Consolidation Review
          • Work: Dispatch Reliability and Reconciliation
          • Challenge
          • Specification: Dispatch Reliability and Reconciliation
          • Dispatch Reliability and Reconciliation (Unit User Stories)
            • Dispatch populated vehicle cards grey surface snapshot
            • Dispatch Visual Review
          • Work: Enable Scheduled Managed Charger Access
          • Challenge: Enable Scheduled Managed Charger Access
          • Specification Exploration Dossier: Enable Scheduled Managed Charger Access
          • Specification Review: Enable Scheduled Managed Charger Access
          • Specification: Enable Scheduled Managed Charger Access
          • Work: Guided Cut-Off and Release Orchestration
          • Specification: Guided Cut-Off and Release Orchestration
          • Guided Cut-Off and Release Orchestration (Unit User Stories)
          • Work: Production Deployment Validation
          • Challenge
          • Work: Scheduled Report Parity
          • Specification: Scheduled Report Parity
          • Work: Telematics
          • Telematics EventBridge Path
          • Telematics Ingress Architecture
          • Specification: Telematics Migration into bf-manage-core with 5-Minute Freshness and Health Visibility
          • Telematics Core Migration MVP (Implementation-Time BDD)
          • Work: Vector Derms
          • Implementation Specification: Vector DERMS
          • Vector DERMS Deliverables (Stories)
          • Work: Visiting Vehicle Charging Visibility
          • Specification: Visiting Vehicle Charging Visibility
          • Visiting Vehicle Charging Visibility (Unit User Stories)
          • Work: Workspace Owned Stripe Roaming
          • Specification: Workspace-Owned Stripe Credentials for Roaming Payments
        • Backlog Work
          • Work: Microgrid
          • Microgrid Backlog Stories
          • Work: Mobile Ops Companion
          • Challenge
          • Specification: Mobile Operations Companion v1
            • TLDR (Solution Summary)
            • 1. Summary
            • 2. Users and Use Cases
            • 3. Public Interfaces and Route Contract
            • 4. Screen-Level Requirements
              • 4.1 Home
              • 4.2 Yard
              • 4.3 Chargers
              • 4.4 Charger Detail
              • 4.5 Incidents
              • 4.6 Incident Detail
            • 5. Accessibility and WCAG 2.2 AA Requirements
            • 6. Non-Functional Constraints
            • 7. Verification Notes
            • 8. Non-Technical Implementation Approach
          • Mobile Operations Companion Deliverables (Stories)
          • Work: Oscp
          • OSCP Backlog Stories
        • Archived Work
          • Work: Code Canonical Orchestration
          • Challenge
          • Specification: Product Engineering Workflow
          • Product Engineering Workflow Deliverables (Unit User Stories)
          • Work: Release Notes Automation
          • Release Plan: Release Notes Automation
          • Release Notes Automation Backlog Stories
      • Operations
      • Onboarding Runbook
        • Operations Runbooks
        • Production Hotfix Release
        • Staging Hotfix Release
        • Manage Staging Release Validation
        • Terraform Plan Dry Runs
        • Operations Tooling
        • Code Indexing
        • Operations Evidence
        • Database Restoration Test Report
      • Daily Operations Runbook
      • Testing Guide
      • Troubleshooting
    • TLDR (Solution Summary)
    • 1. Summary
    • 2. Users and Use Cases
    • 3. Public Interfaces and Route Contract
    • 4. Screen-Level Requirements
      • 4.1 Home
      • 4.2 Yard
      • 4.3 Chargers
      • 4.4 Charger Detail
      • 4.5 Incidents
      • 4.6 Incident Detail
    • 5. Accessibility and WCAG 2.2 AA Requirements
    • 6. Non-Functional Constraints
    • 7. Verification Notes
    • 8. Non-Technical Implementation Approach
    1. Home
    2. Work
    3. Backlog
    4. Mobile ops companion

    Specification: Mobile Operations Companion v1¶

    TLDR (Solution Summary)¶

    • Deliver a new depot-scoped mobile companion under /mobile/* inside bf-manage-web.
    • Gate the surface behind one root feature flag: manage-mobile-ops.
    • Keep the main desktop layout, routes, and service-worker behavior unchanged.
    • Ship four phase-1 mobile screens: Home, Yard, Chargers, and Incidents, plus charger and incident detail screens.
    • Reuse existing auth, depot context, permissions, charger mutations, and data hooks.
    • Limit mobile charger actions to soft reset, remote start/stop, and remote cable release, with explicit accessible confirmation.
    • Make the delivered mobile slice WCAG 2.2 AA conscious by design.

    1. Summary¶

    • Problem statement:
      • BetterFleet Manage currently optimises for desktop operations, while mobile depot-floor tasks need a smaller, faster, and more focused flow.
    • Goal and success criteria:
      • Build a mobile-first companion for depot-walk use cases without affecting the main desktop tool.
      • Success is measured by:
      • mobile operators being able to access charger, yard, and active incident awareness through /mobile/*;
      • charger detail exposing only the approved action set with clear confirmation and feedback;
      • the mobile slice remaining usable from 320px widths upward without horizontal scrolling for the core tasks;
      • desktop routes and layout remaining unchanged when the mobile flag is off.
    • What will be built in this phase:
      • /mobile home with alert banners, summary counts, and quick links.
      • /mobile/yard list-first yard status with optional read-only visual yard support.
      • /mobile/chargers and /mobile/chargers/:chargePointId for charger visibility and narrow actions.
      • /mobile/incidents and /mobile/incidents/:incidentId for active-only incident visibility.
    • Out of scope in this phase:
      • mobile settings, dispatch, timeline, reports, workspace-wide mobile overview, out-of-depot map, incident resolution, hard reset, charger overrides, charger settings edits, and depot vehicle-location editing.

    2. Users and Use Cases¶

    • Primary persona:
      • Yard operator or depot floor supervisor walking a selected depot.
    • Secondary persona:
      • Support or operations user triaging a live charger or incident from a phone.
    • High-level user stories:
      • As a depot-floor operator, I want a mobile home screen so I can quickly assess whether anything needs attention.
      • As a depot-floor operator, I want a list-first yard view so I can understand site activity without relying on complex touch gestures.
      • As an operator with charger permissions, I want a narrow set of mobile charger actions so I can safely request common interventions.
      • As an operations user, I want active incident detail with asset links so I can move from alert to charger context quickly.

    3. Public Interfaces and Route Contract¶

    • Route namespace:
      • /mobile -> Home
      • /mobile/yard
      • /mobile/chargers
      • /mobile/chargers/:chargePointId
      • /mobile/incidents
      • /mobile/incidents/:incidentId
    • Feature flags:
      • Root exposure flag: manage-mobile-ops
      • Existing action flags continue to apply inside mobile:
      • hide-remote-actions
      • manage-enable-remote-cable-release
    • Permissions:
      • Mobile charger actions continue to depend on checkPermissions("Charger", ["operate"]).
    • Data and service reuse:
      • Reuse current auth session and depot context.
      • Reuse current chargers, vehicles, depot-layout, and incidents service hooks.
      • No mobile-only backend endpoint is introduced in this phase.

    4. Screen-Level Requirements¶

    4.1 Home¶

    • Show current depot context and mobile navigation.
    • Show site alert banners for the selected depot.
    • Show summary cards for:
      • active incidents
      • chargers needing attention
      • vehicles needing attention
      • charging now
    • Provide clear quick links into Yard, Chargers, and Incidents.

    4.2 Yard¶

    • Be list-first and usable without visual yard interpretation.
    • When depot layout data exists and is published:
      • show a read-only visual yard representation as supplemental context;
      • show the same live assets and statuses in an accessible list.
    • When depot layout data does not exist:
      • fall back to the list-only experience.
    • The list remains the primary interaction surface in all cases.

    4.3 Chargers¶

    • Show a mobile-friendly list of chargers for the selected depot.
    • Support quick filter chips for All, Charging, Available, Unavailable, and Faulted.
    • Each charger card shall show:
      • charger name
      • charger state and connection state
      • connector summaries
      • connected vehicle when available
      • SoC when available
      • estimated time to target when available
      • last-updated context
    • Charger actions shall not be available from the list screen.

    4.4 Charger Detail¶

    • Show charger state, connection state, zone, circuit, and connector details.
    • Expose only the approved mobile actions:
      • soft reset
      • remote start/stop
      • remote cable release
    • Hide or disable unsupported actions instead of exposing desktop parity.
    • Respect existing feature flags and operate permissions.
    • Require accessible confirmation before every operational action.
    • Announce success or failure feedback through live status messaging.

    4.5 Incidents¶

    • Show active incidents only for the selected depot context.
    • Each incident card shall show:
      • title
      • severity
      • reference ID
      • created time
      • affected asset hint when available
    • Provide detail drill-in.

    4.6 Incident Detail¶

    • Show read-only incident information:
      • severity
      • reference ID
      • affected assets
      • start and end times
      • event timeline
      • troubleshooting context when available from event details
    • Link affected chargers into mobile charger detail where possible.
    • Do not expose incident resolution in phase 1.

    5. Accessibility and WCAG 2.2 AA Requirements¶

    • Scope:
      • Compliance work applies to the delivered mobile slice only.
    • Reflow and zoom:
      • Core mobile screens shall work from 320px width upward.
      • Screens shall support browser zoom and text zoom up to 200% without breaking core actions.
    • Interaction:
      • Every interactive control shall have a visible label or accessible name.
      • Focus order shall be logical and visible.
      • Controls shall remain keyboard reachable.
      • Touch targets shall be large enough for mobile use.
    • Status communication:
      • Charger, vehicle, and incident states shall not rely on color alone.
      • Statuses shall include text labels, icons with accessible names, or both.
    • Yard view:
      • The visual yard representation shall never be the only way to access the live yard state.
    • Motion:
      • Avoid mobile-only gestures without explicit alternatives.
      • Respect reduced-motion preferences for any transitions.

    6. Non-Functional Constraints¶

    • Desktop behavior remains unchanged for /overview, /chargers, /vehicles, /incidents, /map, and related routes.
    • The mobile slice remains online-only for phase 1.
    • No service-worker or manifest behavior changes are introduced.
    • Existing query and mutation seams remain the source of truth for data and action execution.

    7. Verification Notes¶

    • Unit and component coverage should validate:
      • route and layout helpers for mobile path isolation
      • mobile transformation helpers for yard, charger, and incident data
      • charger action visibility and filtering logic
    • Targeted UI verification should cover:
      • mobile shell navigation
      • scope warning when the app is in all-depots mode
      • accessible labels for filters, cards, and action buttons
    • Manual or later automated regression coverage should include:
      • 320x568, 375x812, and 768x1024
      • one landscape pass
      • desktop regression with manage-mobile-ops off

    8. Non-Technical Implementation Approach¶

    • Add a dedicated mobile shell that activates only on /mobile/*.
    • Keep the shell visually independent from the desktop left-nav layout.
    • Build screen-specific presentation using shared mobile components and helper transforms.
    • Reuse desktop data hooks and narrow action hooks rather than cloning API logic.
    • Update in-app help and working release notes as part of delivery.
    Made with Material for MkDocs
    BFDev Docs Assistant
    New conversation?
    Ask one focused question at a time, this helps the assistant provide accurate answers about what's been implemented in BetterFleet.