plan
Executive App — Prod Parity Rework Plan
Section titled “Executive App — Prod Parity Rework Plan”Status: ✅ IMPLEMENTED 2026-07-10 (refactor-in-place). All three corrections + all
module reworks landed in products/atlas/screens/issue-management-dashboard.html.
Decisions taken: refactor in place (kept the config-driven engine); Meshes KEPT
as an exec overlay (user call, overriding the drop recommendation); login reuses the
canonical Atlas .login-card pattern. Uncommitted on branch swap-app/support-basics.
What shipped:
- Login → plain canonical Atlas login-card (brand panel + Welcome-back card, no Google/stats).
- Issue view → real read-only manager↔specialist thread (issue-banner + reporter/affected
cards + evidence +
.thread/.msg-*), bespokeidr-*removed. - Topbar → sidebar-collapse + breadcrumb + moon(dark toggle) + bell + “Tech Rachaj / Super admin”.
- Riders → prod cols + 19-status lifecycle + tabbed detail (Rider details/Keke/KYC/Swaps/Wallet/ Cases) + record sidebar (release checklist/onboarded-by/payback/overdraft-ban/battery pack/serial/tricycle).
- Stations → 11 real swap stations (Name/Location/LGA/Status/Date) + Overview/Batteries/Users/ Delivery-Managers detail + station-manager & stats sidebar. NEW Charge stations module (3 real).
- Battery packs → prod (BMS/cost/charge-category/health/pending/location/custodian) + Available/ Assigned tabs + Upload BMS mapping + item/location/custodian detail. Voltage model dropped.
- Clusters → prod (Level/swap amount/op days/LGA/manager) + create drawer. Overdrafts → virtual accounts + transaction evidence + update form + Reconcile/dry-run + Manual Credit/Reconcile/History.
- NEW Rider wallet transfer form. IA regrouped to prod (Rider management/Stations/Network/Wallet).
- Overview overlays kept; net KPI “Faulty batteries” → “Depleted packs”.
Follow-ups not done: interactive station Map view (visual toggle only); real filter-dropdown behaviour (chips are visual); charge-station Managers tab is an empty state.
Target file: products/atlas/screens/issue-management-dashboard.html (the “executive app”).
Date captured: 2026-07-10.
Why this rework
Section titled “Why this rework”The current exec dashboard invented data models and screens that do not match what Rechaj runs on prod today. Ridwan shared 23 prod screenshots (Rider management, Overdrafts, Stations, Clusters, Battery packs, Wallet transfer). The exec app must replicate the real prod screens — same modules, columns, statuses, values, chrome — not invented equivalents.
Three hard correction instructions
Section titled “Three hard correction instructions”- Replicate prod, do not invent. Every module mirrors the real prod screen below (columns, statuses, stat cards, detail layout). No invented fields (no voltage on batteries, no fabricated KPIs, etc.).
- Issue view = the real conversation thread. When an executive opens an issue,
they see the manager ↔ support-specialist conversation thread exactly as the
manager (swap-app
swap-support-basic.html) and the specialist (officer consolesupport-tickets-basic.html) see it. A “totally new”/invented issue preview is currently shown — remove it and use the real thread UI. - Login = the plain standard Atlas login. Replace the custom split-screen login
I built with the simple, canonical Atlas login. (Locate the base Atlas login —
candidates are the
.login-cardsingle-column variants inproducts/atlas/flows/*/index.html, e.g.onboarding-agent,field-support-cfsm,battery-identity-adminall say “Single”. Pick the plainest one and reuse verbatim — do NOT redesign.)
Prod chrome (topbar + shell)
Section titled “Prod chrome (topbar + shell)”- Topbar: breadcrumb on the left (e.g.
Rider management › Riders); right side = dark-mode toggle (moon icon), notification bell, user pill (avatar circle with green ring + name + role e.g. “Tech Rachaj / Super admin”). - Sidebar collapse icon at far top-left of the topbar.
- Light theme by default (prod is light). Keep the standard Atlas sidebar.
Real navigation / IA (from prod)
Section titled “Real navigation / IA (from prod)”Groups and items actually present on prod:
- Rider management → Riders, Overdrafts
- Stations → Swap stations, Charge stations
- Clusters
- Wallet transfer → Rider wallet transfer
- Battery packs
Exec-support additions layered on top (from prior sessions, keep unless dropped): Overview, Issues, Unlocks. Mesh: OPEN QUESTION — prod has no mesh (clusters are the real grouping). Confirm keep vs drop before building.
Module specs (extracted from prod screenshots)
Section titled “Module specs (extracted from prod screenshots)”1. Riders (Rider management › Riders)
Section titled “1. Riders (Rider management › Riders)”Stat cards (3): Total riders 636; Active riders 497; Pending retrofits 37.
Toolbar: search “Search by name or phone number”; “All status” filter.
Columns: FULL NAME (sortable) · LICENSE PLATE · STATUS (sortable) · ONBOARDED BY ·
ENABLED · DATE ONBOARDED (sortable) · ACTIONS (...).
Row: avatar (initials, green) + full name + “No data” subline; plate (e.g. SRA473WJ)
or “No data”; status pill; onboarded-by name; ENABLED pill (green); date (Thu Jul 09, 2026 01:27 PM).
Status lifecycle (full filter list, exact order): All status · PENDING VERIFICATION ·
LEAD CAPTURED · VERIFIED · PAYMENT PENDING · PAYMENT CONFIRMED · KEKE ONBOARDED ·
KYC VERIFICATION SUBMITTED · KYC VERIFICATION MANUAL REVIEW · KYC VERIFICATION FAILED ·
KYC VERIFICATION APPROVED · INSPECTION PENDING · INSPECTION FAILED · INSPECTION COMPLETED ·
RETROFIT PENDING · RETROFIT COMPLETED · ACTIVE · DEACTIVATED · INACTIVE · ONBOARDING COMPLETE.
Pill colors: INSPECTION PENDING = yellow, VERIFIED/ACTIVE = green, etc.
Sample names: Jacob Onele, Bolaji Alex Oladepo, Oluwaranti Abosede Ayaniyi,
Musa Umar Salami, Ayomide Sunday, Christma Chidozie Ogbu, John Oni Ojo,
Olasunkanmi Oladokun, Wasiu Alabi Bashiru, Ahmed Iliyas.
Onboarders: paul Adeniyi, Matthew Adebayo, Wahab Ojokuye, Titilayo Olaitan.
Rider detail — tabs: Rider Details · Keke Details · KYC Information · Swap History · Wallet · Cases
Section titled “Rider detail — tabs: Rider Details · Keke Details · KYC Information · Swap History · Wallet · Cases”Right sidebar (persists across tabs):
- Release checklist — “Released” · “This keke has been released to the rider.”
- Onboarded by — paul Adeniyi, paul.adeniyi18@gmail.com, arrow button.
- Payback monitor — Swaps earned ₦90,000.00; progress bar; “7% paid back”; “Kit cost: ₦1,300,000.00”.
- Overdraft Ban — “Rider can access overdrafts” DISABLED (red) + toggle.
- BATTERY PACK
260115101151+ Remove (red). - SERIAL NUMBER
VC252000203+ Remove (red). - Tricycle info — RETROFIT KIT SN
RK-260621-475063DC; TOTAL SWAPS9.
Rider Details tab: header (avatar + name Olamilekan Oparanti + phone
+2348167529786; status pill RETROFIT COMPLETED; “Date onboarded: Thu Jul 02, 2026
04:26 PM”). Personal information: EMAIL riders.emails+3DCJ7V6Y@mocx.co; ADDRESS
2, Esther Adebayo Street, Odofin Shimawa Ogun state. Retrofit schedule: CENTRE
Sango retrofit station; SCHEDULED DATE 2026-07-06; STATUS COMPLETED; CENTRE MANAGER
Musbau Azeez; CENTRE ADDRESS Tarmac Road; ACTIVATION AMOUNT ₦20,000.00.
Keke Details tab: Tricycle information — PLATE NUMBER SDM409WV; CHASSIS NUMBER
MD6M14PAOL4K06607. License Plate photo. Exterior Views (photo grid, 4+).
Cases tab: empty state — person+plus icon; “No cases” · “This rider has no support cases.” (This is where support cases/issues surface per-rider.)
2. Overdrafts (Rider management › Overdrafts)
Section titled “2. Overdrafts (Rider management › Overdrafts)”Header actions (right): “All Statuses” filter · “All Banks” filter · “+ Manual Credit”
(green) · “Reconcile” · “History”.
Columns: RIDER · AMOUNT · STATUS · BANK · REFERENCE · CREATED AT.
Row: avatar + name + phone; amount (₦12,000.00 / ₦9,000.00); STATUS PENDING (yellow);
BANK (OPAY / STERLING / MONNIFY / PAYSTACK); REFERENCE (long, may truncate ...);
CREATED AT (Wed Jul 01, 2026 11:23 AM) + operator email below (jumai.abidoye@mocx.co,
royce.adedoyin@mocx.co).
Overdraft detail — tabs: Overview · Reconcile
Section titled “Overdraft detail — tabs: Overview · Reconcile”Overview: header card (name + phone; PENDING pill + OPAY; big ₦12,000.00). Wallet card:
“Available balance” ₦12,000.00. Virtual Accounts: Paystack-Titan 9732024545
MOCXSMARTTECH/KAREEM TAJUDEEN; OPay 6127435504 Tajudeen Kareem; Sterling bank
5267127469 KAR. Details: Transaction ref 2072256559665938432; Session ID —;
Comments —; Swap completed Yes; Created at; Created by jumai.abidoye@mocx.co;
Updated at; Updated by gbenga.fatokun@mocx.com. Transaction evidence: “Open in new
tab” + receipt image (Moniepoint debit ₦12,000 · Successful · sender/beneficiary/session).
Update overdraft form: Amount · Transaction reference · Session ID · Comments ·
“Save changes”. (“Edit the references, amount, or comments. Disabled once the overdraft
is settled.”)
Reconcile tab / Manual reconcile: “Use this when the overdraft only has a session ID.
Paste the real provider transaction reference from the Paystack / Monnify dashboard and the
backend will persist it and run the verify-and-replay flow. Disabled once settled.” Provider
transaction reference input; Dry run toggle (“Preview first. Turn off to persist the
reference and settle the overdraft.”); “Run dry run” (green).
3. Swap stations (Stations › Swap stations)
Section titled “3. Swap stations (Stations › Swap stations)”Stat cards: Swap stations 11; Total swaps completed 279; Average daily swaps 436.
Toolbar: search; List / Map toggle; “+ Create station” (green).
Columns: NAME · LOCATION · LGA · STATUS · DATE CREATED · ACTIONS.
Status: ACTIVE (green) / INACTIVE (red).
Real 11 stations (name / location / LGA / status):
- Ojo Swap Station / Ojo Close, Lagos, Nigeria / Ojo / INACTIVE
- Redeem Camp SS / House 2, Ifewara, opposite Redemption High School / Obafemi/Owode / ACTIVE
- Honda Swap Station / Honda Manufacturing Nigeria Limited, Idiroko Road, Ota, Nigeria / Ado-Odo/Ota / ACTIVE
- Asbestos Swap Station / Singer Bus Stop, Abeokuta Expressway, Ota, Nigeria / Ado-Odo/Ota / ACTIVE
- Joke Ayo Swap Station / 4 Suberu Oje Rd / Alimosho / ACTIVE
- Metro Swap Station / Metro Warehouse, off Tarmac Road, Ota / Ado-Odo/Ota / ACTIVE
- Toll Gate Mega Swap Station / 7/8 Ilo Awela Road, Ota, Nigeria / Ado-Odo/Ota / ACTIVE
- Ijoko Swap Station / Ijoko Road, Ota, Nigeria / Ado-Odo/Ota / INACTIVE
- Plastic City Swap Station / Unique Grace, Agege, Ogun State, Nigeria / Ado-Odo/Ota / ACTIVE
- Opebi Swap Station / 4 Irewole Street, Ikeja, Nigeria / Ikeja / INACTIVE
- Honda One / Tower Alloys Industries Ltd., Idiroko Road, Ota, Nigeria / Ado-Odo/Ota / ACTIVE
Swap station detail — tabs: Overview · Batteries · Users · Delivery Managers
Section titled “Swap station detail — tabs: Overview · Batteries · Users · Delivery Managers”- Overview: “Swap station” label + name + address; Edit + Deactivate (red). Grid:
STATUS · STATE (Ogun) · LGA · CLUSTER (uuid, e.g.
a8ce8def-210e-4543-9139-9bca1d1715d5) · PHYSICAL ADDRESS · COUNTRY (Nigeria) · COORDINATES (6.4531, 3.3958) · DATE CREATED. Right sidebar: Station manager + Reassign (NAMETayo Adebanjo, EMAILtayo.adebanjo@mocx.com, PHONE+2348169011290); Station stats —19Total swaps,2Swaps today,7Avg daily swaps. - Batteries: “Battery packs at this swap station’s location”; search by serial.
Columns SERIAL NUMBER · CHARGE STATUS (CHARGED green / CHARGING blue) · STATUS (ACTIVE) ·
DATE ADDED. Serials like
260115101186. - Users: “Managers, support staff, and swap operators for this station” + “Assign user”.
Columns NAME · ROLE (
SWAP STATION MANAGER) · STATUS (VERIFIED) · DATE ADDED · ACTIONS. - Delivery Managers tab (present, not captured in detail).
Create swap station drawer
Section titled “Create swap station drawer”“Create swap station” / “Add a new swap station to the network.” Fields: Station name
(e.g. Ikeja Swap Station); Map address (search on map); Physical address (Street address);
State (select); LGA (select). Create station / Cancel.
4. Charge stations (Stations › Charge stations)
Section titled “4. Charge stations (Stations › Charge stations)”Stat cards: Charge stations 3; Avg charging time (mins) 432.2; Avg daily charges 0.0.
Toolbar: search; List / Map; “+ Add station” (green).
Columns: NAME · ADDRESS · LGA · BATTERY CAPACITY · STATUS · DATE CREATED · ACTIONS.
Real 3: Honda Charge Station / Eagle Package Printing Ltd… / Ado-Odo/Ota / 96 / ACTIVE;
Sango Charge Station / Tarmac Road, Ota / Ado-Odo/Ota / 154 / ACTIVE; Oregun Charge Station /
28-30 Morison Crescent, Ikeja / Ikeja / 50 / INACTIVE.
Detail — tabs: Overview · Batteries · Managers · Delivery Managers. Overview grid like
swap station but with BATTERY CAPACITY. Right sidebar Battery stats: 4 Charging (blue),
8 Charged (green), 30 Depleted (red). Service areas: “Locations this station serves” —
NAME · LOCATION TYPE (RETROFIT STATION / SWAP STATION) · ADDRESS · (arrow). Serves: Sango
retrofit station, Honda/Toll Gate Mega/Plastic City/Asbestos/Ijoko Swap Stations.
5. Clusters
Section titled “5. Clusters”Toolbar: search; “All levels” filter; “+ Create cluster” (green). Columns: NAME · LEVEL · SWAP AMOUNT · OPERATIONAL DAYS · LOCATION · MANAGER · CREATED AT · ACTIONS. Real 4: Mowe Cluster / LEVEL TWO / ₦10,500.00 / 6 days/wk / Obafemi/Owode / Lukmon Alani; Alagbado Cluster / LEVEL TWO / ₦12,000.00 / 5 days/wk / Alimosho / Gbenga Akilo; Ikeja Cluster / LEVEL TWO / ₦10,000.00 / 5 days/wk / Ado-Odo/Ota / UNASSIGNED (yellow pill); Sango Ota Cluster / LEVEL TWO / ₦12,000.00 / 5 days/wk / Ado-Odo/Ota / Gbenga Akilo. Create cluster drawer: “Create a new cluster to group stations.” Cluster type radio (Level 2 / Level 3); Cluster name; Swap amount (0); Operational days per week (0); State (select); LGA (select). Create / Cancel.
NOTE: prod “cluster” = management grouping (level, swap price, operational days, manager, LGA). This is NOT the same as the “mesh” concept from earlier sessions.
6. Battery packs
Section titled “6. Battery packs”Tabs: Available / Assigned. “Upload BMS mapping” button.
Filters: All locations · All custodians · All statuses · All statuses (two status filters).
Columns: (checkbox) SERIAL NUMBER · BMS ID · COST · CHARGE STATUS · HEALTH STATUS ·
PENDING TRANSFER · LOCATION · CUSTODIAN · DATE CREATED.
Values: serial 260115101205; BMS ID 000050210151; COST ₦1,073,666.66;
CHARGE STATUS = New (purple/green) / Depleted (red) / Charged / Charging;
HEALTH STATUS = ACTIVE (green); PENDING TRANSFER = No (grey) / Yes; LOCATION
(Sango warehouse, Metro Swap Station, Honda One); CUSTODIAN (Tobi Oyeshile, Swap Manager,
Gbenga Fatokun, Nurain Afolayan, Taofeek Sanusi, Ademola Olaniran).
Detail drawer: header serial + ACTIVE pill + X. ITEM INFORMATION: ITEM NAME
SIA 8KWh REPT 104Ah (2 Layer); ITEM TYPE BATTERY PACK; PRICE ₦1,073,666.66;
DATE CREATED; CHARGE STATUS New; ASSIGNED No; PENDING TRANSFER No; USED No.
LOCATION: NAME Sango warehouse; TYPE PRODUCTION FACILITY; STATE Ogun; ADDRESS
Metro, Ota III Agege Ado Odo/Ota, Ogun, Nigeria. CUSTODIAN: NAME Tobi Oyeshile;
EMAIL oluwatobi.oyeshile@mocx.co; PHONE +2349057098315; STATUS ACTIVE.
Batteries on prod use categorical charge status (New/Charged/Charging/Depleted), NOT voltage. Drop the invented voltage model.
7. Rider wallet transfer (Wallet transfer › Rider wallet transfer)
Section titled “7. Rider wallet transfer (Wallet transfer › Rider wallet transfer)”Simple form: Source Rider (search+select) · Destination Rider (search+select) · Amount (₦0) · Reason / Narration (textarea) · Transfer (green).
Issue thread (correction #2)
Section titled “Issue thread (correction #2)”The executive Issue view must reuse the real manager↔specialist thread, sourced from:
- Manager side:
products/rechaj-swap-app/prototypes/swap-support-basic.html - Specialist side:
products/atlas/prototypes/support-tickets-basic.html(renderDetail/renderThread; classes.thread,.msg,.msg-you,.msg-mgr,.msg-sys,.msg-bubble,.msg-photo,.evi, issue banner + reporter/affected-rider cards). Reproduce that exact layout — read-only for the exec. Remove the bespokeidr-*issue-detail preview currently in the exec file. Rider cases also surface under the rider detail Cases tab (see Riders §1).
Login (correction #3)
Section titled “Login (correction #3)”Replace the custom #scr-login split-screen (login-wrap / login-left / login-card /
“Welcome back, Ngozi” / stats) with the plain single-column Atlas login. Find the
canonical simple one (the flows/* variants marked “Single”) and reuse verbatim.
Gap analysis — what the current build gets wrong
Section titled “Gap analysis — what the current build gets wrong”- Login: custom split-screen → must be standard Atlas login.
- Issue drawer: bespoke
idr-*preview → must be the real thread UI. - Stations: invented 8 stations → real 11 swap stations + separate 3 charge stations, with prod columns (LOCATION/LGA/STATUS) and detail tabs. Remove station-wallet & the invented “station tracker” numbers not present on prod (prod station stats = Total swaps / Swaps today / Avg daily swaps only).
- Batteries: voltage model → prod battery packs (BMS ID, cost, charge status categories, health, pending transfer, location, custodian) + Available/Assigned tabs + detail drawer.
- Clusters: invented shape → prod clusters (Level 2/3, swap amount, operational days, manager, LGA) + create drawer.
- Overdrafts: simplify-to-prod (bank, reference, virtual accounts, transaction evidence, update + manual-reconcile/dry-run, Manual Credit/Reconcile/History actions).
- Riders: thin table → prod riders (19-status lifecycle, onboarded-by, enabled, rich detail tabs + sidebar: release checklist / payback monitor / overdraft ban / battery pack / serial / tricycle info).
- Missing modules: Charge stations, Battery packs, Rider wallet transfer.
- Topbar chrome: add moon toggle + bell + Super-admin user pill; breadcrumbs per prod.
- Mesh: OPEN — keep (earlier request) or drop (prod uses clusters). CONFIRM.
- Swap-speed / Unlocks / Overview donuts: exec-only additions — keep, but re-verify they don’t fabricate data prod can’t produce.
Suggested implementation order (next session)
Section titled “Suggested implementation order (next session)”- Confirm open questions (Mesh keep/drop; rebuild-vs-refactor).
- Swap in the standard Atlas login + prod topbar chrome.
- Fix the Issue view to the real thread (highest-signal correction).
- Rebuild data models to prod shape (riders, stations, charge stations, clusters, battery packs, overdrafts, wallet transfer).
- Rebuild each module list + detail to match prod columns/tabs/sidebars.
- Re-verify exec-only overlays (Overview donuts, Unlocks) use only prod-derivable data.
- Screenshot-verify every screen against the prod references before hand-off.
Open questions to resolve first
Section titled “Open questions to resolve first”- Mesh — keep the mesh module or drop it in favour of prod clusters?
- Rebuild vs refactor — from-scratch prod-faithful rebuild, or heavy refactor of the
current
issue-management-dashboard.html? - Login source — confirm which
flows/*login is the canonical “plain” Atlas login to copy.