- Getting Started
- Period Management
- Fleet & Roster Management
- Order Management
- Route Optimization
- Driver App
- URL:
http://localhost:3000 - Navigation: Use the left sidebar to switch between views:
- 📊 Dashboard - Map view and analytics
- 🚛 Fleet - Driver roster and period management
- 🚗 Vehicles - Vehicle fleet management
- 👤 Drivers - Driver profiles and assignments
A Period is a defined date range (e.g., a week, a month, or a custom range) that allows you to plan routes and assign drivers in advance. This is perfect for weekly scheduling, holiday planning, or any multi-day operations.
-
Navigate to Fleet Tab
- Click on the 🚛 Fleet icon in the left sidebar
-
Create Period
- Click the "+ Create New Period" button (top-right)
- Fill in the form:
- Period Name: e.g., "Week 5", "Holiday Rush", "Feb 3-9"
- Start Date: Defaults to today (you can change it)
- End Date: Defaults to 5 days from today (you can change it)
- Click "Add New Period"
-
Period Created!
- The modal will close
- Your new period appears in the "Select Period" dropdown
- Click "+ Create New Period" to open the Period Manager
- Scroll to "Existing Periods"
- Click the Edit icon (✏️) next to the period you want to modify
- Update the details and click "Update Period"
- Click "+ Create New Period" to open the Period Manager
- Scroll to "Existing Periods"
- Click the Trash icon (🗑️) next to the period
- Confirm the deletion
⚠️ Note: This will also remove all driver assignments for this period
When you select a period, the Fleet view splits into two sections:
- ✅ Rostered Drivers - Drivers assigned to work this period
- ⚪ Available Pool - Drivers not yet assigned to this period
-
Select Your Period
- In the Fleet tab, use the "Select Period" dropdown
- Choose the period you want to roster (e.g., "Week 5")
-
View Available Drivers
- Scroll to the "Available Pool (Not in Roster)" section
- You'll see all active drivers with in-service vehicles
-
Assign Drivers
- Click the "Assign" button on any driver card
- The driver immediately moves to the "Rostered" section
- A green "ROSTERED" badge appears on their card
-
Remove Drivers (if needed)
- In the "Rostered" section, click "Remove" on any driver
- They move back to the Available Pool
Option 1 - From Drivers Tab:
- Go to the Drivers tab
- Click on a driver card
- In the Driver Editor, select a vehicle from the dropdown
- Click "Save Changes"
Option 2 - Quick Edit from Fleet:
- In the Fleet tab, click on any driver card
- The Driver Editor opens
- Change the vehicle assignment
- Click "Save Changes"
- Go to the Vehicles tab
- Click on a vehicle card
- Toggle the "Vehicle is In Service" checkbox
- Click "Save Changes"
Important: Only drivers with In-Service vehicles appear in the Fleet roster.
-
From Dashboard View
- Click the "+ Order" button in the top header
-
Fill in Order Details
- Delivery Address: Customer's address
- Contact Person: Customer name
- Contact Mobile: Phone number
- Priority: NORMAL, HIGH, or URGENT
- Weight (kg): Package weight
- Volume (m³): Package volume
-
Save Order
- Click "Create Order"
- The order appears in the "Pending Orders" panel
- Click on an order card in the "Pending Orders" panel
- Or click the Edit icon (✏️) on an order card
- Modify the details
- Click "Save Changes"
Delete Single Order:
- Click the Trash icon (🗑️) on an order card
Delete All Pending Orders:
- In the "Pending Orders" panel header
- Click "Delete All Pending"
- Confirm the action
-
Select Your Period (or use Daily View)
- Use the period selector in the top header
- Or use the Fleet tab's period dropdown
-
Ensure You Have:
- ✅ Pending orders in the system
- ✅ Active drivers (with in-service vehicles)
- ✅ If using a period: Drivers rostered to that period
-
Run Optimizer
- Click the ⚡ Run Optimizer button in the top header
- Wait for the optimization to complete (you'll see activity logs)
-
View Results
- Routes appear on the map
- Each driver's route is color-coded
- Click on a driver in the sidebar to see their schedule
- Daily View: Uses all active drivers with in-service vehicles
- Period View: Uses only the drivers rostered to that period
- Date Selection: Routes are planned for the period's start date
- Click the "Clear Routes" button in the top header
- Confirm the action
- All routes for the selected date/period are removed
- URL:
http://localhost:3000/driver - Login: Use driver credentials (username/password)
-
View Assigned Route
- See all stops for the day
- View customer details and addresses
-
Update Delivery Status
- Mark stops as:
- ✅ Delivered
- ❌ Failed
- ⏸️ Pending
- Mark stops as:
-
Real-time Location
- The app sends location updates to the dashboard
- Managers can see driver locations on the map
-
Shift Management
- Start Shift: Begin your workday
- End Shift: Complete your workday
-
Monday Morning:
- Create a period for the week (e.g., "Week 5: Feb 3-9")
- Assign drivers to the roster
- Import/create orders for the week
-
Daily Operations:
- Run optimization each morning for that day
- Monitor driver progress on the map
- Handle exceptions (failed deliveries, new orders)
-
End of Week:
- Download reports for analysis
- Review driver performance
- Plan for next week
- ✅ Accurate Addresses: Ensure delivery addresses are complete
- ✅ Realistic Capacities: Set vehicle capacities accurately
- ✅ Priority Orders: Use HIGH/URGENT for time-sensitive deliveries
- ✅ Active Vehicles: Keep vehicle status updated (In Service / Out of Service)
- ✅ Roster Planning: Assign drivers to periods in advance
- Check: Do you have active drivers?
- Check: Are their vehicles marked as "In Service"?
- Check: If using a period, are drivers rostered to it?
- Solution: Add orders via the "+ Order" button
- Check: Orders must have status "PENDING"
- Solution: Clear browser cache and refresh
- Check: Ensure optimization completed successfully (check activity log)
- Check: Is the driver's vehicle "In Service"?
- Solution: Go to Vehicles tab and enable the vehicle
- Esc: Close any open modal/editor
- F12: Open browser console (for debugging)
For technical issues or feature requests, check the console logs (F12) and contact your system administrator.
Database Migration: If you encounter "relation does not exist" errors, run:
uv run python -m scripts.migrate_periodsVersion: 1.0
Last Updated: February 2, 2026