a career recommendation site for school lovers
# CareerSignal Africa — Production MVP
React/Vite MVP for Zambia-first career recommendations with PostgreSQL/Supabase authentication, analytics consent, user dashboards, verified admin tools, CSV workflows, and transparent career-market scoring.
## Stack
- React + Vite
- PostgreSQL via Supabase
- Supabase Auth for users and admins
- Row Level Security-ready schema in `schema.sql`
- Netlify deployment
- Local seed fallback in `src/data.js`
## New production MVP features
- Cookie/consent banner for necessary storage and optional analytics.
- Usage analytics event collection after consent.
- First recommendation works without account creation.
- On second visit, users are prompted to create a free account.
- Email/password authentication through Supabase Auth.
- User dashboard for profile context and saved/shortlisted careers.
- Admin dashboard is hidden unless authenticated profile role is `admin`.
- Admin analytics tab with Mixpanel-inspired charts, recent activity stream, counts, and structured CSV export.
- Admin manual data editor for career profile details and regional market data.
- Admin CSV import for market data.
- CSV export for market data.
- CSV export for usage reports.
- CSV export for newsletter emails.
- Newsletter capture form on landing page.
- Career-specific YouTube topics with in-site embed support plus direct YouTube links.
- Category-specific blog/reading resources.
## Project structure
```text
career-signal-africa/
src/
main.jsx # React app, routes, auth UI, dashboards, scoring engine
data.js # Seed career/source data fallback
styles.css # Corporate UI system
supabaseClient.js # Supabase client setup
analytics.js # Consent-aware analytics helpers
scripts/
seed-supabase.mjs # Seeds sources/careers/market_data into Supabase
schema.sql # Production PostgreSQL/Supabase schema + RLS policies
.env.example
netlify.toml
```
## Local development
```bash
cd career-signal-africa …