How aakarsh1506/evidex works
EVIDEX is a criminal-record and network-analysis application: officers authenticate, browse profiles and case statistics, upload documents or database exports, review extracted entities and links, then save reviewed records for network analysis and investigator search. The React application calls the FastAPI API; the README also documents an Express alternative, which is not present in this file tree. Document processing is an asynchronous, review-gated workflow, with PostgreSQL for records and job state and Neo4j for graph relationships. Major analysis and AI capabilities are represented at their documented module boundaries; unsampled route wiring is not expanded.
Main entry points: ingestion.py Ingestion worker · app.py FastAPI app · documents.py Document routes · routes Workspace and stats
Components 25
Officer application
- React app
frontend/src/App.jsx - Officer pages
frontend/src/pages - API clients
frontend/src/api
API and identity
- FastAPI app
backend/app.py - Authentication
backend/routes/auth.py - Document routes
backend/routes/documents.py - Record routes
backend/routes/criminals.py - Workspace and stats
backend/routes
Document processing
- Ingestion worker
backend/services/ingestion.py - Text extraction
backend/services/document_text.py - Export import
backend/services/database_import.py - Entity extraction
backend/services/extraction.py - Review and resolution
backend/services/entity_review.py - Record and graph writes
backend/services/ingestion_store.py - Document files
backend/services/document_files.py
Records and analysis
- Criminal profiles
backend/services/profile_record.py - Network analysis
backend/services/network.py - Investigator analysis
backend/services/investigator_chat.py - AI insights
backend/services/insight.py
Persistence and AI
- PostgreSQL
backend/db.py - Neo4j graph
backend/neo4j_driver.py - Document search
backend/services/rag.py
Other components
- Officer
- Ollama
- Groq
Connections 27
- Officer → React app: uses
- React app → Officer pages: renders
- Officer pages → API clients: requests
- API clients → FastAPI app: calls API
- FastAPI app → Authentication: dispatches
- FastAPI app → Document routes: dispatches
- FastAPI app → Record routes: dispatches
- FastAPI app → Workspace and stats: dispatches
- Authentication → PostgreSQL: reads officers
- Document routes → Ingestion worker: queues jobs
- Ingestion worker → Document files: loads files
- Ingestion worker → Text extraction: extracts text
- Ingestion worker → Export import: parses exports
- Ingestion worker → Entity extraction: extracts entities
- Ingestion worker → Document search: indexes text
- Ingestion worker → Record and graph writes: persists review
- Ingestion worker → PostgreSQL: queues and updates
- Record and graph writes → PostgreSQL: writes records
- Record and graph writes → Neo4j graph: syncs graph
- Document routes → Review and resolution: reviews identities
- Record routes → Criminal profiles: serves profiles
- Workspace and stats → Network analysis: serves analysis
- Workspace and stats → Investigator analysis: serves queries
- Investigator analysis → Document search: searches documents
- Investigator analysis → Neo4j graph: queries graph
- AI insights → Ollama: uses model
- AI insights → Groq: uses model