As a user, I want to see a visually consistent UI so that all pages match the mock-design pages exactly. Implement the global color palette (#1A1A2E background, #16213E surface, #EAEAEA text, #F05454 accent, #6C757D muted), typography, component styles, and layout structure across the entire frontend. Remove any pages not present in the design. This task must be completed independently before any other frontend tasks begin.
As a user, I want my submitted rumor to be translated and analyzed so that the system can understand it regardless of language. Implement the Flask backend endpoint for Stage 1: accept rumor text input, use Google Gemini (gemini-3-flash-preview via google-genai SDK) to detect language, translate to English if needed, and extract structured JSON: {event, location, date, keywords}. Store request in SQLite.
As a user, I want to see an interactive crisis map on the landing page so that I can explore active rumors by region. Implement the Landing page based on the existing JSX design (Landing v2). Features include: dynamic world map with glowing red hotspots, pulsing animation on hotspots, hover tooltips with rumor descriptions, click-to-autofill rumor input, and smooth zoom transitions. Links to the Home/Rumor submission page.
As a user, I want to paste and submit a rumor on the Home page so that I can trigger the verification process. Implement a centered rumor input box with submit functionality. The page should accept rumor text, display a loading/progress state during processing, and navigate to the Results page upon completion. Supports multi-language input. Links from Landing page and back from Results page.
As a user, I want to view the verification results so that I can understand if a rumor is TRUE, FAKE, or UNVERIFIED. Implement the Results page displaying: verdict card (TRUE/FAKE/UNVERIFIED) with confidence score (0-100%), AI-generated 2-sentence summary, and a Transparency List of top 3 clickable news article titles and URLs. Include a 'Re-Run Verification' button for selective re-runs. Links from Home page.
As an admin, I want to monitor system performance on the Dashboard page so that I can ensure the platform is operating correctly. Implement the Dashboard overview page displaying system metrics, performance indicators, and a navigation to Request History and Settings. Links from Login page.
As an admin, I want to view request history on the Dashboard so that I can review all submitted rumors and their results. Implement the request history view listing past rumor submissions with their verdicts, confidence scores, timestamps, and a link to detailed logs. Links from Dashboard overview.
As an admin, I want to review verification logs so that I can audit the AI pipeline results. Implement the Logs page displaying detailed results per rumor request including pipeline stage outputs, AI responses, and news articles retrieved. Links from Request History page.
As an admin, I want to manage API keys and configurations on the Settings page so that I can keep the platform operational. Implement the Settings page with forms to view and update API key configurations (NewsData.io, Gemini, Groq) and other system settings. Links from Dashboard overview.
As a user, I want the system to retrieve relevant news articles so that my rumor can be cross-referenced with real sources. Implement the Flask backend for Stage 2: use extracted event and location from Stage 1 to query the NewsData.io API (newsdata.io/api/1/news) and retrieve the top 3 related articles. Handle API rate limits and errors gracefully.
As a user, I want to receive a final verdict on my rumor so that I know if it is TRUE, FAKE, or UNVERIFIED. Implement the Flask backend for Stage 3: provide Groq SDK (Llama 3 70B/8B) with the translated rumor and news article snippets, and return a structured response: {verdict: TRUE/FAKE/UNVERIFIED, confidence: 0-100%, summary: 2-sentence explanation}. Store final result in SQLite.
As a user, I want to re-run verification for a previously submitted rumor so that I can get updated results. Implement a Flask backend endpoint that accepts a stored rumor ID, retrieves it from SQLite, and re-triggers the full 3-stage pipeline (Stage 1 → Stage 2 → Stage 3), updating the stored result with the new output.
As an admin, I want to access request history via API so that I can view all past rumor submissions and their results. Implement Flask backend endpoints to list all stored rumor requests with their verdicts, confidence scores, timestamps, and stage outputs from SQLite. Support pagination and filtering.
As a user, I want the Home page to communicate with the backend AI pipeline so that submitting a rumor triggers real verification and displays results. Wire up the Home page rumor submission form to the Stage 1/2/3 backend APIs, handle loading states, error responses, and navigate to the Results page with live data from the pipeline.
As an admin, I want the Dashboard, Request History, and Logs pages to display live data so that I can monitor and audit the system. Wire up the admin frontend pages (Dashboard, Request History, Logs) to the backend request history and logs APIs. Display real data with proper loading and error states.
No comments yet. Be the first!