Current Occupancy
—
Total unoccupied seats
—
Total Cameras online
—
Total zone occupancy
—
Today
📷 Live Camera Feed
LIVE
📅 Hourly Occupancy
📊 Occupancy Trend
🚌 Vehicle Detections
| Time | Vehicle Numberplate | People Detected | Free Seats | Smoke/Fire | Fights/Aggression |
|---|
Analytics
Charts & metrics
—
People Detected
loading…
—
Fire/Smoke Incidents
loading…
—
Aggression Incidents
loading…
Hourly Occupancy
Vehicle Performance
Heatmap
📅 Hourly Occupancy
Seat Occupancy
People per Vehicle
Weekly Occupancy Trend
Reports
Filter and query live data from the database
✨ AI-Powered Reports
Use natural-language prompts to generate executive-ready traffic reports
Quick Prompts
Loading templates…
Select a quick prompt or write a custom request to generate the first AI report.
🔍 Query Filters
Loading vehicles…
Click to toggle. None selected = all vehicles.
Summary
Safety Log
Vehicle Occupancy
Comparative
⏳ Loading summary…
Live Zone Editor
Draw zones directly on the live camera feed
Live Camera View
Click "Start Drawing" to create a new zone
📷 Main_Entrance · occ: —
drag vertex handles to reshape
Loading tripwires from backend…
💡 Tripwires drawn here sync live with the Python counter — no restart needed.
Zones (0)
No zones yet.
Click Add new zone
then start drawing.
Click Add new zone
then start drawing.
How to Draw
- Fill in zone details above
- Choose Polygon / Rect / Line / Tripwire
- Click Start Drawing
- Click on camera feed to place points
- Click ✓ Finish (or first point) to close
- Drag any ● handle to reshape
- Click ✏️ to rename / change capacity
↔ Tripwire mode:
Draw 2 points parallel to a store entrance.
Green arrow = IN | Red arrow = OUT
Use ✏️ to change entry direction after drawing.
Draw 2 points parallel to a store entrance.
Green arrow = IN | Red arrow = OUT
Use ✏️ to change entry direction after drawing.
Trap Designer
Draw a trap on the camera, set its thresholds, arm it. The counter hot-reloads within 1 second — no restart.
REC
CAM ···
--
💡 Drag vertex handles to reshape · right-click a handle for options ·
armed traps for this camera are shown in colour
Trap configuration
1Trap type
2Name & geometry
3Parameters & schedule
→
seconds
Trap Library
Every trap type the system knows. Each one is a data object — the designer form is generated from it.
The crowd is the sensor. People walk in wearing the weather (Umbrella Index),
carrying the economy, and reacting to what cameras can't see — swerving around invisible spills,
lighting phone-torches in blackouts, stepping back from fights before they start. Think of a new
one next week? Click + Define new trap type, compose it from the primitives, and
it is immediately drawable, armable, and in the config — no code, no deployment, no
restart.
Armed Traps
Everything currently watching. Toggle off to disarm without deleting; test-fire to preview the alert.
Trap Alerts
What the manager sees. Each alert cites its trap, camera and snapshot; the one-liner comes from the locally hosted LLM — no cloud cost.
—
Notifications
Camera health alerts & system events
| Time | Type | Message | |
|---|---|---|---|
| Loading... | |||
Settings
Configuration
📷 Camera Configuration
📋 Camera Models
🚗 Vehicle Fleet
📱 SMS Offline Alerts
An SMS is sent to each number once when a camera has been unreachable for 2+ consecutive minutes. Separate multiple numbers with commas.
📧 Email Alert Settings
Traps with the email alert channel send an alert from FLEETVISION to these recipients.
🚗 Vehicles in Database
User Management
Create accounts & assign roles
👤 Create User Account
📋 Existing Users
Config JSON
The single source of truth this UI edits.
These keys —
trap_types and traps — live in
config.json alongside the existing tripwires and zones.
The portal API writes the file atomically; the vision worker polls its modification time and
hot-reloads within 1 second, exactly as tripwires do today. Coordinates use the same
0–1000 overlay space as the current Zone Editor, so nothing in the counting pipeline changes shape.