Logo Lanfrica

rauell1/ScholarHub-Africa

Domaine:

education

Type de record:

software
Créateur:
rau
HĂ´te:
# 🎓 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 …