Dashboard Overview

Live fleet data analytics and performance indicators

16:20:00
Total Fleet Size
72
100% Registered
YTD Kilometres Logged
434,873
Logged this month
Active Vehicles (2026)
72
100% Utilization
Service Attention Needed
--
Due for maintenance
Monthly Fleet Km's Trend (2026)
Fleet Type Breakdown
Top Regions by Logged Distance (YTD Km)
Budget Compliance Overview
Regional Managing Directors
Select Vehicle:
Reg No Type of Vehicle Region Operational Site Assigned Responsible Person Start Odometer Monthly Budget KM Service Interval Service Status Actions
# Responsible Person Operational Region Operational Site License Code / Details Contact / Phone Email Mobile PIN Actions
Date Reg No Type of Vehicle Region Site Assigned Responsible Person Odometer Start (KM) Odometer End (KM) Distance (KM) Over Daily Budget (KM) Last Service KM Comments Actions
Maintenance Schedule Alerts

Below is a computed list of vehicles that have either exceeded their service intervals, or are within 1,500 km of their scheduled service limits.

Driver Reported Issues & Vehicle Faults

Below are vehicle problems, breakdowns, and safety faults submitted directly by drivers from their mobile phones.

THORBURN SECURITY SOLUTIONS · FLEETOPS

FLEETOPS ANALYTICS

Corporate Operations & Budget Audit

Report Date: 2026-06-17 Selected Period: May 2026 Region: All Regions

Monthly Km Budget Overruns

List of vehicles that exceeded their allocated monthly budget limits.

Vehicles Logged 72
Exceeded Limit 0
Total Overrun (KM) 0 KM
Reg No Vehicle Type Region Operational Site Assigned Responsible Person Budget Actual KM Overrun
Audited by: FleetOps Auto Auditor
Signature: __________________________

Global Note to Drivers All Regions

Type a message/announcement that will show on all driver phones when they sign in, before they select a vehicle or log odometer readings. If empty, the driver goes directly into the program.

Region Configuration Editor

Configure Regions and their sub-Sites. Region Admins can only view and manage their assigned region's data.

Accessibility & App Colors

Choose background and font colors that are comfortable for your eyes, or select a preset theme.

Preset Themes

Custom Colors

Background Color
Letter (Font) Color
Font Size
Font Family

Super Admin: Database Operations

Download a complete JSON snapshot of the live Firebase database. Save these files into your local data/ folder to keep your local testing environment perfectly synced with the live server.

Help Center & Documentation

Guides, FAQs, and reference materials for drivers and managers.

Start Demo Fleet Mobile Phone Capture
Admin Setup
Setting up region pools, assign profiles, and configuring PINs.
Driver Mobile Setup
First-time browser installation, shortcuts, and device configuration.
Odometer Issues
Troubleshooting validation warnings or entry mistakes.
Offline Operations
How logs are cached offline and auto-synced when signal returns.

System Architecture & Data Flow Diagram

Super Admin Region Admin Operator 1. Driver Mobile Odometer & Incident Capture 2. Offline Queueing (Service Worker / Cache) 3. Real-Time Cloud Upload (Firestore Sync) 4. Set User Role View Super Admin View Full CRUD & Region Management Region Admin View Read/Write limited to Assigned Region Operator View Read-Only Dashboard & Report Exports 5. Database JSON Backup & Local Sync

Admin: Region Pool Setup

Configure shared region pools and mapping for drivers to access via their mobile app.

1. Create the Region Pool Profile

  • Access the central FleetOps dashboard: Launch Dashboard
  • Go to Vehicle Responsible Person in the sidebar.
  • Click the + Add Person button in the top header.
  • Fill out the profile fields:
    • Full Name: e.g., Mining Region Pool
    • Assigned Region: Choose your region
    • Assigned Site: e.g., Pool or leave blank
    • Mobile Login PIN: Set a unique 4-digit PIN (e.g. 1111)

Driver: Phone Setup & Logging

Get started with the mobile web app, install desktop shortcut, and submit closing odometer.

1. Install to Home Screen

  • Open Chrome (Android) or Safari (iPhone) and navigate to the capture link: Launch Mobile Capture
  • Chrome: Tap the 3-dots in top right → Select Add to Home screen.
  • Safari: Tap Share button → Select Add to Home Screen.

Frequently Asked Questions

📋 FleetOps 2026: Professional System Critique & Future Roadmap

You can download or view the full review report file at /system_critique_2026.md. Here is the summary review:

🌟 Strengths (Why the program is successful)

  • Laser-Focused Utility: It tracks actual vs. budget kilometers, flags overruns, and keeps photo audits without unnecessary complexity.
  • Excel-Style Usability: Drag-and-resize table column borders, wrapping, and headers mimic Excel while saving securely to a database.
  • Offline Capability: Caching user roles and region pools ensures pages load instantly, even in poor connectivity areas.
  • Accountability: Mobile login PIN security and photo uploads keep supervisors accountable.

⚠️ Vulnerabilities & Long-Term Risks

  • Monolithic Codebase: The core logic of the app (app.js) is inside a single 6,000-line file. A single typo anywhere can crash the entire system.
  • Client-Side Aggregation: Calculations are done on the browser. While fast now, it will slow down as logs accumulate over 10,000+ entries.
  • Open Database Rules: The Firestore database utilizes open rules for quick logins. While easy, it is vulnerable to external script tampering.

🚀 Recommended Step-by-Step Roadmap

Here is a detailed, step-by-step roadmap on how we can address and improve each of the three vulnerabilities:

1. Monolithic Codebase (app.js is 6,000+ lines) The Problem: All dashboard charts, reports, resizable tables, authentication, settings, and database synchronization logic exist in a single file. A single JavaScript syntax error can prevent the entire application from loading.
How to Improve it: Adopt ES Modules (JavaScript Modules) to split app.js into separate, focused files using JavaScript's native imports/exports.
Proposed File Structure:
  • index.html (Imports main.js with <script type="module">)
  • src/state.js (Holds global variables, filters, and configuration)
  • src/database.js (Handles Firebase configuration, auth, and database .onSnapshot() listeners)
  • src/tables.js (Manages column resizing, layout persistence, and spreadsheet renderings)
  • src/reports.js (Contains PDF generation, photo reports, and Excel export scripts)
  • src/themes.js (Controls the color preset configurations and DOM overrides)
2. Client-Side Aggregation (Browser-based Calculations) The Problem: The app pulls every single daily log entry from the database and processes them (calculating distances, averages, and YTD budgets) on the user's browser. With 10,000+ entries, this will freeze the browser and slow down page loading times.
How to Improve it:
  • Firebase Cloud Functions (Backend Aggregation): Move the math heavy calculations to the server. When a driver submits a daily log from their mobile phone, a backend serverless function can run instantly to update the vehicle's aggregate metadata (like currentOdo, ytdDistance, and serviceStatus).
  • Firestore Pagination and Query Limits: Update the admin dashboard queries to fetch only the logs needed for the current view (e.g. using .limit(50) and page cursors) rather than fetching all historical logs simultaneously.
  • Archival System: Create an automated task to archive logs older than 1 year into a separate historical collection, keeping the active collection small and fast.
3. Open Database Rules (No security checks) The Problem: The Firestore database has open write access (allow read, write: if true;), meaning anyone with your Firebase project ID could theoretically write scripts to edit, delete, or corrupt your fleet data.
How to Improve it: Apply strict Firestore Security Rules to validate that requests are coming from authenticated, authorized users.
Basic Rules Example:
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    // Vehicles & Drivers: Admins can write, anyone logged-in can read
    match /vehicles/{vehicle} {
      allow read: if request.auth != null;
      allow write: if request.auth != null && request.auth.token.email != null;
    }
    // Daily Logs: Drivers can write their own logs; Admins have full access
    match /logs/{log} {
      allow read, write: if request.auth != null;
    }
    // Issues & Accident Files: Authentic users can submit reports
    match /issues/{issue} {
      allow create, read: if request.auth != null;
      allow update, delete: if request.auth != null && request.auth.token.email != null;
    }
  }
}
Why is the driver Note/Memo or other updates not showing up in the mobile app?
The Mobile App Demo uses a secure offline cache (Service Worker) to allow drivers to submit logs without internet service. Because of this, your browser might be stuck loading an older cached version.

For Computers (Clear Browser Cache):

  1. Open the mobile app demo on your computer (/km/).
  2. Press F12 on your keyboard to open Developer Tools.
  3. Click the double arrow (>>) at the top menu next to Network, and select Application.
  4. In the left-side list under Application, click on Storage.
  5. Click the Clear site data button in the middle, and then reload the page.

For Mobile Phones (Clear Mobile Cache):

  • Android (Google Chrome): Tap the three dots menu in Chrome, then tap the circular Reload icon at the top of the menu.
  • iPhone (Safari): Close the app, go to your iPhone's Settings app > Safari > **Advanced** > **Website Data**. Swipe left on fleetwatcher.co.za and tap Delete.
Why does the app warn me that my odometer is too low?
The system enforces mileage sequence validation. Your new odometer entry must be higher than the last closing reading. If you get a warning:
  1. Re-check your vehicle's dashboard cluster for the exact mileage.
  2. Ensure you didn't accidentally miskey a number (e.g. typing 1234 instead of 12340).
How does the vehicle service tracking work and when does it reset?
1. How it works:
  • Each vehicle has a configured Service Interval (KM) in the Vehicle Registry (e.g., 10,000 KM).
  • The system continuously calculates mileage logged since the last recorded service (which defaults to the starting odometer reading if no service has been logged yet).
  • A Service Warning (yellow badge) is triggered when a vehicle is within 1,500 KM of its next scheduled service milestone.
  • A Due for Service (red badge) is triggered once the current odometer reading meets or exceeds the next scheduled service threshold.
2. When and how it resets:

Once a physical service is completed, it must be logged in the database. A Super Admin resets the status by adjusting the vehicle's last service odometer milestone in the logs database, which shifts the next service target forward by the configured interval and resets all active warnings/danger alerts back to a healthy state.

How does Offline Mode work in remote locations?
When working in mining pits or remote regions without cellular service:
  • The KM Capture App is fully optimized to cache your logged entries in the local browser database.
  • You will receive a confirmation that your entry has been queued locally.
  • Once your mobile phone regains network or Wi-Fi connection, the app will automatically push the cached data to the central Firestore cloud.
What are the differences between User Roles?
FleetOps uses role-based access control to protect operational boundaries:
Role Permissions
Super Admin Full database read/write access. Can add/modify operational regions, set global budgets, and view dashboard analytics across all regions.
Region Admin Can read/write vehicles, responsible persons, and daily logs. Restricted entirely to their assigned operational region scope.
Operator Read-only dashboard view and log checking. Ideal for monitoring teams and generating PDF/Excel reports.
How do I export data and compliance reports to Excel/PDF?
FleetOps makes exporting simple and compliant:
  • Excel Export: Click the "Export Excel" button at the top header from the Vehicle Registry, Drivers Registry, Daily Operations Logs, or Reports page to instantly download a professionally formatted spreadsheet — branded title band, styled header row, zebra-striped rows, auto-sized columns, a frozen header with filters, and red highlighting on overrun/exceeded/missing values.
  • PDF Branding: Every PDF export (Vehicle Registry, Drivers Registry, Daily Operations Logs, Service & Alerts, and Reports) now opens with the same branded Thorburn Security Solutions title band and navy header row as the Excel exports, with zebra-striped rows and color-coded status/overrun badges, for a consistent look across both formats.
  • Live Reports Preview: The Operational Reports screen's preview card is always shown in the same white, spreadsheet-styled "paper" look as the finished Excel/PDF export — not just after you export — so what you see on screen while choosing filters is exactly what you'll get in the file.
  • Service & Alerts PDF: Click "Export PDF" at the top of the Service & Alerts page to download a signature-ready report covering both the Maintenance Schedule Alerts and the Driver Reported Issues & Vehicle Faults sections.
  • PDF Report: Navigate to the Reports page, choose your filter criteria, and click the "Print / Save PDF" button to download a formatted, signature-ready compliance document.
  • New Reports: You can now export the new "Missing Daily Logs Report" (which tracks specific missed dates) and the "Underutilized Vehicles Report" directly to Excel as well!
  • 5-Day PDF Limit on Daily Operations Logs: To keep printed audit sheets a manageable size, the "Export PDF" button on the Daily Operations Logs page only works if the earliest and latest dates in your current filter are 5 days apart or less — this applies to any date range, past or recent. If it's blocked, narrow the date filter (e.g. a Custom Range spanning 5 days or fewer) and try again. This limit doesn't apply to Excel exports.
How do I reset my accessibility theme?
If you set a custom background or font color that is hard to read:
  1. Go to the Theme & Colors section in the sidebar menu.
  2. Click on the Dark Mode (Default) preset button.
  3. The application will instantly reset back to its standard, highly readable slate and sky blue dashboard color palette.
How does the Underutilized Vehicles Report work?
The Underutilized Vehicles Report identifies fleet assets that are sitting idle or barely being driven.
  • It calculates the total distance the vehicle actually drove during the selected period.
  • It calculates what the expected budget distance was for that specific time frame.
  • It displays the Last Movement Date, which looks at the vehicle's entire historical database to tell you the exact date it was last driven.
  • Vehicles with 0% utilization are highlighted in red, and those below 20% are highlighted in orange.
How do I backup my data and synchronize my local computer?
You can easily backup your entire live database.
  1. Go to the Theme & Colors section in the sidebar menu, and scroll down to Super Admin: Database Operations.
  2. Click the Export Full Database (JSON) button. This will safely download three files — vehicles.json, daily_logs.json, and drivers.json — to your Downloads folder.
  3. To sync this downloaded data to your local computer's offline environment, copy those three files into the data/ folder of your local project directory, overwriting the existing copies.
How do drivers add the mobile app shortcut icon to their phone's home screen?
To make the mobile KM Capture app look and behave like a native phone app:

Android (Chrome):

  1. Open Google Chrome and navigate to: https://fleetwatcher.co.za/km/
  2. Tap the three dots (menu) in the top-right corner.
  3. Select Add to Home screen or Install app.

iPhone (Safari):

  1. Open Safari and navigate to: https://fleetwatcher.co.za/km/
  2. Tap the Share button (square icon with an arrow pointing up at the bottom).
  3. Scroll down the menu and select Add to Home Screen, then tap Add in the top right.
How do drivers capture photos using their mobile phone's camera directly?
The mobile app now features two explicit buttons on the photo uploading screen:
  • Take Photo: Opens your mobile device's camera app directly to capture a new photo.
  • From Gallery: Opens your device's photo gallery to choose pre-existing photos.
  • You can capture multiple photos in a single session by tapping "Take Photo" repeatedly. They will be added to the queue in a grid before you upload them.
How do drivers report an accident or a vehicle problem from their phone?
From the vehicle screen in the mobile app, tap the Report Problem button.
  • Mechanical fault: Pick what is wrong, rate how serious it is (Minor / Needs attention / Urgent), optionally add a description, then tap SEND REPORT.
  • Accident: Tap the red Accident? Report it here button instead. Fill in the date, time, and location, describe what happened, and note whether another vehicle or third party was involved, then submit.
Both report types notify the workshop team immediately and appear on the admin side under Service & Alerts → Driver Reported Issues & Vehicle Faults (see the FAQ above on viewing reported issues).
How can managers delete duplicate or incorrect photos from the database?
To delete a photo from the system:
  1. Go to the Reports page in the main dashboard.
  2. Select the Vehicle Photos Report, pick the vehicle, and click the **Run Report** button.
  3. Locate the photo to delete in the report table.
  4. Click the red **Delete** button next to "View Full Size" in the Actions column. Confirm the deletion, and the photo will be permanently removed from the central database.
Where can I see driver-reported accidents and vehicle issues?
When drivers submit vehicle faults or report accidents from their mobile app, they display in two main areas:
  • Service & Alerts Page: Unresolved issues appear inside the Driver Reported Issues & Vehicle Faults section. You will see a red alert count badge next to "Service & Alerts" in the sidebar. You can click Resolve & Close to close them.
  • Vehicle Photos Report (Reports Page): Any accident or issue photos submitted by drivers will automatically load into the report, labeled as Driver (Accident/Issue Report) in the Uploaded By column.
How do I change presets and customize the application theme?
To customize your workspace theme:
  1. Click on the Theme & Colors section in the sidebar.
  2. Choose from the **12 preset themes** (Dark Mode Default, Soft Light Mode, High Contrast, Cozy Amber, Cool Slate, Forest Moss, Deep Ocean, Cyberpunk, Desert Sand, Midnight Plum, Crimson Velvet, and Nord Frost) or create a custom one by tweaking background, sidebar, primary, and font colors.
  3. The theme settings are automatically saved and loaded on your device.
How do I resize table columns, and does the system save my layout?
To make reporting easier, all tables behave like Excel:
  • Resize Columns: Hover over the border line of any column header, then click and drag left or right to change its width.
  • Automatic Saving: The moment you release your mouse, your column layouts are stored in your browser's local cache. The next time you open the screen or reload the app, your columns will stay exactly as you adjusted them.
How do I change the font size to be smaller?
If you need a more compact view to fit more data on your screen:
  1. Go to the Theme & Colors section in the sidebar, and scroll down to the Custom Colors panel.
  2. Under the Font Size selector, pick anything from Tiny (smallest) down through Double Extra Small, Extra Small, Small (Default), Medium, Large, up to Extra Large (biggest).
  3. The text size across the entire application will update instantly to fit your density preference.
How do I log that a vehicle has been serviced from the mobile app?
Drivers can report a completed service event directly from their mobile phone during mileage capture:
  1. On the Odometer Capture Screen, enter the closing odometer reading from the dashboard.
  2. Before tapping save, check the checkbox labeled "Vehicle Serviced Today".
  3. Tap **SAVE**. The system will save this reading as the vehicle's new Last Service KM milestone and clear any active overdue alarms in the administrator dashboard automatically.
Where do I find driver login PIN numbers and vehicle assignments?
To simplify administration, driver credential tracking is merged directly into vehicle tracking:
  • Go to the Operational Reports page.
  • Select the report named "Responsible Person Vehicles & Security Pin" from the dropdown list.
  • This consolidated sheet displays the driver name, contact phone, their mobile application login PIN, and all vehicles assigned under their control in a single table view.
Why do table header columns stay locked when scrolling down?
When scrolling through dense, long data grids (such as reports or the daily logs table), all column headers are locked in place (sticky) at the top of the viewport. This keeps the field labels visible at all times, styled with high contrast slate coloring and border highlights to easily identify column names.