Skip to content

A real-time situational awareness dashboard designed for prediction market traders and geopolitical analysts. This terminal synchronizes live news feeds, social intelligence, and prediction market data into a single unified interface.

Notifications You must be signed in to change notification settings

TrentPierce/SituationRoom

Repository files navigation

Situation Room: Global Intelligence Terminal

Warning

Status: This project was developed as a technical demonstration and is not currently updated or maintained. Users must provide their own API keys to populate live data. Please be aware that video stream identifiers are dynamic and some feeds may have changed or become unavailable since the initial publication.

A real-time situational awareness dashboard designed for prediction market traders and geopolitical analysts. This terminal synchronizes live news feeds, social intelligence, and prediction market data into a single unified interface.

Situation Room Dashboard

Core Capabilities

  • Live News Grid: Multi-channel monitoring of high-uptime news broadcasts (Sky News, Al Jazeera, ABC, DW, NBC, France 24).
  • AI SITREP: Automated situational reports generated using Gemini 2.0 Flash with Google Search grounding. Analysts get real-time synthesis connecting breaking news events to specific market price movements.
  • Market Ticker: Low-latency price monitoring across Polymarket and Kalshi, with unified 24h volume and price change indicators.
  • Social Pulse: OSINT aggregation from X and Telegram to catch breaking signals before they hit mainstream headlines.
  • Persistent Caching: Optimized API architecture using Supabase to manage rate limits and ensure high availability.

Technical Stack

  • Frontend: Next.js (App Router), Tailwind CSS, Framer Motion
  • State Management: Zustand
  • Data Fetching: TanStack Query
  • Backend: Next.js Edge Functions
  • Database/Cache: Supabase
  • AI/LLM: Google Gemini 2.0 Flash (via Vertex AI)
  • External APIs: YouTube Data API v3, Apify (Twitter Scraper)

Setup and Installation

Prerequisites

  • Node.js (v18+)
  • pnpm or npm
  • Supabase account (for caching layer)

Environment Configuration

For both local development and production (Vercel), you must provide the following environment variables:

Variable Description Source
GOOGLE_API_KEY Gemini 2.0 Flash / Search Grounding Google AI Studio
YOUTUBE_API_KEY Live stream detection & metadata Google Cloud Console
APIFY_API_KEY Twitter/X & Social OSINT scraping Apify Console
NEXT_PUBLIC_SUPABASE_URL Supabase project endpoint Supabase Dashboard
NEXT_PUBLIC_SUPABASE_ANON_KEY Supabase anonymous public key Supabase Dashboard

Deployment (Vercel)

  1. Connect Repository: Link your GitHub repository to a new project on Vercel.
  2. Configure Environment Variables: Copy the variables listed above into the Vercel project settings.
  3. Internal API Routing: The project uses VERCEL_URL (automatically provided by Vercel) to handle internal API calls between the SITREP generator and the market data endpoints.
  4. Edge Runtime: This project leverages Vercel Edge Functions for low-latency market data processing. Ensure your regions are configured appropriately (default is set to iad1 in vercel.json).

Database Setup

Run the following SQL in your Supabase SQL Editor to initialize the caching schema:

create table cache (
  key text primary key,
  data jsonb not null,
  updated_at timestamp with time zone default now()
);

-- Enable RLS
alter table cache enable row level security;

-- Allow service role access
create policy "Allow all for service role" on cache
  using (true)
  with check (true);

Running Locally

  1. Install dependencies:

    pnpm install
  2. Start the development server:

    pnpm dev
  3. Open http://localhost:3000 in your browser.

Project Structure

  • /src/app: Next.js routes and API endpoints.
  • /src/components: UI components organized by functional domain (video, social, dashboard).
  • /src/lib: Core utility functions including the Supabase caching layer.
  • /src/store: Client-side state management for the video grid and market data.
  • /src/types: Unified TypeScript definitions for consistent data modeling.

Security

This project uses persistent server-side caching to prevent API key exposure and manage consumption quotas. Ensure that you do not commit your .env files to public repositories.

About

A real-time situational awareness dashboard designed for prediction market traders and geopolitical analysts. This terminal synchronizes live news feeds, social intelligence, and prediction market data into a single unified interface.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published