# 🎓 ScholarHub Africa
**A scholarship discovery and tracking platform for African students seeking fully-funded international master's opportunities.**
Every scholarship record is human-verified against official sources, scored 0–100 for profile fit, and tracked from research to award.
- **Stack:** Next.js 15 (App Router) · React 19 · TypeScript · Tailwind v4 · Drizzle ORM · Neon (PostgreSQL) · Auth.js · Inngest · Resend · Vercel
---
## ✨ Features
| Feature | Status |
|---|---|
| Scholarship directory — verified opportunities, 23+ countries, 18 fields | ✅ |
| Full-text search (PostgreSQL `tsvector` GIN index) with live suggestions | âś… |
| Filters — country, field, funding, eligibility, status, min score, deadline window | ✅ |
| Country & field grouping pages | âś… |
| Detail pages with live deadline countdown, score badge, change history, JSON-LD, OG tags | âś… |
| Application tracker — kanban (Researching → Drafting → Submitted → Decision) | ✅ |
| 24-item document checklist with readiness progress | âś… |
| Weekly Monday email digest (Vercel Cron + Resend) | âś… |
| REST API — `/api/v1/scholarships/`, `open_now/`, `top/`, `countries/`, `fields/`, `search/`, tracker CRUD | ✅ |
| Auth — registration, Google OAuth, JWT sessions (Auth.js) | ✅ |
| AI-powered CSV importer — NVIDIA Llama 3.3-70B via Inngest background jobs | ✅ |
| GDPR consent manager — GCM v2 + TCF 2.3, Postgres-backed log, consent-gated GA4 | ✅ |
| Sitemap, robots.txt, JSON-LD, OG/Twitter tags, full SEO scaffolding | âś… |
| Admin dashboard — CSV upload management, resync, delete | ✅ |
---
## 🚀 Local development
```bash
cd web
cp .env.example .env.local # fill in DATABASE_URL (Neon pooled), AUTH_SECRET, etc.
npm install
npm run dev #
localhost
```
### Database
```bash
npm run db:generate # regenerate Drizzle migration SQL (web/drizzle/)
npm run db:migrate # apply schema migrations to Neon
npm run db:studio # Drizzle Studio GUI
```
### Tests
```bash
npm run t …