Current Occupancy
—
Total Entries
—
Total Exits
—
Total zone occupancy
—
Today
📷 Live Camera Feed
LIVE
📅 Hourly Store Traffic
📊 Traffic Trend (7-day)
📋 Recent Detections
—
→
| Trap | Type | Current | Activity | Last Update |
|---|---|---|---|---|
| Waiting for data... | ||||
🚧 Store Crossings
| Time | Store | Event | In | Out |
|---|---|---|---|---|
| Waiting for data... | ||||
Analytics
Charts & metrics
—
Unexited Visitors
loading…
—
Total Entries
loading…
—
Total Exits
loading…
Hourly Traffic
Store Performance
Zone Heatmap
📅 Hourly Store Traffic
Entry/Exit Ratio
Zone Distribution
Traffic Trend (7-day)
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 zones…
Click to toggle. None selected = all zones.
Summary
Crossings Log
Zone 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
🏬 Branches
📱 SMS Offline Alerts
Comma-separated phone numbers. SMS is sent when a camera has been unreachable for the duration below.
Only send alerts if cameras remain unreachable for this duration.
📧 Email Alert Settings
Traps with the email alert channel send an alert from MALLVISION to these recipients. SMTP server, sender, and credentials are read from the configuration.
🪤 Trap Configuration Summary
Total Traps
0
Counts shown per configured trap kind. Use the Trap Manager tab to create and modify traps visually.
🗄 Configured Traps
🗄 Cameras in Database
Organisation Management
Create tenants & manage their status
🏢 Create Organisation
Creates Mallvision-<ORGANISATION_NAME> and mallvision_<organisation_name>, initialized from MALLVISION/db_struct.sql.
📋 Organisations
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.