Dart
DART
Invalid username or password
No signal right now — sign in works offline and diaries sync when you're back in range.
Password trouble? Ask the office.
A DART system · www.dartgroup.co.za
DART
DART
Daily Diary
All synced
Offline queue: 0 entries pending.
Warning
⏱ Log Standing Time
A claimable day where the crew was on standby but no work was performed.
Who and what was on standby — recorded so the standing time can be quantified later. Each person is logged with the standing hours.
Scan Employee Badge
Today on site
Assigned project
No diary started yet
Start today's diary to pick a project.
Needs attention
Nothing outstanding — all synced.
What would you like to capture?
Only standing time today?
No work performed — waiting for client, weather, or breakdown. Logs a claimable day without filling the full diary.
A. Project & Date
B. Equipment on Site
EquipmentOdo/Hr StartReason if changedOdo/Hr EndMachine HrsFuel (L)RemarksPhoto
C. Personnel on Site
QR scan required for this project — supervisors must scan each worker's Odoo badge to add them. Manual entry is disabled.
NameRole / TitleOperator OfTime InTime OutMan-Hrs
D. Site Timeline — Events
The day runs from Start of Shift to End of Shift (set by Time On / Off Site above). Add each event with only its start time — the duration is worked out automatically from the next event, and everything must add up to the site hours. Pick an … Issues event to log lost time. With more than one machine on site, fill in a timeline per machine — switch machines below.
Start End (auto) Hrs Event Detail Responsible
F. Visitors / Inspections
Works like the events timeline: each visit has a Start and runs until the next visit (or End of Shift). Drag ⠿ to reorder.
Start End (auto) Hrs Name Organisation Purpose
G. Health, Safety & Environment
H. General Notes & Totals
Site Photos (optional, up to 3)
Daily Diary Report
View
Pick a project on the left — one consolidated, at-a-glance operational report for the whole project. Printable to PDF.
Machines whose assigned checklist is overdue for its frequency (daily > 3 days, weekly > 10 days, monthly > 22 working days since the last submission).
Litres per machine hour — last 12 months (diary fuel ÷ diary machine hours).
Open checklist issues. Resolve (with a comment) to clear. “Machine Handover” prints every open issue for the selected machine (with recurrences & photos) as one technician document.

Select filters and click Refresh.

View
Filter Invoices
Invoices

Click Refresh to load invoices.

Invoice Coverage Report
Diary Entries

Click Refresh to load coverage data.

Invoice Discrepancy Report
Per-Project Summary

Click Refresh to load discrepancy data.

Link Diaries to Invoice
Settings
📡 Communications
Checking WhatsApp bridge…

Scheduled Messages

All scheduled WhatsApp messaging. Custom schedules carry live diary data and can be created here or drafted by an admin's AI assistant (Claude, Copilot) through the AI connector.

Loading…
Built-in schedules
New schedule

Weekly Report

WAHA not connected — configure WAHA_URL and WAHA_API_KEY first.

Diary Reminders

Personal WhatsApp reminders to site managers. Enable per project in the table below. Never sends on Sundays.

Project Contacts

Assign a site manager and escalation contact per project. Reminders are opt-in — enable the toggle per project.

Loading…

Machine Alert Recipients

Who gets GPS tracker alerts (towing, power cut, low voltage, after hours…) on WhatsApp. Which alert types are sent is set under Fleet & checklists → Machine Alerts.

Loading…

Message Log

Loading…
Odoo Integration
Database Backup
One CSV per table inside a ZIP — portable, human-readable, restorable.
AI connector (MCP)

Connect Claude, GitHub Copilot, Cursor or any MCP-capable AI assistant to the diary. Access is read-only on all data, except that a permitted assistant may draft WhatsApp schedules, which wait for approval in Communications. Passwords, API keys and other secrets are never exposed.

The server doesn't know its public address. API keys work, but claude.ai sign-in is off until APP_PUBLIC_URL is set (e.g. https://site.dartgroup.co.za).
A legacy MCP_API_KEY environment variable is still accepted. Once your clients use keys issued below, remove it from the server environment.
Endpoint

claude.ai / Claude app: Settings → Connectors → Add custom connector → paste the endpoint. You will be asked to sign in with an admin account. Claude Desktop/Code, VS Code Copilot, Cursor, Copilot Studio: create a key below and use the setup snippet shown.

API keys
Loading…
None ticked = all projects. Clear
Connected apps (OAuth)
Recent activity
Odoo Connection Settings
In Odoo: Profile > Account Security > API Keys
Projects 0
Showing active only.
Equipment / Fleet 0
Showing active only.
Personnel / Employees 0
Showing active only.
User Management
Edit User
Add New User
Maintenance Due — Hours to Service

Loading…

Odometer Continuity Audit

Scans all diary entries for odometer gaps where a diary's starting reading doesn't match the previous entry's ending reading for the same equipment. Sorted by gap size.

Deleted Diaries — Recycle Bin

Deleting a diary archives it rather than destroying it — entries here can be restored in full, with their invoice links and photos. Purging is permanent.

Loading…

Bulk Import — Historical Diaries

Import previous daily diary entries from an Excel spreadsheet. Download the template, fill in your data, then upload it here.

Opens pre-filled .xlsx with instructions and column reference
Upload Completed Template
Importing…
🔧 Checklist Templates

Author and edit equipment checklist templates. Templates attach to a category (or a single machine, or are global). Editing never changes past submissions — they snapshot the item text + revision.

🏷 Checklist Categories & Equipment Tagging

Equipment, projects and people are synced from Odoo and read-only here. Categories are an in-app grouping; tag an existing machine into a category so it inherits the matching checklist templates.

Equipment → Category assignments
📡 GPS Trackers

Link each tracker to its machine and set the date it was fitted. Engine-hours checks and hour-meter readings only count from the installation date. Live status and routes are on the Machines tab.

Loading…
🚨 Machine Alerts
Loading…
🛠 OEM Maintenance Intervals

Set service intervals per machine (hours). 'Current hours' is the latest hour-meter (odo) reading from the daily diary. Next-due / overdue is computed below. (WhatsApp alerts can be wired to this later.)

When any service on this machine comes within the window (or is overdue), that person gets one WhatsApp per due-point — checked daily.
Custom 'set hours' rules
Machines — GPS tracking
Loading…
Route
RouteNo data (gap > 10 min)
Times are SAST.
Engine hours
Select a machine.
Engine hours = ignition-on time until the engine controller (SmartGen) is connected; key-on with the engine off still counts. "No data" is ignition-on time with a gap of more than 15 min between records — not counted as engine hours.
Hours variances — tracker vs diary
Loading…
Checked daily at 06:15 SAST for the last 7 days, only from each tracker's installation date. A difference counts when it exceeds 0.5 h or 10%, whichever is larger.
Alerts
Loading…
Checked every minute. Data that arrives more than the "late" limit after it happened (tracker was out of signal) is recorded but not sent, except towing and power cut, which are sent marked as delayed. Rules and thresholds: Admin → Fleet & checklists. WhatsApp recipients: Admin → Communications.
Dashboards
FILTER CLEAR ALL · carries to every dashboard view
Invoice Coverage by Project
Uninvoiced Diaries — No Reason Given chase these first
Submission Compliance —

Loading…

Hours & Utilisation — Last 12 Months
Delay Hours by Category
Delay Hours by Who Is Responsible Client-caused time is recoverable
Hours on Site — Per Person (last 90 days)
Man-Hours by Month
Estimated Annual Utilisation — Per Machine machine hrs ÷ available machine hrs · last 12 months

Loading…

Fuel per Machine Hour vs KPI
Who Operated What — From the operator allocated on each diary — one per machine per day

Loading…

Equipment Status

Loading…

Unresolved Equipment Issues

Loading…

Equipment — Machine & Idle Hours
← Choose entry type
🔧
Equipment Checklists
New Checklist
Site Consumables — restock request (optional; separate from machine checks)
Sign-off
Entry Detail