Inspiration 🌟
In an era where information spreads at lightning speed across the internet, we were deeply concerned about the proliferation of misinformation, especially with the upcoming November election. The challenge of distinguishing fact from fiction has never been more critical. This reality inspired us to create FactChecker - a tool designed to empower users with real-time fact validation capabilities, helping them make informed decisions based on verified information.
What it does 🎯
FactChecker is a sophisticated browser extension that:
- Analyzes web content in real-time for factual claims
- Provides instant verification results using advanced AI and reliable fact-checking databases
- Highlights potentially misleading information directly on web pages
- Offers detailed explanations and sources for fact-checked claims
- Helps users develop better information literacy skills
How we built it 🛠️
The development process involved several key stages:
- Created a robust backend system using Python for natural language processing and fact verification
- Implemented a Chrome extension with JavaScript for seamless browser integration
- Developed an AI-powered fact-checking algorithm using state-of-the-art language models
- Built a user-friendly frontend interface using Next.js and Tailwind CSS
- Integrated multiple fact-checking APIs and databases for comprehensive verification
Challenges we ran into 🚧
Some key challenges we faced included:
- Ensuring accurate natural language processing for complex statements and context
- Optimizing response times while maintaining verification accuracy
- Balancing user privacy with effective fact-checking capabilities
- Managing API rate limits and implementing efficient caching solutions
Accomplishments that we're proud of 🏆
- Successfully created a real-time fact-checking system with high accuracy
- Developed an intuitive and non-intrusive user interface
- Implemented sophisticated NLP algorithms for context-aware fact verification
- Built a scalable architecture that can handle high-volume requests
- Achieved seamless integration with various browsing environments
What we learned 📚
Throughout this project, we gained valuable experience with:
- Working with fact-checking APIs and information validation systems
- Building user-friendly interfaces for displaying verification results
- Understanding the importance of reliable information sources
- Implementing privacy-first data handling practices
- Managing complex browser extensions
- Coordinating frontend and backend systems for optimal performance
What's next for FactChecker 🚀
We have exciting plans for the future:
- Expanding our fact-checking database and API integrations
- Implementing machine learning for improved accuracy
- Adding support for multiple languages
- Developing a mobile version of the extension
- Creating a community-driven fact-checking feature
- Establishing partnerships with news organizations and educational institutions
This project helped us grow as developers by reinforcing the importance of building technology that serves a crucial social purpose while maintaining high technical standards. We're committed to continuing our work in combating misinformation and helping users make well-informed decisions.
Built With 🛠️
Frontend Technologies
- Next.js - React framework for the web interface
- TypeScript - For type-safe code
- Tailwind CSS - For styling and responsive design
- Chrome Extensions API - For browser integration
Backend Technologies
- Python - Primary backend language
- Flask - Web framework for API endpoints
- Natural Language Processing (NLP)
- Compromise.js - For text analysis
- NLTK - For sentence tokenization
AI/ML
- Ollama - For local AI model hosting
- LangChain - For AI chain operations
- DuckDuckGo API - For web search and verification
Development Tools
- Node.js - JavaScript runtime
- ESLint - Code linting
- Git - Version control
- npm/pip - Package management
APIs and Services
- Fact-checking APIs
- Google Fact Check Tools
- Various news verification services
- External Services
- DuckDuckGo Search API
- News APIs for cross-referencing
Architecture
- Browser Extension
- Content Scripts
- Background Services
- Popup Interface
- Client-Server Architecture
- RESTful API endpoints
- Real-time verification services
🔍 FactChecker
A powerful browser-based fact-checking tool that helps users verify information in real-time.
🌟 Features
- Real-time Fact Checking: Analyze statements directly from web pages
- Browser Extension: Seamless integration with your browsing experience
- AI-Powered Analysis: Utilizes advanced NLP for accurate fact verification
- User-Friendly Interface: Clean, modern Next.js frontend
- Privacy-Focused: Local processing capabilities using Ollama
🏗️ Architecture
The project consists of three main components:
1. Browser Extension (./client)
- Chrome/Firefox compatible extension
- Real-time content analysis
- Sentence tokenization
- OAuth authentication
2. Backend Server (./server)
- Fast and efficient fact-checking server
- DuckDuckGo integration for web searches
- Ollama integration for AI processing
- RESTful API endpoints
3. Frontend Application (./frontend)
- Modern Next.js application
- Responsive UI with Tailwind CSS
- Real-time results display
- Interactive fact-checking interface
🚀 Getting Started
Prerequisites
- Node.js (v16 or higher)
- Python 3.8+
- Ollama installed locally
Installation
- Clone the repository
bash git clone https://github.com/yourusername/FactChecker.git cd FactChecker - Install backend dependencies
bash pip install -r requirements.txt - Install frontend dependencies
bash cd frontend/fact-checker-app npm install npm install lucide-react - Install browser extension dependencies
bash cd ../../client npm install### 🔧 Configuration - Set up your environment variables
- Configure the Ollama model settings
- Set up DuckDuckGo API credentials (if required)
🖥️ Usage
Running the Server
cd server
python "duckduckgo ollama server.py"
python fact_check_server.py
Starting the Frontend
cd frontend/fact-checker-app
npm run dev
Loading the Browser Extension
- Open your browser's extension management page
- Enable developer mode
- Load unpacked extension from the client directory
📚 API Documentation
The server exposes the following endpoints:
POST /check-fact: Submit a statement for fact-checkingGET /results: Retrieve fact-checking resultsPOST /feedback: Submit user feedback
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
👥 Authors
🙏 Acknowledgments
- Thanks to the Ollama team for their amazing AI models
- The Next.js team for their fantastic framework
- All contributors and supporters of this project
Built With
- duckduckgo
- fastapi
- git
- github
- next.js
- nltk
- node.js
- npm
- ollama
- pip
- python
- sklearn
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.