OvApp Overview¶
Introduction¶
OvApp is Omnivoltaic’s mobile application designed to support daily operations across electric mobility, energy, and sales workflows. The application provides tailored tools and interfaces through applets — each applet is a focused workflow assigned to the user’s active Service Account (SA), ensuring efficiency, security, and clarity for every stakeholder in the ecosystem.
Upon launch, users log in and select their SA, which determines which applets — and therefore which features and workflows — are available to them.
OvApp is a Bluetooth Low Energy (BLE) and location-enabled Android application used in the battery-swapping ecosystem.
OvApp works both online and offline and acts as the main mobile entry point into the wider OVES ecosystem (ERM, PAYG, swap stations, and connected batteries).
Purpose¶
OvApp is designed to:
- Simplify battery swaps for Riders using:
- Map-based navigation to nearby swap stations.
- Station cards showing available batteries.
- Swap history and expenditure tracking.
- Provide secure keypad access for Passive Customers using time-limited codes/tokens.
- Enable Distributors to:
- Monitor device inventory in swap stations and warehouses.
- Generate tokens for Riders and Passive Customers.
- View device data and swap-related metrics.
- Equip Agents with:
- BLE scanning and connection tools.
- Route tracking.
- Device data views (att/cmd/sts/dta/dia).
- Diagnostics and troubleshooting capabilities.
Applet Selection¶
The applet selection grid is the primary entry point into OvApp after login and SA selection. Applets are displayed as tiles and are assigned per Service Account (SA) — only tiles granted to the active SA are shown. If an SA is assigned only one applet, the app navigates directly to it without showing the grid.
If no applets are assigned to an SA, a "No apps available" screen is shown with an option to switch account.
Info
Applet access is controlled by the Service Account, not by the user account. The same employee may see different applets depending on which SA is selected at login.
Available Applets¶
| Applet | Applet Slug | Description |
|---|---|---|
| Customers | customer-management |
View and manage customer records |
| Products | products |
Browse and manage product catalogue |
| Orders | orders |
View and track orders |
| Rider | rider |
End-user app for electric motorcycle/scooter riders — maps, stations, subscriptions |
| Activator | activator |
Field activation of devices |
| Sales Representative | customers |
Customer onboarding, package selection, payment, vehicle/battery assignment |
| Attendant | attendant |
Assisted battery swap — 6-step flow with BLE, MQTT, and M-Pesa payment |
| Manual Swap | externalswap |
Variant of the attendant swap using manual payment entry instead of QR/M-Pesa confirmation |
| Keypad | keypad |
Passive customer token entry via on-screen numpad and BLE |
| BLE Device Manager | assets |
Full BLE diagnostic and inspection tool (ATT/CMD/STS/DTA/DIA/HB tabs) |
| Location | location |
Route and location tracking |
| My Devices | mydevices |
Streamlined device activation tool |
| OTA | ota |
Over-the-air firmware upload |
| Ticketing | ticketing |
Support ticket management |
Applet Descriptions¶
-
Customers
- View, search, and manage customer records across the platform.
-
Products
- Browse the product catalogue; manage product listings.
-
Orders
- View and track customer orders; portal-style order management.
-
Rider
- Optimized for end-users operating electric motorcycles or scooters.
- Bike status and usage, battery and ride information, map-based station discovery.
-
Activator
- Field tool for activating newly deployed devices.
-
Sales Representative
- Built for field and in-house sales teams.
- Customer onboarding, product and service management, sales tracking.
-
Attendant
- Designed for on-ground staff managing battery swaps.
- Device operation and monitoring, transaction handling, basic diagnostics.
-
Manual Swap
- Same as Attendant but uses manual payment entry — the Odoo payment confirmation step is skipped and payment is entered manually.
- Visibility is controlled by the
externalswapapplet slug.
-
Keypad
- Intended for passive customers who only need to enter tokens.
- Secure numeric input, BLE connection, offline or low-connectivity operations.
-
BLE Device Manager
- Focused on technical and support teams managing Bluetooth-enabled devices.
- BLE device discovery, pairing, configuration, diagnostics, and remote monitoring.
-
Location
- Route and location tracking for field operations.
-
My Devices
- Streamlined device activation — generate or retrieve activation codes without navigating raw service data.
-
OTA
- Upload and apply over-the-air firmware updates to devices.
-
Ticketing
- Create and manage support tickets.
Key Design Principles¶
- SA-Based Access Control: Applets are granted per Service Account — users only see and access workflows relevant to the SA they are operating under
- Operational Efficiency: Complexity is reduced by presenting focused, single-purpose applets rather than a single monolithic interface
- Scalability: Supports expansion across new applets, devices, and services without disrupting existing workflows
- User-Centric Design: Clear visuals and intuitive navigation for diverse user groups across different languages and connectivity conditions
Navigation Flow¶
- User launches OvApp
- Login screen is shown:
- Email/Password or Phone Number — for external clients (distributors, riders)
- Sign in with Microsoft — for internal OVES employees only
- Keypad — No sign-in required — for passive customers (no account needed)
- Service Account (SA):
- If the account belongs to multiple SAs → a Select Account picker is shown; the user taps the SA they want to work in
- If the account belongs to only one SA → the app skips the picker and goes directly to the applet grid for that SA
- Applet selection grid is shown — only applets granted to the active SA are visible
- User taps an applet tile — the app loads that workflow
Note
If the active SA has only one applet assigned, the app also skips the applet grid and navigates directly into that workflow.
Core Feature Groups¶
OvApp exposes features grouped into a few core areas:
-
Keypad Function
- Enter codes/tokens to unlock or reactivate devices.
- Used by Riders, Passive Customers, Distributors, and Agents.
-
Map & Routing (Riders)
- Show nearby swap stations.
- Display how many batteries are available per station.
- Offer route guidance/menu to reach a swap station along the Rider’s route.
-
Swap History (Riders)
- List of past swaps.
- Total expenditure on battery swaps over time.
-
Inventory & Token Management (Agents/Distributors)
- Device lists for swap stations and warehouses.
- Token generation tools for Riders and Passive Customers.
-
Device Data & Diagnostics (Agents/Distributors)
- Structured data grouped in:
att– Attributes (IDs, SIM, firmware).cmd– Commands/configuration.sts– Status & PAYG state.dta– Data (power, battery, GPS, cycles).dia– Diagnostics (cell voltages, temperatures).
- Structured data grouped in:
-
Offline Access
- Riders & Passive Customers:
- Can use Keypad and view last synced data offline.
- Agents & Distributors:
- Can use BLE to read devices offline.
- Need internet to sync changes and upload readings.
- Riders & Passive Customers:
Summary¶
OvApp is a multi-applet mobile platform that connects Riders, Customers, Agents, and Distributors into one smart ecosystem. It combines:
- BLE device access
- Token/keypad activation
- Map-based swap station discovery
- Inventory & diagnostics views
All with support for online + offline operation in the field.