Never miss a license renewal. Automated reminders for beauty & personal care businesses.
- 🤖 AI-Powered Onboarding: Upload license photos and let AI extract expiration dates
- 📅 Smart Reminders: Automated email and SMS reminders at 90, 60, 30, 14, 7, and 0 days
- 📊 Dashboard: Visual overview of all compliance items with color-coded urgency
- 📁 Document Storage: Store and manage license documents securely
- 🔍 Compliance Database: Built-in knowledge of state-specific requirements
- Frontend: Next.js 14 (App Router), React, TailwindCSS, shadcn/ui
- Backend: Next.js API routes + Supabase
- Database: PostgreSQL (via Supabase)
- Auth: Supabase Auth
- Storage: Supabase Storage
- AI: OpenAI GPT-4o-mini, Google Cloud Vision
- Email: Resend
- SMS: Twilio
- Payments: Stripe subscriptions and billing
- Node.js 18+
- Supabase account
- OpenAI API key
- Google Cloud Vision API key (optional, for OCR)
- Resend API key (for email)
- Twilio account (for SMS)
- Clone the repository:
git clone <repo-url>
cd Certirise- Install dependencies:
npm install- Set up environment variables:
cp .env.local.example .env.localFill in your environment variables in .env.local:
# Supabase
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
# OpenAI
OPENAI_API_KEY=your_openai_api_key
# Google Cloud Vision (optional)
GOOGLE_CLOUD_PROJECT_ID=your_project_id
GOOGLE_APPLICATION_CREDENTIALS=path_to_credentials_json
# Resend
RESEND_API_KEY=your_resend_api_key
# Twilio
TWILIO_ACCOUNT_SID=your_twilio_account_sid
TWILIO_AUTH_TOKEN=your_twilio_auth_token
TWILIO_PHONE_NUMBER=your_twilio_phone_number
-
Set up the database:
- Create a new Supabase project
- Run the SQL migration in
lib/supabase/migrations/schema.sql - Seed regulations:
npm run seed(create a script for this)
-
Run the development server:
npm run devOpen http://localhost:3000 in your browser.
- In Supabase dashboard, go to SQL Editor
- Copy and paste the contents of
lib/supabase/migrations/schema.sql - Run the migration
- Seed regulations data (create a script or run manually)
The reminder system runs via cron jobs. Set up a cron job to hit:
GET /api/cron/reminders
With authorization header:
Authorization: Bearer YOUR_CRON_SECRET
Recommended schedule: Run every day at 9 AM UTC.
├── app/ # Next.js app directory
│ ├── (dashboard)/ # Dashboard routes
│ ├── api/ # API routes
│ ├── onboarding/ # Onboarding flow
│ └── page.tsx # Landing page
├── components/ # React components
│ ├── ui/ # shadcn/ui components
│ ├── dashboard/ # Dashboard components
│ └── onboarding/ # Onboarding components
├── lib/ # Utility functions
│ ├── ai/ # AI/OCR functions
│ ├── reminders/ # Reminder system
│ └── supabase/ # Supabase client & migrations
└── public/ # Static assets
- Stripe payment integration
- Document upload to Supabase Storage
- Multi-location support
- Employee portal
- Regulation change monitoring
- Auto-fill renewal forms
MIT
For support, email support@certirise.com