Van List 2026

Web-based fleet assignment system for assigning drivers to vans with multi-user authentication, role-based access control, daily persistence, audit logging, and XLSX export.

View on GitHub

Key Features

🔒
Role-Based Access Control

Three roles — Admin, Operator, and Read-only — with permissions enforced at both the API and UI levels.

🔧
Flexible Pairing

Assign any driver to any van per day with autocomplete. Database constraints prevent double-booking.

📤
Bulk Upload

Import vans and drivers from CSV or XLSX files. Re-uploading updates existing records without duplicates.

📊
XLSX Export

Export daily or weekly assignment reports to XLSX with a single click or API call.

📑
Audit Trail

Every data-modifying action is logged with user, action type, entity, details, and timestamp.

🚧
Docker Ready

Ship with Docker Compose. Data persists in named volumes. Works on AWS, GCP, Azure, or any VPS.

Tech Stack

ComponentTechnology
BackendPython 3.12 / FastAPI
DatabaseSQLite (WAL mode) with ACID constraints
ORM + MigrationsSQLAlchemy + Alembic
AuthenticationJWT (httpOnly cookies + Bearer tokens)
Password Hashingbcrypt via passlib
FrontendJinja2 + Bootstrap 5 + Vanilla JS
Import/Exportpandas + openpyxl
Testspytest (55 tests)
DeploymentDocker + docker-compose

Quick Start

Local
cd "Van List 2026"
pip install -r requirements.txt
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

Open http://localhost:8000 and log in with admin / admin123.

Change the default password immediately after first login.

Docker
cd "Van List 2026"
docker compose up -d

Data persists in Docker volumes vanlist-data and vanlist-backups.

Access Control

RoleAssignmentsUploadManage UsersToggle Vans/DriversAudit LogExport
AdminCreate/Edit/DeleteYesYesYesYesYes
OperatorCreate/Edit/DeleteNoNoNoNoYes
Read-onlyView onlyNoNoNoNoYes