I built a dashboard to track Nipah Virus (NiV) spillover events in India and Bangladesh because official data is often buried in PDFs or local vernacular news.
The Architecture (Running for $0/mo):
Frontend: Static HTML/Tailwind hosted on Cloudflare Pages.
Backend: A Cloudflare Worker triggered by a Cron job (every 4 hours).
Ingestion: Scrapes RSS feeds for keywords related to encephalitis and NiV.
Analysis: Passes headlines to Google Gemini 1.5 Flash (via free API) to extract location data and filter out noise.
Database: Google Sheets (fetched as CSV). The AI drafts rows as "Pending," and I manually flip them to "Active" to update the map.
Why I built it: Existing global maps often lag by days. By using LLMs to parse local news, I can often detect "Active Clusters" 24-48 hours before they appear on global health aggregate sites.
aggeeinn•1h ago
I built a dashboard to track Nipah Virus (NiV) spillover events in India and Bangladesh because official data is often buried in PDFs or local vernacular news.
The Architecture (Running for $0/mo):
Frontend: Static HTML/Tailwind hosted on Cloudflare Pages.
Backend: A Cloudflare Worker triggered by a Cron job (every 4 hours).
Ingestion: Scrapes RSS feeds for keywords related to encephalitis and NiV.
Analysis: Passes headlines to Google Gemini 1.5 Flash (via free API) to extract location data and filter out noise.
Database: Google Sheets (fetched as CSV). The AI drafts rows as "Pending," and I manually flip them to "Active" to update the map.
Why I built it: Existing global maps often lag by days. By using LLMs to parse local news, I can often detect "Active Clusters" 24-48 hours before they appear on global health aggregate sites.
Link: https://nipahwatch.com
Feedback on the "Sheet-as-Database" approach or the visualization is welcome.