Skip to content

Adrian8293/credentialiq

Repository files navigation

# CredentialIQ — Positive Inner Self A full-stack healthcare credentialing management system built with **Next.js**, **Supabase**, and deployed on **Vercel**. --- ## Features - 👤 Provider management with full credential tracking - 🏥 Payer enrollment pipeline with stage workflows - 📎 Document & expiry tracking with automated alerts - ⚡ Workflow tasks with priority & status management - 📊 Reports & analytics dashboard - 📋 Full audit trail - 🔍 NPI Registry live lookup (NPPES API) - 🔔 Real-time updates via Supabase Realtime - 🔐 Email/password authentication --- ## Quick Start ### 1. Clone & Install ```bash git clone https://github.com/yourname/credentialiq.git cd credentialiq npm install ``` ### 2. Set Up Supabase 1. Create a project at [supabase.com](https://supabase.com) 2. Go to **SQL Editor** and run the entire contents of `supabase-schema.sql` 3. Go to **Project Settings → API** and copy: - `Project URL` - `anon/public` key ### 3. Configure Environment ```bash cp .env.example .env.local ``` Edit `.env.local`: ``` NEXT_PUBLIC_SUPABASE_URL=https://your-project-id.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key-here ``` ### 4. Enable Realtime (Optional) In Supabase Dashboard → **Database → Replication**, enable realtime for: - `providers`, `payers`, `enrollments`, `documents`, `tasks` ### 5. Run Locally ```bash npm run dev ``` Visit [http://localhost:3000](http://localhost:3000) --- ## Deploy to Vercel ### Option A: Vercel Dashboard (Recommended) 1. Push your code to GitHub 2. Go to [vercel.com](https://vercel.com) → Import Project 3. Select your repo 4. Add Environment Variables: - `NEXT_PUBLIC_SUPABASE_URL` - `NEXT_PUBLIC_SUPABASE_ANON_KEY` 5. Click **Deploy** ### Option B: Vercel CLI ```bash npm i -g vercel vercel # Follow prompts, then add env vars: vercel env add NEXT_PUBLIC_SUPABASE_URL vercel env add NEXT_PUBLIC_SUPABASE_ANON_KEY vercel --prod ``` --- ## Authentication The app uses Supabase Auth (email/password). **Create your first account:** 1. Visit `/login` 2. Click "Create account" 3. Enter your email and password 4. Check email for confirmation link 5. Sign in **Password reset:** - Visit `/login` → "Forgot password?" - Enter email → check inbox → follow link to `/reset-password` --- ## Project Structure ``` credentialiq/ ├── pages/ │ ├── index.js # Main app (all pages + components) │ ├── login.js # Auth page │ ├── reset-password.js # Password reset │ └── _app.js ├── lib/ │ ├── supabase.js # Supabase client │ ├── db.js # All database operations │ └── mappers.js # camelCase ↔ snake_case field mapping ├── styles/ │ └── globals.css ├── supabase-schema.sql # Run this in Supabase SQL Editor ├── .env.local # Your secrets (not in git) └── .env.example # Template ``` --- ## Database Schema | Table | Description | |-------|-------------| | `providers` | Provider profiles, credentials, expiry dates | | `payers` | Insurance payer directory | | `enrollments` | Provider-payer enrollment pipeline | | `documents` | Credential documents with expiry tracking | | `tasks` | Workflow tasks with priority/status | | `audit_log` | Full activity audit trail | | `settings` | Practice settings (single row) | --- ## Adding Multi-Tenancy (Multiple Practices) When you're ready to support multiple practices, uncomment the RLS policies in `supabase-schema.sql` and add a `practice_id` column to each table. This is a natural next step when scaling beyond a single organization. --- ## Tech Stack - **Frontend**: Next.js 14 (Pages Router), React 18 - **Database**: Supabase (PostgreSQL) - **Auth**: Supabase Auth - **Realtime**: Supabase Realtime (WebSockets) - **Deployment**: Vercel - **External APIs**: NPPES NPI Registry "# credentialiq" # credentialiq

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors