Overview
How RouteRunner Works
RouteRunner is a multi-tenant delivery app. Each customer is independent with their own drivers, routes, and data.
🏢
Customers
Each customer has a unique 4-digit ID, their own drivers, route slots, start address, and delivery settings.
👤
Drivers
Each driver belongs to one customer and logs in with the customer's 4-digit ID plus their personal 6-digit PIN.
🗂️
Route Slots
Each customer can have multiple named route slots (e.g. Route 1–5). Drivers save and load routes from these slots.
🔒
Data Isolation
Each customer's routes, history, address books, and photos are completely isolated from other customers.
Section 2
Admin Login
1
Go to Admin Login
Navigate to /Login/Admin or click Administration at the bottom of the driver login page.
2
Enter the Admin PIN
The 6-digit admin PIN from appsettings.json. Default is 000000 — change immediately after deployment.
3
Access the Admin Panel
You'll see a list of all customers. Tap any customer to manage their drivers and settings.
⚠️
Change the default admin PIN (000000) before going live. Edit appsettings.json — changes take effect immediately.
Section 3
Managing Customers
1
Add a customer
Enter a 4-digit Customer ID and company name on the Admin Panel home, then tap Add.
2
Edit customer details
Tap any customer to open their detail page. Update ID, name, start address, route slot names, and proof of delivery setting.
3
Activate / Deactivate
Tap the Active / Inactive chip to toggle their access. Inactive customers cannot log in.
💡
Changing a Customer ID renames their data folder automatically. All existing routes, history, and address books are preserved.
Section 4
Managing Drivers
➕
Add a Driver
Enter name and 6-digit PIN at the bottom of the customer page, then tap + Add.
✏️
Edit a Driver
Tap Edit on any driver row to change their name, PIN, or active status.
🔑
Change PIN
Open edit dialog → enter new 6-digit PIN → Save. Changes take effect immediately.
🚫
Deactivate
Uncheck Active in the edit dialog. Data is preserved.
⚠️
Each driver PIN must be unique within the same customer. Two drivers cannot share the same PIN.
Section 5
Customer Settings
| Setting | Description |
| Customer ID | 4-digit login identifier. Changing renames the data folder. |
| Company Name | Shown in the app header for drivers. |
| Start Address | Default start for route optimization when GPS is unavailable. |
| Route Slots | Comma-separated list of slot names. e.g. Route1, Route2, Route3 |
| Require Proof of Delivery | When on, drivers must take a photo before marking delivered. |
ℹ️
All settings take effect immediately after tapping Save Changes — no app restart needed.
Section 6
App Configuration
Global settings are in appsettings.json in the app root.
| Key | Description |
| AdminPin | 6-digit admin panel PIN. Default: 000000. |
| DefaultCustomerId | Fallback customer ID when session has no customer context. Default: 1000. |
💡
appsettings.json supports hot-reload — changes take effect within seconds without restarting.
Section 7
Data & Backup
All data is stored as JSON files under App_Data/customers/.
| Path | Contents |
{id}/info.json | Customer settings: name, start address, route names, proof of delivery |
{id}/drivers.json | Drivers with IDs, names, and PINs |
{id}/routes/ | Saved route files (Route1.json, Route2.json…) |
{id}/history/ | Archived completed routes |
{id}/addressbook/ | Address book files per route slot |
{id}/photos/ | Delivery photos by route slot |
⚠️
Back up the entire App_Data/ folder regularly. There is no database — the JSON files are the data.
Reference
Quick Reference
| Task | How |
| Add customer | Admin Panel → 4-digit ID + name → Add |
| Add driver | Customer page → name + PIN → + Add |
| Reset driver PIN | Customer page → Edit driver → new PIN → Save |
| Disable driver | Customer page → Edit driver → uncheck Active → Save |
| Change customer ID | Customer page → change ID → Save Changes |
| Set start address | Customer page → Start Address → Save Changes |
| Disable proof of delivery | Customer page → toggle off → Save Changes |
| Change admin PIN | Edit appsettings.json → change AdminPin → save |
| Back up all data | Copy entire App_Data/ folder |