How li-broon/26inf1103-p4-3 works
This is a workplace incident reporting assistant: workers submit reports conversationally in their own language, the AI collects and enriches the details, business rules score and classify the report, and the data layer saves it. Safety staff can browse, filter, and analyze saved reports through terminal or GUI interfaces. The graph preserves the documented analysis and charting capabilities; several links to unsampled subsystems are omitted where the excerpts do not establish runtime calls.
Main entry points: manager.py Terminal interface · logic_manager.py Rule evaluation · incident_conversation.py Incident conversation · gui_manager.py GUI interface
Components 20
Application interfaces
- Application entry
main.py - Terminal interface
src/io_manager/manager.py - GUI interface
src/gui_manager.py - Report browsing
src/io_manager/display/report_table_view.py
Incident reporting
- Incident conversation
src/ai_manager/conversation/incident_conversation.py - Report fields
src/ai_manager/fields/field_set.py - AI analysis
src/ai_manager/conversation/analysis_task.py - Gemini service
src/ai_manager/services/gemini_service.py
Business rules
- Rule evaluation
src/logic_manager/logic_manager.py - Importance scoring
src/logic_manager/scoring/importance_scorer.py - MOM reporting rule
src/logic_manager/rules/mom_reporting_rule.py - Priority classification
src/logic_manager/rules/priority_classifier.py
Report data
- Report data manager
src/data_manager/manager.py - Report filters
src/data_manager/filters - Record store
src/data_manager/storage/record_store.py - CSV storage
src/data_manager/storage/csv_record_store.py
Report insights
- Incident charts
src/data_manager/charts - Chart manager
src/data_manager/charts/chart_manager.py
Other components
- Worker
- Safety staff
Connections 24
- Worker → Terminal interface: submits report
README.md - Worker → GUI interface: submits report
README.md - Application entry → Terminal interface: starts interface
main.py - Application entry → GUI interface: starts GUI
main.py - Terminal interface → Incident conversation: starts conversation
src/io_manager/manager.py - GUI interface → Incident conversation: runs conversation
- Incident conversation → Report fields: validates fields
src/ai_manager/conversation/incident_conversation.py - Incident conversation → AI analysis: requests analysis
src/ai_manager/conversation/incident_conversation.py - Incident conversation → Gemini service: sends chat requests
src/ai_manager/conversation/incident_conversation.py - AI analysis → Gemini service: generates JSON
src/ai_manager/conversation/analysis_task.py - Terminal interface → Rule evaluation: processes report
- GUI interface → Rule evaluation: processes report
- Rule evaluation → Importance scoring: scores report
src/logic_manager/logic_manager.py - Rule evaluation → MOM reporting rule: checks reporting
src/logic_manager/logic_manager.py - Rule evaluation → Priority classification: classifies priority
src/logic_manager/logic_manager.py - Rule evaluation → Report data manager: saves evaluated report
src/logic_manager/logic_manager.py - Terminal interface → Report data manager: loads reports
src/io_manager/manager.py - Report data manager → Record store: delegates storage
src/data_manager/manager.py - Report data manager → Report filters: applies filters
src/data_manager/manager.py - Record store → CSV storage: implemented by
src/data_manager/storage/csv_record_store.py - Safety staff → Report browsing: browses reports
README.md - Terminal interface → Report browsing: renders report table
src/io_manager/manager.py - Safety staff → Incident charts: reviews insights
- Chart manager → Incident charts: uses chart drawer
src/data_manager/charts/chart_manager.py