Nigeria citizen accountability news, public spending tracker & corroborated civic briefs
# WSFU (Who Swear For Us) π³π¬
> **Nigeria-focused citizen accountability, news, and government spending platform.**
> Built on React/Vite + FastAPI + Supabase (PostgreSQL + `pgvector`), featuring automated RSS aggregation, AI-assisted summarization, FAAC government spending tracking across all 36 States and 774 LGAs, Promise Meters, and FOI Request Generators.
---
## π Project Architecture
```text
wsfu/
βββ backend/ # FastAPI Backend & Background Workers
β βββ app/
β β βββ api/v1/endpoints/ # Feed, FAAC spending, Promises, FOI routes
β β βββ core/ # Settings, Logging, Config
β β βββ db/ # Supabase Client Manager
β β βββ services/ # Trafilatura Extractor, RSS Ingestor, Gemini AI Summarizer
β βββ requirements.txt
β βββ Dockerfile
β βββ main.py
βββ supabase/ # Database Schemas & Migrations
β βββ migrations/
β βββ 001_initial_schema.sql # Core tables & pgvector
β βββ 002_rls_policies.sql # Row Level Security
β βββ 003_seed_sources.sql # News sources (Punch, Premium Times, etc.)
β βββ 004_seed_nigeria_geo.sql # 36 States + 774 LGAs composite keys
βββ web/ # React 18 + Vite + Tailwind CSS + TypeScript
β βββ src/
β β βββ components/ # Header, NewsCard, FAACExplorer, PromiseTracker, FOIGenerator
β β βββ lib/ # API client & Supabase client
β β βββ types/ # TypeScript interfaces
β βββ package.json
β βββ vite.config.ts
βββ scripts/ # Seeder scripts
β βββ seed_nigeria_data.py
βββ .env.example
βββ docker-compose.yml
```
---
## π Quick Start Guide
### 1. Database Setup (Supabase)
1. Open your Supabase Dashboard.
2. Go to **SQL Editor** $\rightarrow$ **New Query**.
3. You can run the consolidated script in one click:
- `supabase/migrations/ALL_IN_ONE_MIGRATION.sql` *(Includes 001 - 010: Core Schema, 36 States + 774 β¦