How geeksgod/automated-license-plate-recognition works
Bowser Watch is a desktop drive-off prevention application. Its primary runtime path captures video, recognizes and normalizes plates, aggregates recent detections, checks each plate against a watchlist, and displays plate records and alerts in the pump panel. Separate screens manage the watchlist and fueling logs; fueling records can be added to the watchlist or opened in a simulated police-report dialog. MongoDB backs watchlist and fueling data. The excerpts show the central workflow and UI wiring; other UI or configuration details are included only where supported by the source index or tree.
Components 15
Runtime and detection
- Desktop application
entry.py - App settings
config.py - Video worker
process.py - Plate recognition
watcher/inference/alpr.py - Plate record
watcher/models/plateinfo.py - Detection queue
watcher/utils/platequeue.py
Data persistence
- MongoDB manager
watcher/utils/db.py - MongoDB
Pump monitoring
- Pump control panel
ui/pumpcontrollpanel.py - Navigation sidebar
ui/sidemenu.py
Record management
- Watchlist management
ui/watchlist.py - Fueling log
ui/fuelingrecord.py - Fueling record card
ui/uicomponent/fuelcard.py - Police report dialog
ui/reportpolice.py
Other components
- Operator
Connections 23
- Operator → Desktop application: uses
entry.py - Desktop application → App settings: loads
- Desktop application → Video worker: starts
entry.py - Desktop application → Pump control panel: routes detections
entry.py - Desktop application → Navigation sidebar: displays
entry.py - Desktop application → Watchlist management: displays
entry.py - Desktop application → Fueling log: displays
entry.py - Video worker → App settings: configures
process.py - Video worker → Plate recognition: detects plates
process.py - Video worker → Plate record: creates records
process.py - Video worker → Detection queue: adds detections
process.py - Video worker → MongoDB manager: checks watchlist
process.py - Video worker → Pump control panel: emits records
entry.py - Detection queue → MongoDB manager: logs expired records
watcher/utils/platequeue.py - MongoDB manager → MongoDB: reads and writes
watcher/utils/db.py - Pump control panel → MongoDB manager: deletes resolved plate
ui/pumpcontrollpanel.py - Pump control panel → Detection queue: renders records
ui/pumpcontrollpanel.py - Watchlist management → MongoDB manager: manages entries
ui/watchlist.py - Fueling log → MongoDB manager: loads logs
ui/fuelingrecord.py - Fueling log → Fueling record card: renders records
ui/fuelingrecord.py - Fueling record card → Fueling log: emits actions
ui/uicomponent/fuelcard.py - Desktop application → MongoDB manager: adds watchlist entry
entry.py - Desktop application → Police report dialog: opens report
entry.py