Skip to content

agentsia223/check_ia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Check-IA Logo

Check-IA

AI-powered fact-checking platform for the Sahel region

Tests Codecov Django React Supabase Railway License

Live AppReport BugRequest Feature


About

Check-IA is a fact-checking platform designed for the cultural and linguistic realities of French-speaking Africa. It uses multiple AI models to verify text claims and images, providing sourced explanations accessible to the general public.

Key Features

  • Text Verification — Submit a claim and get a sourced verdict (True / False / Undetermined) with a detailed explanation
  • Image Content Verification — Upload an image with a claim and verify whether the image supports it
  • AI Image Detection — Detect whether an image is AI-generated or authentic
  • User Dashboard — Track your verification history with an authenticated account

Tech Stack

Layer Technology
Frontend React 18, Material-UI 6
Backend Django 5.1, Django REST Framework
Auth & Database Supabase (PostgreSQL, JWT Auth, Storage)
Task Queue Celery + Redis
AI Models RoBERTa, GPT-4o-mini (OpenRouter), Gemini 2.0 Flash, Perplexity Sonar Pro
Deployment Railway

Architecture

System Architecture

AI Analysis Pipeline

User Input → RoBERTa Classification → Source Search (Perplexity)
           → LLM Analysis (GPT-4o-mini) → Structured Verdict + Explanation

For image verification, Gemini 2.0 Flash performs visual analysis directly.

Getting Started

Prerequisites

  • Python 3.12+
  • Node.js 18+
  • Redis
  • A Supabase project

Environment Variables

Copy .env.example to .env in the project root and fill in your secrets:

cp .env.example .env

Backend variables:

# Django
DJANGO_SECRET_KEY=
DEBUG=False
ALLOWED_HOSTS=localhost,127.0.0.1

# Database (Supabase PostgreSQL)
DB_HOST=
DB_PORT=6543
DB_NAME=postgres
DB_USER=
DB_PASSWORD=

# Supabase
SUPABASE_URL=
SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=

# AI Services
OPENROUTER_API_KEY=
PERPLEXITY_API_KEY=

# Celery
REDIS_URL=redis://localhost:6379/0
CORS_ALLOWED_ORIGINS=http://localhost:3000

Copy client/.env.example to client/.env:

cp client/.env.example client/.env

Frontend variables:

REACT_APP_SUPABASE_URL=
REACT_APP_SUPABASE_ANON_KEY=
REACT_APP_API_URL=http://localhost:8000

Backend

# Install dependencies
pip install -r requirements.txt

# Run migrations
python manage.py migrate

# Start the development server
python manage.py runserver

Frontend

cd client
npm install
npm run dev

Production: npm start serves the existing production build. Use npm run build first, then npm start.

Celery Worker

# Start Redis (separate terminal)
redis-server

# Start Celery worker (separate terminal)
celery -A config worker --loglevel=info

API Reference

Method Endpoint Description
POST /api/submit-fact/ Submit text for fact-checking
GET /api/user-submissions/ Get user's submission history
POST /api/verify-image-content/ Verify a claim about an image
POST /api/detect-ai-image/ Detect AI-generated images
GET /api/image-verifications/ Get image verification history
GET /api/facts/ List verified facts
GET /api/keywords/ List available keywords

All endpoints except /api/facts/ and /api/keywords/ require a valid Supabase JWT in the Authorization: Bearer <token> header.

Project Structure

check_ia/
├── config/                   # Django project config
│   ├── settings.py
│   ├── settings_test.py      # Test settings (SQLite, eager Celery)
│   ├── celery.py
│   └── urls.py
├── core/                     # Main Django app
│   ├── models.py             # Submission, ImageVerification, Fact
│   ├── views.py              # API views
│   ├── authentication.py     # Supabase JWT auth backend
│   ├── tests/                # Test suite
│   └── services/
│       ├── ai_analysis.py    # Orchestrates the analysis pipeline
│       ├── llm.py            # OpenRouter (GPT-4o-mini) integration
│       ├── perplexity_search.py  # Source discovery
│       ├── image_verification.py # Gemini vision analysis
│       └── supabase_storage.py   # File upload/signed URLs
├── client/                   # React app
│   ├── src/components/       # UI components
│   ├── src/utils/            # Auth context, routing
│   └── src/lib/              # Supabase client
├── docs/                     # MkDocs documentation source
├── .github/                  # CI/CD workflows, PR/issue templates
├── LICENSE                   # Apache License 2.0
├── CODE_OF_CONDUCT.md        # Contributor Covenant
├── CONTRIBUTING.md            # Contribution guidelines
├── PROJECT_CHARTER.md        # Project vision, mission, values
├── TEST_PLAN.md              # QA process: strategy, test cases, data structures, PR workflow
├── mkdocs.yml                # Documentation site config
├── railway.toml              # Railway backend config
├── railway-celery.toml       # Railway celery worker config
└── requirements.txt

Deployment

The app is deployed on Railway with three services:

  • backend — Django + Gunicorn
  • celery-worker — Celery with Redis broker
  • frontend — React (static build served by Caddy)

Deployments are triggered via GitHub Actions on push to main.

Documentation

Full documentation is available at https://agentsia223.github.io/check_ia/.

Contributing

We welcome contributions! Please read our Contributing Guide for details on the development process, branching strategy, and how to submit pull requests.

This project adheres to a Code of Conduct. By participating, you are expected to uphold this code.

Governance

See our Project Charter for the project's vision, mission, and community values.

License

Distributed under the Apache License 2.0. See LICENSE for details.


Check-IA — Combating misinformation with contextual intelligence.

About

An AI-powered fact-checking platform designed for the cultural and linguistic realities of the Sahel. Combating misinformation with contextual intelligence.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors