尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Aptitude screening for NDA coaching admissions. Staff issue a 15-question, 15-minute reasoning test to a candidate; the parent receives the link on WhatsApp, the candidate takes it within three hours, and it grades itself.
Handles minors' personal data. This repository must stay private.
npm install
cp .env.example .env.local # then fill it in — see below
npm run dev
.env.local needs the Supabase project URL, anon key and service-role key,
plus NEXT_PUBLIC_APP_URL and a CRON_SECRET. It is gitignored and must stay
that way — the service-role key bypasses every RLS policy.
Create the first staff account, since the Supabase dashboard cannot set the role that RLS reads:
npm run staff:add -- [email protected] <password> superadmin
npm run staff:list # flags any account with no role
Seed the item bank:
npm run items:seed -- --live
Issue a test link without the console, for local testing:
npm run issue -- "Candidate Name" 9876543210
Run all of these before calling anything done.
| Command | What it covers |
|---|---|
npm run lint | ESLint, including the react-hooks rules |
npm run typecheck | tsc --noEmit |
npm test | 111 unit tests over the pure modules |
npm run test:integration | 35 tests against a real database |
npm run items:lint | Item shape, duplication, answer-length tells |
npm run build:check | Production build, into .next-verify |
npm run db:verify | Schema and constraints (empty database only) |
npm run db:verify-rls -- <email> <pass> | RLS as a real staff session (empty database only) |
Never run next build while next dev is live. It overwrites the .next
directory the dev server is serving from, every asset 404s, and nothing in the
output explains why. npm run build:check writes to .next-verify instead.
The two database probes write rows, so they refuse to run against a database holding real leads and exit 2 — a skip, not a failure. They are development tools, not a production health check.
Migrations live in supabase/migrations and are applied deliberately, never by
a deploy:
npx supabase db push --db-url "postgresql://postgres:<password>@db.<ref>.supabase.co:5432/postgres"
Rules are enforced by constraints and triggers rather than application code —
the reissue cap, the MCQ/numeric item shape, answer idempotency, and the
assessment state machine. npm run db:verify checks the database actually
rejects what it claims to.
See DEPLOY.md. Two things that will bite:
NEXT_PUBLIC_APP_URL must be the deployed origin. The staff console
builds the candidate link from it; left at localhost, every link it produces
is unusable.