FactGuard helps detect misinformation across languages by combining NLP modules, an optional custom fact-checking model, and a simple UI for non-technical users. It is built as a Django backend (API + analysis modules) and a React + Vite frontend.
What problem does this solve?
/analyze/.ner_module.py) and semantic analysis (semantic_module.py).CUSTOM_MODEL_URL) to get a detailed verdict and sources.similarity_module.py) run if a second text is provided.QueryHistory for later review or export.factguard/) — UI, PDF export, account flows.ner_project/, ner_app/) — analysis endpoints and history API.CUSTOM_MODEL_URL & CUSTOM_MODEL_API_KEY.| Layer | Technology |
|---|---|
| Backend | Python, Django, Django REST Framework |
| NLP | Custom modules in ner_app (ner_module.py, semantic_module.py, similarity_module.py) |
| Frontend | React, Vite, Tailwind CSS |
| Storage | SQLite (default) / Django ORM |
| Auth / Extras | Firebase, Supabase (client libs included in frontend) |
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
export CUSTOM_MODEL_URL="http://private-model-host/query"
export CUSTOM_MODEL_API_KEY="your-api-key"
python manage.py migrate
python manage.py runserver 0.0.0.0:8000
The API root (home) responds at / and the analyze endpoint is at /analyze/.
cd factguard
npm install
npm run dev
http://localhost:5173).curl -X POST http://localhost:8000/analyze/ \
-H "Content-Type: application/json" \
-d '{"text":"The Eiffel Tower is in Berlin."}'
Sample response (abridged):
{
"entities": [...],
"sentiment": {...},
"similarity": null,
"customModel": {
"success": true,
"verdict": "VERIFIED",
"credibility": "High (4/5)",
"summary": "...",
"sources": ["https://example.com/source"]
}
}
GET /history/ returns stored QueryHistory items.
python manage.py export_history
cd factguard
npm run build
CUSTOM_MODEL_URL and CUSTOM_MODEL_API_KEY configure the external fact-checking model. If not set, the backend will attempt to hit the fallback URL and may return error responses.12 commits
6 commits
JavaScript
77.5%
Python
16.3%
HTML
5.7%
FactGuard helps detect misinformation across languages by combining NLP modules, an optional custom fact-checking model, and a simple UI for non-technical users. It is built as a Django backend (API + analysis modules) and a React + Vite frontend.
What problem does this solve?
/analyze/.ner_module.py) and semantic analysis (semantic_module.py).CUSTOM_MODEL_URL) to get a detailed verdict and sources.similarity_module.py) run if a second text is provided.QueryHistory for later review or export.factguard/) — UI, PDF export, account flows.ner_project/, ner_app/) — analysis endpoints and history API.CUSTOM_MODEL_URL & CUSTOM_MODEL_API_KEY.| Layer | Technology |
|---|---|
| Backend | Python, Django, Django REST Framework |
| NLP | Custom modules in ner_app (ner_module.py, semantic_module.py, similarity_module.py) |
| Frontend | React, Vite, Tailwind CSS |
| Storage | SQLite (default) / Django ORM |
| Auth / Extras | Firebase, Supabase (client libs included in frontend) |
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
export CUSTOM_MODEL_URL="http://private-model-host/query"
export CUSTOM_MODEL_API_KEY="your-api-key"
python manage.py migrate
python manage.py runserver 0.0.0.0:8000
The API root (home) responds at / and the analyze endpoint is at /analyze/.
cd factguard
npm install
npm run dev
http://localhost:5173).curl -X POST http://localhost:8000/analyze/ \
-H "Content-Type: application/json" \
-d '{"text":"The Eiffel Tower is in Berlin."}'
Sample response (abridged):
{
"entities": [...],
"sentiment": {...},
"similarity": null,
"customModel": {
"success": true,
"verdict": "VERIFIED",
"credibility": "High (4/5)",
"summary": "...",
"sources": ["https://example.com/source"]
}
}
GET /history/ returns stored QueryHistory items.
python manage.py export_history
cd factguard
npm run build
CUSTOM_MODEL_URL and CUSTOM_MODEL_API_KEY configure the external fact-checking model. If not set, the backend will attempt to hit the fallback URL and may return error responses.12 commits
6 commits
JavaScript
77.5%
Python
16.3%
HTML
5.7%