# π CHAMPION β Africa's Sports Revolution
A full-stack sports platform built with **Next.js 14** + **PocketBase**, connecting athletes across Algeria and Chad with a roadmap for all 54 African nations.
---
## π Quick Start
### 1. Install dependencies
```bash
npm install
```
### 2. Start PocketBase
```bash
# Download from
pocketbase.io
./pocketbase serve
# Admin panel:
127.0.0.1
```
### 3. Create collections & seed data
```bash
# Set your admin credentials
export PB_ADMIN_EMAIL=admin@champion.africa
export PB_ADMIN_PASSWORD=yourpassword
# Run seeder
node scripts/seed-pocketbase.mjs
```
### 4. Start Next.js dev server
```bash
NEXT_PUBLIC_POCKETBASE_URL=
127.0.0.1 npm run dev
```
Visit: **
http://localhost:3000**
> **No PocketBase?** The app works fully with seed data β all hooks fall back gracefully.
---
## π Project Structure
```
src/
βββ app/ # Next.js App Router pages
β βββ page.tsx # β Dashboard
β βββ leaderboard/ # Rankings with podium
β βββ heatmap/ # Interactive SVG heat map
β βββ talent/ # Talent discovery engine
β βββ bilateral/ # Algeria-Chad challenge
β βββ minister/ # Government KPI dashboard
β βββ achievements/ # Badges & rewards store
β βββ clubs/ # Club portal & expansion
βββ components/
β βββ ui/ # Button, Card, Tag, Avatar, etc.
β βββ charts/ # DonutChart, MonthlyBarChart
β βββ layout/ # AppShell (header, nav, footer)
βββ hooks/
β βββ usePocketBase.ts # Data hooks with PB + fallback
βββ lib/
β βββ pocketbase.ts # PB client & collection helpers
β βββ data.ts # Static seed data & formatters
βββ types/
βββ index.ts # TypeScript interfaces
```
---
## π§ Environment Variables
```env
NEXT_PUBLIC_POCKETBASE_URL=
127.0.0.1
```
For production, point to your deployed PocketBase instance.
---
## ποΈ Po β¦