Inspiration
Supply chains drive the global economy, but most tools look backward—at what already happened. We wanted to look forward: use the same news and events that precede shortages and disruptions and turn them into early warning. COVID and the chip shortage showed how fast the world can change when signals are missed. We built VantagePoint so that supply chain and operations teams could see risk and timelines before they hit the headlines, powered by AI that understands context, not just keywords.
What it does
VantagePoint is a supply chain intelligence dashboard that turns global news into actionable risk intelligence. Users see an interactive world map of supply-chain events, a construction-materials radar, and a filterable event table (Signal Intelligence Feed). They can switch between Mock data (no API key) and Live data from GDELT, NewsAPI, and RSS. For any event, Analyze with Gemini returns structured risk scores, affected industries, short/medium/long-term timeline predictions, and next steps. The AI Executive Brief synthesizes all visible events into a summary and top 3 risks. Ask Gemini about this data lets users ask questions in plain English and get answers grounded in the current event set. Results can be downloaded as CSV.
How we built it
We used Streamlit for the UI and Gemini 3 (Google Generative AI SDK) as the brain. Live data comes from GDELT (primary), NewsAPI (optional fallback with supply-chain–focused queries and relevance filtering), and RSS feeds (logistics/supply chain). We send event headlines and snippets to Gemini with response_mime_type="application/json" for parseable risk schemas. The map uses Pydeck with free Carto tiles; charts use Plotly. We structured the code into config, data, processing, and viz modules and added support for Streamlit Cloud secrets, .env, and optional hardcoded keys in config for local runs. The app can be deployed on Streamlit Community Cloud, Render (Docker), or Hugging Face Spaces.
Challenges we ran into
- Streamlit Cloud: We hit an "Unexpected error" due to using
st.secretsand config keys before importing Streamlit and config; we fixed it by reordering imports sostand config are available before the secrets block. - NewsAPI noise: Initial queries returned too many irrelevant articles with zero risk relevance. We tightened the query to supply-chain terms, added a relevance keyword filter and minimum match threshold, and assigned a heuristic risk score (1–5) so only relevant articles appear with a non-zero score.
- Deployment: Streamlit Cloud was unreliable for us, and Vercel is not suited to long-lived Streamlit apps. We added a Dockerfile and documented alternatives (Render, Hugging Face Spaces with Docker, local + ngrok) so the project can be hosted and shared regardless of platform.
Accomplishments that we're proud of
- End-to-end flow: From raw news (GDELT/NewsAPI/RSS) to a single dashboard with map, metrics, and AI analysis—all in one app, with Mock mode that works without any API key.
- Structured Gemini output: Reliable JSON from Gemini for risk_score, categories, timelines, and actionable intelligence, making the AI output directly usable in the UI and for export.
- Three AI touchpoints: Per-event analysis, multi-event Executive Brief, and conversational Q&A over the data, showing Gemini used for both structured and free-form reasoning.
- Deployment flexibility: The app runs locally, on Streamlit Cloud, or via Docker on Render/HF Spaces, with clear docs and a single codebase.
What we learned
- Streamlit app startup order matters: secrets and config must be read after
stand config are imported, or the app fails with a generic error on Cloud. - News APIs need both a good query and client-side filtering when the domain is narrow (e.g. supply chain); relevance scoring and heuristic risk keep the feed useful.
- Serverless platforms (e.g. Vercel) don’t fit long-lived Streamlit apps; having a Dockerfile and multiple deployment options makes the project resilient.
What's next for VantagePoint — Supply Chain Intelligence Engine
- Richer data: Integrate more sources (e.g. trade flows, vessel data, customs) and optional user-defined RSS or search queries.
- Alerts and notifications: Let users set thresholds (e.g. risk score, region, commodity) and get notified when new events match.
- Historical backtesting: Compare past predictions to what actually happened to tune risk scoring and improve Gemini prompts.
- Multi-user and persistence: Optional auth, saved views, and persisted briefs so teams can share and revisit analyses.
Log in or sign up for Devpost to join the conversation.