How utkarshhh0/head-hunters-sih26 works
This is an AI-powered criminal-network analysis investigator workspace: source records are prepared into a knowledge graph, analytical patterns become reviewable findings, and investigators explore entities, timelines, evidence, and reports through a web UI. The sampled workspace service confirms pattern detection, finding synthesis, and provenance assembly; the query layer confirms bounded Neo4j reads. The tree and README identify additional pipeline and analytics stages, but their internal wiring was not sampled, so those links are omitted.
Main entry points: App.tsx Workspace App · workspace_service.py Workspace Service · main.py FastAPI App · client.ts API Client
Components 32
Investigator UI
- Workspace App
src/frontend/src/App.tsx - Dashboard
src/frontend/src/pages/Dashboard.tsx - Investigation
src/frontend/src/pages/Investigation.tsx - Entity Intelligence
src/frontend/src/pages/EntityIntelligence.tsx - Network Explorer
src/frontend/src/pages/NetworkExplorer.tsx - Timeline
src/frontend/src/pages/Timeline.tsx - Analytical Findings
src/frontend/src/pages/AnalyticalFindings.tsx - Evidence
src/frontend/src/pages/Evidence.tsx - Reports
src/frontend/src/pages/Reports.tsx - API Client
src/frontend/src/api/client.ts - Entity API
src/frontend/src/api/entitiesApi.ts - Findings API
src/frontend/src/api/findingsApi.ts - Reports API
src/frontend/src/api/reportsApi.ts - Workspace API
src/frontend/src/api/workspaceApi.ts
Backend API
- FastAPI App
src/backend/main.py - Entity Routes
src/backend/app/api/v1/entities.py - Finding Routes
src/backend/app/api/v1/findings.py - Report Routes
src/backend/app/api/v1/reports.py - Workspace Routes
src/backend/app/api/v1/workspace.py
Analysis Workflow
- Workspace Service
src/backend/app/services/workspace_service.py - Pattern Detection
src/backend/app/analytics/patterns.py - Structural and Temporal Analysis
src/backend/app/analytics/structural.py - Finding Synthesis
src/backend/app/services/finding_service.py - Report Generation
src/backend/app/services/report_service.py
Graph and Ingestion
- Graph Query Layer
src/backend/app/graph/query.py - Source Ingestion
src/backend/app/pipeline/ingestion.py - Extraction
src/backend/app/pipeline/extraction.py - Normalization
src/backend/app/pipeline/normalization.py - Entity Resolution
src/backend/app/pipeline/resolution.py - Graph Loading
src/backend/app/graph/loader.py
Other components
- Investigator
- Neo4j Graph
Connections 41
- Investigator → Workspace App: uses
- Workspace App → Dashboard: routes to
- Workspace App → Investigation: routes to
- Workspace App → Entity Intelligence: routes to
- Workspace App → Network Explorer: routes to
- Workspace App → Timeline: routes to
- Workspace App → Analytical Findings: routes to
- Workspace App → Evidence: routes to
- Workspace App → Reports: routes to
- Entity Intelligence → Entity API: requests data
- Network Explorer → Entity API: requests data
- Analytical Findings → Findings API: requests data
- Reports → Reports API: requests data
- Dashboard → Workspace API: requests data
- Investigation → Workspace API: requests data
- Timeline → Entity API: requests data
- Evidence → Findings API: requests data
- Entity API → API Client: uses
- Findings API → API Client: uses
- Reports API → API Client: uses
- Workspace API → API Client: uses
- API Client → FastAPI App: HTTP requests
- FastAPI App → Entity Routes: dispatches
- FastAPI App → Finding Routes: dispatches
- FastAPI App → Report Routes: dispatches
- FastAPI App → Workspace Routes: dispatches
- Workspace Routes → Workspace Service: calls
- Finding Routes → Workspace Service: calls
- Report Routes → Workspace Service: calls
- Entity Routes → Graph Query Layer: queries
- Workspace Service → Pattern Detection: detects patterns
- Workspace Service → Finding Synthesis: synthesizes findings
- Workspace Service → Graph Query Layer: loads provenance
- Workspace Service → Report Generation: generates reports
- Pattern Detection → Structural and Temporal Analysis: uses analysis
- Graph Query Layer → Neo4j Graph: reads graph
- Source Ingestion → Extraction: feeds
- Extraction → Normalization: feeds
- Normalization → Entity Resolution: feeds
- Entity Resolution → Graph Loading: feeds
- Graph Loading → Neo4j Graph: writes graph