shockmap-api / MVP_STATUS.md
Dhruva P Gowda
Deploy ShockMap MVP: High-fidelity UI overhaul, animated graph particles, live GDELT ingestion, and production scaffolding
f59a149
|
Raw History Blame Contribute Delete
7.08 kB
# PharmaShield (ShockMap) - MVP Status Report
This document outlines the end-to-end capabilities, architecture, and current status of the PharmaShield (ShockMap) MVP, built for the Google Solution Challenge 2026.
This serves as a guide for demonstrating maximum value and proving the system solves a real-world problem for hackathon judges.
## 🎯 The Core Problem & Mission
India is heavily dependent on external supply chains for critical health-system inputs (Pharmaceutical APIs) and advanced industry components (Rare Earth Minerals).
The problem isn't a lack of news; it's a **lack of early, structured, decision-ready intelligence.** Operators typically find out about upstream disruptions too late, when prices are already spiking or stockouts are imminent.
**Mission:** *When a disruption hits an upstream source region (e.g., a factory shutdown in Hebei), show operators exactly what is at risk downstream, how the shock propagates, and what immediate actions they can take within the next 72 hours.*
## πŸ—οΈ The 3-Engine Architecture (Currently Implemented)
The MVP successfully implements a full "Detect -> Assess -> Decide -> Act" loop using three distinct engines:
### 1. Engine 1: Signal Intelligence (Detect)
* **What it does:** Ingests live and simulated disruption signals and structures them.
* **Current Status:**
* A Python scheduler (`ingestion/shock_detector.py`) polls the GDELT API for global news events using specific keywords (`factory shutdown`, `export ban`, `port closure`, `contamination`) combined with regions (e.g., China, India) and sectors.
* It structures unstructured news into "Shock Events" (saving to `data/shocks.json`).
* **Demo Mode:** To ensure a flawless hackathon demo, the system includes a highly curated `demo_scenarios.json`. This provides realistic, high-fidelity incidents (e.g., "Hebei analgesic stress", "Inner Mongolia export ban") without relying on the unpredictability of live news during judging.
### 2. Engine 2: Shock Propagation (Assess)
* **What it does:** Maps how a localized shock ripples through the supply chain.
* **Current Status:**
* Utilizes a **Knowledge Graph** (NetworkX via FastAPI backend).
* **Algorithm:** Uses **Personalized PageRank** to calculate how risk flows from an origin node (e.g., a Chinese province) down to specific inputs, APIs, and finally essential medicines.
* **Metrics Calculated:** Generates a real-time `Risk Score` (0-100) for downstream nodes based on:
* PageRank influence from the shocked origin.
* Buffer Days (inventory on hand).
* Substitutability (how easily an alternative can be sourced).
* **Clustering:** Implements **Louvain community detection** to identify co-propagating clusters (e.g., if one factory goes down, which other related chemicals are likely to spike in price).
### 3. Engine 3: Action Intelligence (Decide & Act)
* **What it does:** Converts calculated risk into grounded, actionable decisions.
* **Current Status:**
* Powered by **Gemini Flash**.
* **The "War Room":** When an operator clicks a high-risk shock, they enter a dedicated War Room. Gemini processes the shock context and generates a structured 72-hour action plan (e.g., "Advance-buy 18 MT 6-APA", "Lock para-aminophenol equivalent").
* **Action Simulator:** Operators can click an action to simulate its impact. The UI dynamically shows the "Delta"β€”how taking that action reduces the Aggregate Risk score and extends the "Days to Stockout".
* **Natural Language Query:** Operators can ask Gemini plain-English questions ("Which drugs depend most on Hebei?") and receive grounded answers with citations.
## πŸ’» Frontend UI Surfaces (Fully Built)
The React 19 frontend provides a complete, operator-ready dashboard:
1. **Dashboard:** A high-level, real-time overview showing active shocks, top risk inputs, and a Herfindahl-Hirschman Index (HHI) heatmap of dependency concentration by province.
2. **Interactive Supply Map:** A geospatial view (Leaflet) showing supply corridors between source provinces (e.g., China) and destination states (India). Provinces glow red when active shocks are detected.
3. **Propagation Graph Explorer:** A visual node-edge graph that lets operators trace the exact path from a source province -> KSM -> API -> final essential Drug.
4. **Alerts Feed:** The chronological feed of all detected disruptions.
5. **War Room (Shock Detail):** The core MVP view bringing together evidence, propagation paths, and Gemini-generated action plans.
6. **Drug/API Catalog:** A searchable database of monitored entities showing their baseline risk and criticality breakdown.
## πŸš€ How to Demo for Maximum Impact (The "Golden Path")
To prove this solves a real problem for the judges, follow this narrative flow:
1. **Set the Stage:** Start on the **Dashboard**. Explain that India is blind to upstream Tier-2/Tier-3 supplier disruptions. Point out the HHI concentration map showing heavy reliance on specific regions like Hebei.
2. **The Inciting Incident:** Go to the **Alerts** or **Map**. Click on a simulated `CRITICAL` shock (e.g., *"Hebei factory shutdown disrupts para-aminophenol"*). Emphasize that normally, this is just a news headline.
3. **Enter the War Room:** Open the Shock Detail page.
* *Show, don't tell:* Point out that the system hasn't just linked an article; it has traced the graph to realize **Paracetamol** and **Ceftriaxone** are immediately at risk downstream.
* Show the `Days to Stockout` metric dropping.
4. **The "Aha!" Moment (Engine 3):** Scroll down to the **72-Hour Action Ladder**. Explain that Gemini has read the policy data and generated specific procurement actions (e.g., "Lock 40 MT from alternate source").
5. **Simulation:** Click "Run Impact" on one of the actions. Show the judges the **Action Delta** panel dynamically updating to show that spending $X million now extends the stockout buffer by +12 days and drops the risk score from Critical to Medium.
6. **The Closer:** Use the **Query (Ask ShockMap)** tab. Ask a natural language question like *"What should procurement do about the Hebei shutdown?"* to show the AI acting as an expert analyst on the graph data.
## 🚧 What is Missing / Next Steps (Phase 2+)
While the MVP is functionally complete for a hackathon, a production-grade system would need:
1. **Persistent Database:** Currently relying on local JSON files (`shocks.json`). Needs PostgreSQL/MongoDB for state persistence.
2. **Authentication/RBAC:** Securing the War Room so only authorized procurement officers can trigger simulations and view sensitive supply data.
3. **Graph Neural Networks (GNN):** The `ml/` folder contains the groundwork to upgrade Engine 2 from static PageRank to a trained GNN that learns non-linear propagation patterns from historical disruption data.
4. **Live Vector Database Integration:** Expanding the local knowledge base into a fully hosted Qdrant cluster for massive-scale document retrieval.