Logo Lanfrica

Airkid29/AfriGov-Sentinel-Multi-step-AI-Civic-Surveillance-for-West-Africa

Domaine:

peace and security

Type de record:

softwareproject
Créateur:
Air
Hôte:
Plateforme de signalement et d'analyse des incidents gouvernementaux alimentée par l'intelligence artificielle. # AfriGov Sentinel **AI-powered civic incident surveillance system for West Africa** Built for the Elasticsearch Agent Builder Hackathon 2026 Co-authored-by: Olivier FIABI, flowoliv277@gmail.com --- ## Architecture ``` Citizen → Frontend (HTML/CSS/JS) ↓ FastAPI Backend ↙ ↘ Elasticsearch Elastic Agent Builder (storage + (AI analysis + search + decision making) aggregations) ↘ Response → Citizen ``` ## Stack - **Backend**: FastAPI (Python) - **Database**: Elasticsearch (Elastic Cloud) - **AI Brain**: Elastic Agent Builder - **Frontend**: Vanilla HTML/CSS/JS ## Features - **Incident Reporting**: Citizens can report incidents with detailed descriptions and severity levels. - **AI Analysis**: Elastic Agent Builder provides real-time risk assessment and action plans. - **Interactive Maps**: Locate incidents and visualize data on a map. - **Authority Dashboard**: Manage escalations and monitor incidents in real time. ## Setup ### 1. Clone & Install ```bash git clone github.com cd afrigov-sentinel/backend pip install -r requirements.txt ``` ### 2. Configure Environment ```bash cp ../.env.example .env # Edit .env with your Elastic Cloud credentials ``` ### 3. Configure Elastic Agent Builder In Kibana: 1. Go to **Search → Agents → Create Agent** 2. Name it `AfriGov Sentinel` 3. Connect it to your `incidents` index 4. Copy the Agent ID from the URL 5. Add it to `.env` as `ELASTIC_AGENT_ID` ### 4. Seed Data ```bash python seed_data.py ``` ### 5. Run ```bash uvicorn main:app --reload ``` ### 6. Open Frontend Open `frontend/index.html` in your browser. ## API Endpoints | Method | Endpoint | Description | |--------|----------|-------------| | POST | `/report-incident` | Submit + analyze incident | | GET | `/incidents` | List all incidents | | GET | `/stats` | Aggregated statistics | | GET | `/health` | System health check | ## How It Works 1. Citizen fills out the form and submits an inc …