|
| 1 | +--- |
| 2 | +title: Fact Dynamics | Real-time Fact-Checking Flutter App |
| 3 | +description: Cross-platform app for real-time fact-checking of debates, speeches, and images using Perplexity's Sonar API |
| 4 | +sidebar_position: 3 |
| 5 | +keywords: [Fact Dynamics, fact-checking, Flutter, Dart, real-time, speech-to-text, debate, image verification] |
| 6 | +--- |
| 7 | + |
| 8 | +# Fact Dynamics | Real-time Fact-Checking Flutter App |
| 9 | +<p align="center"> |
| 10 | + <img |
| 11 | + src="https://raw.githubusercontent.com/vishnu32510/fact_pulse/main/assets/icon/icon.png" |
| 12 | + alt="Fact Dynamics logo" |
| 13 | + width="80" |
| 14 | + height="80" |
| 15 | + style={{ borderRadius: '14px' }} |
| 16 | + /> |
| 17 | +</p> |
| 18 | + |
| 19 | +**Hackathon Submission** - Built for Perplexity Hackathon in Information Tools & Deep Research categories. |
| 20 | + |
| 21 | +Fact Dynamics is a cross-platform Flutter app that provides real-time fact-checking for spoken content and images. Perfect for live debates, presentations, and on-the-fly information verification. |
| 22 | + |
| 23 | + |
| 24 | +## Features |
| 25 | + |
| 26 | +* Real-time speech transcription and fact-checking during live conversations |
| 27 | +* Image text extraction and claim verification with source citations |
| 28 | +* Claim rating system (TRUE, FALSE, MISLEADING, UNVERIFIABLE) with explanations |
| 29 | +* Source Citations** - Provides authoritative URLs backing each verdict |
| 30 | + |
| 31 | +* Debate mode with continuous speech recognition and streaming feedback |
| 32 | +* User authentication via Firebase (Google, Email) with persistent chat history |
| 33 | +* Cross-platform support for iOS, Android, and Web |
| 34 | + |
| 35 | +## Prerequisites |
| 36 | + |
| 37 | +* Flutter SDK 3.0.0 or newer |
| 38 | +* Dart SDK 2.17.0 or newer |
| 39 | +* Firebase CLI for authentication and database setup |
| 40 | +* Perplexity API key for Sonar integration |
| 41 | +* Device with microphone access for speech recognition |
| 42 | + |
| 43 | +## Installation (Follow Detailed guideline on the Repository) |
| 44 | + |
| 45 | +```bash |
| 46 | +git clone https://github.com/vishnu32510/fact_pulse.git |
| 47 | +cd fact_pulse |
| 48 | +flutter pub get |
| 49 | +``` |
| 50 | + |
| 51 | +## Usage |
| 52 | + |
| 53 | +**Real-time Speech Fact-Checking:** |
| 54 | +- Streams 5-second audio chunks through Flutter's `speech_to_text` |
| 55 | +- Sends transcribed snippets to Sonar API with structured prompts |
| 56 | +- Returns JSON with claims, ratings (TRUE/FALSE/MISLEADING/UNVERIFIABLE), explanations, and sources |
| 57 | + |
| 58 | +**Image Analysis:** |
| 59 | +- Uploads images/URLs to Sonar API for text extraction |
| 60 | +- Verifies extracted claims against authoritative sources |
| 61 | +- Provides comprehensive analysis with source attribution |
| 62 | + |
| 63 | +## Screenshots |
| 64 | + |
| 65 | +<table> |
| 66 | + <tr> |
| 67 | + <td> |
| 68 | + <img |
| 69 | + src="https://raw.githubusercontent.com/vishnu32510/fact_pulse/main/assets/screenshots/2.%20Dashboard.png" |
| 70 | + alt="Dashboard" |
| 71 | + width="200" |
| 72 | + /> |
| 73 | + </td> |
| 74 | + <td> |
| 75 | + <img |
| 76 | + src="https://raw.githubusercontent.com/vishnu32510/fact_pulse/main/assets/screenshots/4.%20Fact%20Checks(Speech,%20Debate,%20Image).png" |
| 77 | + alt="Fact checking interface" |
| 78 | + width="200" |
| 79 | + /> |
| 80 | + </td> |
| 81 | + </tr> |
| 82 | +</table> |
| 83 | + |
| 84 | +## Code Explanation |
| 85 | + |
| 86 | +* Frontend: Flutter with BLoC pattern for state management targeting iOS, Android, and Web |
| 87 | +* Backend: Firebase (Firestore, Authentication) for user data and chat history persistence |
| 88 | +* Speech Processing: speech_to_text package for real-time audio transcription |
| 89 | +* API Integration: Custom Dart client calling Perplexity Sonar API with structured prompts |
| 90 | +* Image Processing: Built-in image picker with base64 encoding for multimodal analysis |
| 91 | +* Data Architecture: Firestore collections per user with subcollections for debates, speeches, and images |
| 92 | + |
| 93 | +## Open Source SDKs |
| 94 | + |
| 95 | +Built two reusable packages for the Flutter community: |
| 96 | +- **[perplexity_dart](https://pub.dev/packages/perplexity_dart)** - Core Dart SDK for Perplexity API |
| 97 | +- **[perplexity_flutter](https://pub.dev/packages/perplexity_flutter)** - Flutter widgets and BLoC integration |
| 98 | + |
| 99 | + |
| 100 | +## Links |
| 101 | + |
| 102 | +- **[GitHub Repository](https://github.com/vishnu32510/fact_pulse)** - Full source code |
| 103 | +- **[Live Demo](https://fact-pulse.web.app/)** - Try the web version |
| 104 | +- **[Demo Video](https://youtu.be/92IoX19Djtc)** - Watch it in action |
| 105 | +- **[Devpost Submission](https://devpost.com/software/fact-dynamics)** - Hackathon entry |
0 commit comments