An analytical software suite and dynamic dashboard built with Python and Reflex. This system parses regional case data, executes algorithmic risk evaluations, and generates dynamic visualizations mapping missing person case patterns across the UK.
- Overview of missing persons reports from the scraper engine

- Breakdown of the area where missing persons have been reported

- Info on the dashboard after processing a CSV file

- Dynamic Web UI: Built entirely in Python using the
Reflexframework with zero manualJavaScriptrequired. - Automated Risk Pipeline: Assesses ingestion data streams, mapping metrics across Low, Moderate, High, and Critical risk stratifications.
- Geospatial Visualisations: Generates dynamic map overlays and data asset breakdowns securely bound to the layout engine.
- Interactive Data Views: High-performance data grid preview matching live analytical variables.
missing_person_pattern_analyser/
β
β
βββ missing_person_pattern_analyser/ # Main Frontend & UI Package
β βββ __init__.py # Package initializer
β βββ chart_visualisation.py # Analytics map & chart panel layout
β βββ data_table.py # Case preview typed data grid component
β βββ handle_upload.py # Non-blocking async file uploader pipeline
β βββ kpi_dashboard.py # Main analytical metrics summary layout
β βββ metric_card.py # Visual KPI card sub-component
β βββ navbar.py # Responsive top navigation component
β βββ testing_legend.py # Severity color code legend panel
β βββ upload_zone.py # Interactivity drag-and-drop file interface
β βββ missing_person_pattern_analyzer.py # Main Reflex App routing configuration
β
βββ src/ # Backend Analytical Core Package
β βββ __init__.py # Package initializer
β βββ engine.py # Data processing and scoring metrics algorithms
β βββ models.py # Pydantic data schemas and database representations
β βββ scraper.py # Missing person public portal scraping module
β βββ visualiser.py # Matplotlib spatial mapping rendering engine
β
βββ tests/ # Pytest Suite
β βββ test_engine.py
| βββ test_frontend_layout.py
β βββ test_handle_upload.py
| βββ test_models.py
| βββ test_scraper.py
| βββ test_visualiser.py
|
β
βββ pytest.ini
βββ README.md # Project Documentation
βββ requirements.txt # Project dependencies
git clone [https://github.com/reory/missing_person_pattern_analyser.git](https://github.com/reory/missing_person_pattern_analyser.git)
cd missing_person_pattern_analyser# Create the environment
python -m venv venv
### Activate on Windows:
venv\Scripts\activate
### Activate on macOS/Linux:
source venv/bin/activatepip install -r requirements.txtFor Users / Runtime Execution (Frontend Dashboard) To launch the core analytical dashboard layout to upload and parse tracking sheets:
# Initialize the Reflex configuration
reflex initreflex runIf you are a developer looking to modify the extraction rules, fetch updated live data, or generate a fresh registry dataset:
python main.pyThe project utilizes pytest, pytest-cov, and hypothesis to execute property-based and behavioral validation passes over both the engine calculations and the compiled frontend components.
To execute the test suite and verify statement execution coverage metrics, run:
python -m pytest-
High-Performance Ingestion Core (
Rust Integration): Migrate theHTMLweb scraper to a parallelized, thread-safe Rust module viaPyO3bindings to minimize processing memory and latency. -
Live GeoJSON Mapping: Replace static image mapping with dynamic Leaflet or Mapbox views inside
Reflexfor interactive user panning, zooming, and cluster selection. -
Predictive Cluster Analysis: Embed
scikit-learnmodels directly inside the engine package to automatically detect spatial anomalies and forecast emerging incident hot-spots. -
Real-Time Alert Despatcher: Implement an async event trigger system to automatically push automated SMS, email, or webhook alerts when critical-risk patterns emerge.
-
Multi-Tenant Role Access: Deploy an explicit authentication framework in
Reflexto separate public dashboard visualization charts from restricted, administrative investigator databases. -
Temporal Trend Analytics: Introduce historical timeline tracking into
src/engine.pyto identify cyclical, seasonal, and sequential risk trajectory movements over time. -
Environmental Weather Ingestion: Integrate external meteorological
APIs into the ingestion pipeline to cross-reference weather severity with localized pattern variations. -
Automated Threshold Triggers: Configure automated backend daemon alerts that flag high-risk coordinates the exact moment anomaly metrics breach critical safety baselines.