How karchun0910/smart_survillance_system_quest works
Smart Surveillance is a control panel and API for camera status, policy rules, observations, and generated events. The visible workflow is operator rule management and status/event review in the frontend; observations enter through the API, are evaluated against enabled rules and cooldowns, and may produce events. The detector or camera-capture path that submits observations is not established by the excerpts, so it is not drawn. Relationships below are limited to shown calls, imports, and frontend requests.
Main entry points: router.py API router · observations.py Observation intake · session.py DB sessions · App.tsx Control panel
Components 19
Operator interface
- Control panel
frontend/src/App.tsx
API routes
- FastAPI app
Backend/app/main.py - API router
Backend/app/api/router.py - Health route
Backend/app/api/routes/health.py - Camera status
Backend/app/api/routes/cameras.py - Rule management
Backend/app/api/routes/rules.py - Observation intake
Backend/app/api/routes/observations.py - Event listing
Backend/app/api/routes/events.py
Policy evaluation
- Policy engine
Backend/app/services/policy_engine.py - Configuration
Backend/app/core/config.py
Persistence and schemas
- DB sessions
Backend/app/db/session.py - Policy rules
Backend/app/models/policy_rule.py - Observations
Backend/app/models/observation.py - Events
Backend/app/models/event.py - Rule schemas
Backend/app/schemas/policy_rule.py - Observation schemas
Backend/app/schemas/observation.py - Event schemas
Backend/app/schemas/event.py
Other components
- Operator
- SQL database
Connections 28
- Operator → Control panel: uses
frontend/src/App.tsx - Control panel → Health route: requests status
frontend/src/App.tsx - Control panel → Camera status: requests status
frontend/src/App.tsx - Control panel → Rule management: manages rules
frontend/src/App.tsx - Control panel → Event listing: loads events
frontend/src/App.tsx - FastAPI app → API router: mounts
Backend/app/main.py - API router → Health route: registers
Backend/app/api/router.py - API router → Camera status: registers
Backend/app/api/router.py - API router → Rule management: registers
Backend/app/api/router.py - API router → Observation intake: registers
Backend/app/api/router.py - API router → Event listing: registers
Backend/app/api/router.py - Observation intake → Policy engine: evaluates observation
Backend/app/api/routes/observations.py - Policy engine → Policy rules: queries rules
Backend/app/services/policy_engine.py - Policy engine → Observations: reads observation
Backend/app/services/policy_engine.py - Policy engine → Events: creates events
Backend/app/services/policy_engine.py - Rule management → Policy rules: reads and writes
Backend/app/api/routes/rules.py - Observation intake → Observations: creates and lists
Backend/app/api/routes/observations.py - Observation intake → Observation schemas: validates payload
Backend/app/api/routes/observations.py - Observation intake → Event schemas: serializes events
Backend/app/api/routes/observations.py - Rule management → Rule schemas: validates responses
Backend/app/api/routes/rules.py - Event listing → Events: reads events
Backend/app/api/routes/events.py - Event listing → Event schemas: serializes events
Backend/app/api/routes/events.py - Rule management → DB sessions: uses sessions
Backend/app/api/routes/rules.py - Observation intake → DB sessions: uses sessions
Backend/app/api/routes/observations.py - Event listing → DB sessions: uses sessions
Backend/app/api/routes/events.py - Camera status → DB sessions: uses sessions
Backend/app/api/routes/cameras.py - DB sessions → Configuration: gets database URL
Backend/app/db/session.py - DB sessions → SQL database: connects
Backend/app/db/session.py