Read-only admin dashboard for browsing interview sessions and reports stored in Supabase.
- OTP magic-link sign in
- Allowlist-based access gate (
admin_allowlisttable) - Sessions list with filters (status, type, user_id, email, title, date range)
- Session details panel (questions, summaries, reports)
- CSV export for filtered sessions
- Node.js 22+
- npm
- Supabase project used by
webcam-interview-analyzer-js
Copy .env.example to .env and set values:
VITE_SUPABASE_URL=https://<project-ref>.supabase.co
VITE_SUPABASE_ANON_KEY=<anon-key>npm ci
npm run devnpm run lint
npm run test
npm run buildApply migration in the main repo:
webcam-interview-analyzer-js/supabase/migrations/20260821_000001_admin_allowlist.sql
Then seed allowlisted admins, for example:
insert into public.admin_allowlist (user_id, email, is_active)
values
('<auth-user-uuid>', 'admin@company.com', true);Only users present and active in admin_allowlist can read cross-user interview data.
Workflows are in:
.github/workflows/deploy-pages.yml
Deployment behavior:
- Deploys on every push to
main - Uses
actions/upload-pages-artifact+actions/deploy-pages
Required repo secrets:
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEY
Required repo setting:
- GitHub Pages source set to GitHub Actions
Before releasing a new version:
- Update
package.jsonversion. - Update
src/version.jsvalues (APP_VERSION,RELEASE_DATE). - Add a new entry at the top of
CHANGELOG.mdusing the existing template. - Run local checks:
npm run lint
npm run test
npm run build- Merge/push to
mainto trigger GitHub Pages deployment.