How bourzat/sikika-ai works
Sikika AI is a Nairobi road-grievance reporting and risk-intelligence application. Citizens submit complaints in the Streamlit portal; the app classifies issue and priority, stores tickets, and supports tracking, analytics, and administrative status updates. Its API exposes grievance and regional-risk data, while a developer portal offers M-Pesa payment for API access. The excerpts show dashboard calls into classification and storage, and API reads from storage; omitted dashboard sections limit certainty about notification and payment call sites.
Main entry points: dashboard.py Reporting Portal · database.py Ticket Database · notifications.py Email Notifications · ml_engine.py Complaint Classifier
Components 15
Grievance Operations
- Reporting Portal
dashboard.py - Ticket Tracking
dashboard.py - Admin Resolution
dashboard.py
Risk Intelligence
- Operational Analytics
dashboard.py - Complaint Classifier
ml_engine.py - Hotspot Clustering
ml_engine.py
Data Access
- Data API
api.py - Risk Intelligence API
api.py - Ticket Database
database.py
External Integrations
- Email Notifications
notifications.py - M-Pesa Payments
mpesa.py
Other components
- Citizen
- Safaricom Daraja
- Gmail SMTP
- API Customer
Connections 17
- Citizen → Reporting Portal: submits complaint
dashboard.py - Reporting Portal → Complaint Classifier: classifies complaint
dashboard.py - Reporting Portal → Ticket Database: saves ticket
dashboard.py - Reporting Portal → Ticket Tracking: opens tracking
dashboard.py - Ticket Tracking → Ticket Database: loads tickets
dashboard.py - Reporting Portal → Operational Analytics: opens analytics
dashboard.py - Reporting Portal → Admin Resolution: opens administration
dashboard.py - Admin Resolution → Ticket Database: updates status
dashboard.py - Data API → Ticket Database: loads tickets
api.py - Risk Intelligence API → Ticket Database: loads tickets
api.py - Complaint Classifier → Hotspot Clustering: clusters tickets
ml_engine.py - API Customer → Reporting Portal: requests API access
dashboard.py - Reporting Portal → M-Pesa Payments: triggers payment
dashboard.py - M-Pesa Payments → Safaricom Daraja: requests STK push
mpesa.py - Email Notifications → Gmail SMTP: sends email
notifications.py - Admin Resolution → Email Notifications: notifies citizen
dashboard.py - Reporting Portal → Email Notifications: confirms submission
dashboard.py