Bring the platform to life

Complete the one-time console steps below, then this wizard does the rest — admin account, registry seeding, Sentinel, and your first API key — all server-side through the Setup Engine.

0One-time console prerequisites (only place you ever need the console)

  1. console.firebase.google.com → Add project → akadaiq
  2. Build → Authentication → Get started → enable Email/Password
  3. Build → Firestore Database → Create database (production mode)
  4. Firestore → Rules → paste firestore.rules from the repo → Publish
  5. Project settings → Service accounts → Generate new private key
  6. Netlify → Environment variables: FIREBASE_SERVICE_ACCOUNT (the JSON, base64-encoded), ANTHROPIC_API_KEY, ADMIN_SECRET (any long random string) → redeploy
  7. Project settings → General → Your apps → Web app → copy the config into dashboard.html (marked block) via GitHub web UI

1Connect the Setup Engine

Paste the ADMIN_SECRET you set in Netlify. It stays in this browser tab only.

2Create the curator account

Creates the Firebase Auth user AND grants curator access in one call — no console visit.

3Seed the registry

Writes 288 institutions + 38 NUC blacklist entries server-side. Idempotent (records keyed by id) — safe to re-run at setup, but it overwrites curator edits, so seed once.

4Arm the Sentinel

Loads the default NUC / NBTE / NCCE monitoring sources. Daily run at 06:00 WAT; extracted changes queue for your review in the dashboard.

5Issue your first API key

6Verify it's alive

Open these (use your new key in an API client for the POST):

GET  /v1/stats                       ← open, should show 288 institutions
GET  /v1/search?q=unilag             ← with x-api-key header
POST /v1/verify/institution          {"name":"Atlanta University Anyigba"}  → ILLEGAL
POST /v1/ask                         {"question":"List federal universities in Lagos"}

Then sign in at /dashboard.html with the curator account and begin re-verifying records in the Registry tab.

Lock the door behind you. The Setup Engine runs with the service account and can create admins. Once setup is complete, rotate ADMIN_SECRET in Netlify (or delete netlify/functions/setup.js from the repo). Routine operations belong in the dashboard, not here.