HAULWRIGHT FLEET OPERATIONS | WEBMASTER HANDOVER
Training/pilot build | 27 October 2026 | VERIFIED REPACKAGE

THIS IS THE EXISTING HAULWRIGHT APPLICATION, NOT A NEW OR REPLACEMENT BUILD.
Its HTML, CSS, JavaScript, Python server and truck branding have been retained.
A shared SQLite database records changes across browsers connected to the same server.

QUICK LOCAL TEST
1. Extract the ZIP. Keep the entire Haulwright_Fleet_Operations directory together.
2. Install Python 3.11 or newer on the computer that will run it.
3. Windows: double-click start_windows.bat. (Mac: bash start_mac.command;
   Linux: bash start_linux.sh in a terminal.)
4. When the installation finishes, open http://127.0.0.1:8080/ on that computer.
5. Test only with fictional/sample training records. The sample database is
   created automatically on the first run; repeat launches preserve records.
6. Do not double-click web/index.html: it requires the Python backend.

WEB DEPLOYMENT AT haulwright-gb.com/training/
- HOSTING: A Python-capable VPS or managed application host is REQUIRED.
  Static HTML or ordinary website-only hosting will not run the database app.
- DEPLOY: Read README.md. Use deploy/haulwright.service and
  deploy/nginx-training.conf as adaptable examples, not turnkey credentials.
- STORAGE: Set HAULWRIGHT_DATA_DIR to a persistent, writable PRIVATE folder
  outside the public website root. This stores the SQLite DB and photo uploads.
- URL: Reverse proxy /training/ to the Python server, stripping the path prefix.
- TLS: Configure HTTPS and confirm /training/api/health returns JSON with ok=true.
- TEST: Open /training/ and /training/api/bootstrap, create one sample load,
  upload a test delivery ticket, confirm the load, and inspect its linked invoice.
- BACKUPS: Read the 'Backups and recovery' section in README.md. Back up the
  database AND uploads/ photos, and test restoration periodically.

IMPORTANT SECURITY NOTICE
The user requested no login for training. Therefore the software does NOT
authenticate operators or restrict modifications. The audit actor name is
self-declared, not an independently verified identity. Anyone visiting a
publicly accessible URL can inspect, add or change training records.
DO NOT use a publicly accessible no-login instance for real customer details,
driver license information or confidential financial/operational data.
Add authentication, permissions, TLS, backups, and hardened auditing before
handling live company records. There is NO live truck GPS tracking.

KEY MODULES
Home; Dispatch; Customers; Trucks; Drivers; Daily Logs; Fuel; Maintenance;
Inspections; Other Costs; Invoices; Reports; Audit; Guide.

LOAD CHAIN
Each new load gets HW-YYYY-NNNNN, tied to its customer, truck, driver,
pickup, destination, cargo, planned quantity and unit rate. Completing a
load requires actual quantity, receiver, ticket number and a photo, then
creates a linked draft invoice with number INV-YYYY-NNNNN. Driver logs and
truck costs are linked at the truck level; those costs are not automatically
allocated to individual loads. Photos live in private server storage.

FOR FULL DETAILS: README.md. For QA details: VALIDATION_REPORT.txt.
