|
| 1 | +--- |
| 2 | +title: UnCovered | Real-Time Fact-Checking Chrome Extension |
| 3 | +description: A Chrome extension that brings real-time fact-checking to anything you see online in just 2 clicks, powered by Perplexity's Sonar API for instant verification |
| 4 | +sidebar_position: 23 |
| 5 | +keywords: [uncovered, fact-checking, chrome-extension, misinformation, sonar, perplexity, image-verification, text-analysis] |
| 6 | +--- |
| 7 | + |
| 8 | +**UnCovered** is a Chrome extension that verifies text, images, websites, and screenshots in real-time—right where you browse. Built on Perplexity's Sonar API, it provides instant truth with citations, verdicts, and deep analysis using just a right-click, without breaking your browsing flow. |
| 9 | + |
| 10 | +## Features |
| 11 | + |
| 12 | +* **3-Click Verification**: Select → Right-click → Verify (Text, Image, Link, or Screenshot) |
| 13 | +* **Text Analysis Modes**: Quick Search, Fact-Check, and Deep Research capabilities |
| 14 | +* **Image Fact-Checking**: Reverse image analysis and multimodal claim verification |
| 15 | +* **Screenshot & Video Frame Capture**: Analyze visuals like infographics, memes, or chart snapshots |
| 16 | +* **Citation-Backed Results**: All answers include sources and fact-verdicts (True/False/Unconfirmed) |
| 17 | +* **Instant Rebuttal Generator**: Create concise, fact-based replies to misinformation |
| 18 | +* **Zero-Friction UX**: Stay on the same page — no copy-paste, no new tabs required |
| 19 | + |
| 20 | +## Prerequisites |
| 21 | + |
| 22 | +* Chrome browser |
| 23 | +* Node.js 16+ and npm |
| 24 | +* MongoDB database |
| 25 | +* Cloudinary account for image storage |
| 26 | +* Perplexity API key (Sonar Pro and Deep Research access) |
| 27 | +* Google OAuth credentials |
| 28 | + |
| 29 | +## Installation |
| 30 | + |
| 31 | +```bash |
| 32 | +# Clone the repository |
| 33 | +git clone https://github.com/aayushsingh7/UnCovered.git |
| 34 | +cd UnCovered |
| 35 | + |
| 36 | +# Install dependencies |
| 37 | +npm install |
| 38 | + |
| 39 | +# Build the Chrome extension |
| 40 | +npm run build |
| 41 | +``` |
| 42 | + |
| 43 | +## Configuration |
| 44 | + |
| 45 | +Set up your environment variables: |
| 46 | + |
| 47 | +```ini |
| 48 | +PERPLEXITY_API_KEY=your_sonar_api_key |
| 49 | +MONGODB_URI=your_mongodb_connection_string |
| 50 | +CLOUDINARY_URL=your_cloudinary_credentials |
| 51 | +GOOGLE_OAUTH_CLIENT_ID=your_google_oauth_id |
| 52 | +``` |
| 53 | + |
| 54 | +## Usage |
| 55 | + |
| 56 | +1. **Text/Link Verification**: |
| 57 | + - Select text or right-click a link |
| 58 | + - Choose Quick Search / Fact-Check / Deep Research |
| 59 | + - Get trusted results with verdicts and citations |
| 60 | + |
| 61 | +2. **Image Verification**: |
| 62 | + - Right-click any image |
| 63 | + - Choose from Quick Search or Fact-Check |
| 64 | + - Detect misinformation and visual manipulation |
| 65 | + |
| 66 | +3. **Screenshot/Infographic Analysis**: |
| 67 | + - Click UnCovered icon in the toolbar |
| 68 | + - Use "Capture Screen" to analyze visual content |
| 69 | + |
| 70 | +4. **Get Instant Rebuttal**: |
| 71 | + - Auto-generate fact-based responses to correct misinformation |
| 72 | + |
| 73 | +## Code Explanation |
| 74 | + |
| 75 | +* **Frontend**: Vanilla JavaScript Chrome extension with context menu integration |
| 76 | +* **Backend**: Node.js Express server handling API requests and user authentication |
| 77 | +* **AI Integration**: Perplexity Sonar Pro and Deep Research APIs for intelligent fact-checking |
| 78 | +* **Image Processing**: Cloudinary integration for screenshot and image analysis |
| 79 | +* **Database**: MongoDB for user data and verification history |
| 80 | +* **Authentication**: Google OAuth for secure user management |
| 81 | +* **Multimodal Analysis**: Support for text, images, screenshots, and video frames |
| 82 | + |
| 83 | +## Technical Implementation |
| 84 | + |
| 85 | +UnCovered leverages Perplexity Sonar API in three core modes: |
| 86 | + |
| 87 | +```javascript |
| 88 | +// Quick Search and Fact-Check with Sonar Pro |
| 89 | +const quickResponse = await perplexityClient.chat.completions.create({ |
| 90 | + model: "sonar-pro", |
| 91 | + messages: [{ role: "user", content: factCheckPrompt }] |
| 92 | +}); |
| 93 | + |
| 94 | +// Deep Research for comprehensive analysis |
| 95 | +const deepResponse = await perplexityClient.chat.completions.create({ |
| 96 | + model: "sonar-deep-research", |
| 97 | + messages: [{ role: "user", content: deepAnalysisPrompt }] |
| 98 | +}); |
| 99 | +``` |
| 100 | + |
| 101 | +## Demo Video |
| 102 | + |
| 103 | +<iframe |
| 104 | + className="w-full aspect-video rounded-xl" |
| 105 | + src="https://www.youtube.com/embed/WJxW91eu0fs" |
| 106 | + title="UnCovered Demo" |
| 107 | + frameBorder="0" |
| 108 | + allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" |
| 109 | + allowFullScreen |
| 110 | +></iframe> |
| 111 | + |
| 112 | +## Links |
| 113 | + |
| 114 | +- [GitHub Repository](https://github.com/aayushsingh7/UnCovered) |
| 115 | +- [Live Demo](https://uncovered.vercel.app) |
| 116 | + |
0 commit comments