A full-stack AI-powered platform helping aspiring doctors find their ideal medical specialty β personality assessments, AI-generated insights, and data visualizations. Built for Ghana. π¬π
# MedMatch Ghana
MedMatch Ghana is a modern full-stack web platform for helping medical students, high school students interested in medicine, and dental students explore which specialty may best fit their personality, interests, work style, and lifestyle goals.
> π **Deploying / going live?** Follow **PRODUCTION_SETUP.md** β a detailed, step-by-step guide to set the Vercel environment variables (Supabase, Groq, Upstash, site URL) and get the site indexed on Google.
## Stack
- Next.js 15
- React 19
- TypeScript
- Tailwind CSS
- Framer Motion
- Recharts
- Lucide React
- Supabase
- Groq API
## Features included
- Premium landing page
- 25-question specialty assessment
- Weighted trait scoring engine in TypeScript
- Top 5 specialty matches
- AI-generated personalized explanation
- Radar chart and bar chart visualizations
- Top 3 specialty comparison table
- Ghana-aware specialty detail pages
- Dark mode
- Guest mode via local storage
- Supabase-ready saved result and share-link scaffolding
- Export-to-PDF via browser print flow
- Searchable specialty explorer
## Project structure
```text
app/
api/
assessment/
results/
share/[id]/
specialties/[slug]/
layout.tsx
page.tsx
components/
home/
layout/
motion/
quiz/
results/
specialties/
ui/
theme-provider.tsx
lib/
assessment.ts
scoring.ts
specialties.ts
supabase.ts
types.ts
supabase/
schema.sql
seed.sql
AUDIT.md # phased audit & fix playbook
```
## Getting started
1. Install dependencies:
```bash
npm install
```
2. Create `.env.local`:
```bash
NEXT_PUBLIC_SUPABASE_URL=your-supabase-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-supabase-service-role-key
GROQ_API_KEY=your-groq-api-key
GROQ_MODEL=llama-3.1-8b-instant
NEXT_PUBLIC_SITE_URL=
localhost
```
Security note: keep `.env.local` private and rotate any API key that has ever been shared, committed, pasted into logs, or exposed during a demo.
3. Start the app:
```bash
npm run dev
```
4. Open `
lo β¦