Fleets
Creating a fleet
Open the Fleets section
Click Fleets in the left sidebar. The fleet form appears on the left side of the screen.
Fill in the fleet details
Complete the form fields:
| Field | Required | Description |
|---|---|---|
| Nombre | Yes | Display name for the fleet (e.g., “North Region”) |
| Descripción | No | Optional free-text description of the fleet’s purpose or territory |
| Admin ID | Yes | Defaults to 1 (the seeded admin). Change this if you are assigning ownership to a different admin user |
Editing a fleet
In the fleet table, click Editar on the row you want to change. The form on the left switches to edit mode and pre-fills with the fleet’s current values. Make your changes and click Actualizar flotilla to save. To cancel without saving, click Cancelar.Deleting a fleet
Click Eliminar on the row you want to remove. The fleet is deleted immediately.Vehicles
Adding a vehicle to a fleet
Open the Vehicles section
Click Vehicles in the left sidebar. The vehicle registration form appears on the left side.
Select a fleet
Choose the target fleet from the Flotilla dropdown. The list is populated from all existing fleet records.
Enter vehicle details
Complete the remaining fields:
| Field | Required | Notes |
|---|---|---|
| Marca | Yes | Vehicle brand (e.g., Ford, Toyota) |
| Modelo | Yes | Model name (e.g., Ranger, Hilux) |
| Año | No | Model year, selectable from 1980 to the current year |
| Placa | Yes | Licence plate; automatically converted to uppercase on save |
| Estado de licencia | No | active or expired — defaults to active |
Additional fields — odometer unit, maintenance interval, insurance expiry date, and document uploads — are managed via the backend API rather than through the desktop form. Use the API directly or a complementary admin interface for those fields after creating the vehicle record.
Full vehicle field reference
The following fields are stored on each vehicle record. Some are only editable via the API.| Field | Type | Description |
|---|---|---|
brand | string | Vehicle manufacturer |
model | string | Model name |
year | integer | Model year |
licensePlate | string | Unique licence plate (stored uppercase) |
licenseStatus | active | expired | Operational licence validity state |
odometerUnit | km | mi | Unit used for odometer readings and maintenance intervals |
maintenanceInterval | integer | Distance between mandatory maintenance events (default: 5000) |
insuranceExpiry | date | Insurance policy expiry date (YYYY-MM-DD) |
insuranceDocUrl | text | Path to uploaded insurance document |
registrationDocUrl | text | Path to uploaded registration document |
Uploading vehicle documents
Two document types can be attached to a vehicle: an insurance document and a registration document. Both accept image files or PDFs.- Insurance document
- Registration document
Send a
multipart/form-data PATCH request to the vehicle update endpoint and include the file under the field name insurance_doc. The backend saves the file to uploads/vehicles/ and stores the resulting path in insuranceDocUrl.If you submit an update without including a file, the existing document URL is preserved. To explicitly clear a document, pass an empty string for
insuranceDocUrl or registrationDocUrl in the request body.Understanding licenseStatus and insuranceExpiry
These two fields have direct operational implications:
licenseStatus
Indicates whether the vehicle’s operating licence is currently valid. A status of
expired is surfaced in the dashboard as a warning and counted in the “vehicles with expired licence” sub-metric. Technicians should not be assigned to vehicles with an expired licence status.insuranceExpiry
The date on which the vehicle’s insurance policy expires. When this date passes, the vehicle is effectively uninsured. Monitor this field to schedule policy renewals before the expiry date. The date is stored as
YYYY-MM-DD.Filtering vehicles by fleet
The Vehicles section displays all vehicles by default. To narrow the list to a specific fleet, the backend supports afleetId query parameter on the vehicles endpoint. Append ?fleetId=<id> to the API call to retrieve only the vehicles belonging to that fleet.