Production-ready Next.js + Supabase CRM and operations platform for CPR / First Aid training.
- Next.js App Router + React + Tailwind
- Supabase (Postgres + Auth)
- Vercel deployment target
- Accounts + Contacts
- Courses + Classes
- Participants + Registrations
- Roster import (
.csv,.xlsx) - Readiness engine + blocking/warning checks
- Messaging engine with safe workflow:
- Create draft batch
- Approve batch
- Send batch (approval required)
- Communication history + audit logs
npm install --no-audit --no-fund
cp .env.example .env.local
npm run devCreate a Supabase project, then run SQL migrations in order:
- [
db/migrations/0001_initial_schema.sql](/Users/elineirick/Documents/n.e. thing training/ne-thing-crm/db/migrations/0001_initial_schema.sql) - [
db/migrations/0002_seed_reference_data.sql](/Users/elineirick/Documents/n.e. thing training/ne-thing-crm/db/migrations/0002_seed_reference_data.sql)
Set project URL + keys in .env.local.
- Push this repo to GitHub.
- In Vercel:
Add New... -> Project, import repo. - During setup, add environment variables from
.env.example. - (Optional) In Vercel Integrations, add Supabase integration to sync env vars automatically.
- Deploy.
After deploy:
- Open
/loginand create first user. - Seed initial business data in
/courses,/accounts,/classes.
- Messages are never sent directly from template/class selection.
- Send requires an explicit
Approveaction on a draft batch. - Only
approvedbatches can be sent. - Sends are logged in
message_queue,communication_history, andaudit_logs.
- Stripe/Jotform/Red Cross adapters are currently stubs for future API integration.
- SMTP sender is placeholder implementation; swap for production mailer service before go-live.