Frontend platform for Uwazi - Kenya's procurement transparency system. Dual interface: (1) Investigator dashboard for EACC/Auditor General to detect corruption, and (2) Public portal for citizen oversight. Brings transparency to KSh 1.5T in annual government procurement. Built with Next.js, TypeScript, Tailwind CSS, D3.js, Leaflet, Recharts.
# Kenya Procurement Anti-Corruption Monitoring System (KCAC)
An intelligence-grade procurement fraud detection and risk assessment platform for Kenya's public sector. Real-time analysis with AI-powered risk scoring, whistleblower portal, and investigator tools.
## Overview
The KCAC system provides comprehensive monitoring of procurement activities across Kenya's government entities, with focus on:
- **Real-time risk scoring** of tenders and suppliers
- **Fraud detection** using machine learning (price inflation, ghost companies, bid rigging)
- **Anonymous whistleblower portal** with credibility assessment
- **Investigation management** with case tracking
- **Analytics dashboard** with county-level and entity-level insights
- **ML model management** for continuous model improvement
## Tech Stack
- **Frontend**: Next.js 16, React 19, Tailwind CSS v4
- **State Management**: Zustand
- **UI Components**: shadcn/ui + custom risk assessment components
- **Data Visualization**: Recharts
- **Icons**: Lucide React
- **Authentication**: Custom JWT-based (no next-auth)
- **Styling**: IBM Plex fonts, intelligence-grade dark theme
## Architecture
### Directory Structure
```
app/
├── (auth)/ # Auth routes (login, etc)
├── (dashboard)/ # Main app routes
│ ├── page.tsx # Dashboard homepage
│ ├── tenders/ # Tender browsing and detail pages
│ ├── suppliers/ # Supplier profiles
│ ├── risk/ # Risk analysis tools
│ ├── analytics/ # Analytics and reporting
│ ├── investigations/ # Investigation management
│ ├── whistleblower/ # Anonymous reporting
│ ├── ml-status/ # ML model management
│ └── settings/ # User settings
├── layout.tsx # Root layout
└── not-found.tsx # 404 handling
components/
├── Sidebar.tsx # Navigation sidebar
├── Topbar.tsx # Top bar with search
├── RiskBadge. …