ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A Bible study and quiz app (Genesis, Exodus, 1-2 Samuel, Ezra, Psalms, Matthew,
John, Galatians), built for youth ministry
leaders and the high schoolers they teach. Domain knowledge over trivia: what
happens, where, and to whom — not theological debate.
Static site, no backend, no database — with one scoped exception: Question of
the Day (/qotd) calls Supabase directly from the browser to record answers
and show a shared daily percentile. Everything else stays backend-free.
Content is developer-authored JSON validated by Zod. Progress is tracked in
the browser via localStorage.檢視完整 README ↗A Bible study and quiz app (Genesis, Exodus, 1-2 Samuel, Ezra, Psalms, Matthew, John, Galatians), built for youth ministry leaders and the high schoolers they teach. Domain knowledge over trivia: what happens, where, and to whom — not theological debate.
Static site, no backend, no database — with one scoped exception: Question of
the Day (/qotd) calls Supabase directly from the browser to record answers
and show a shared daily percentile. Everything else stays backend-free.
Content is developer-authored JSON validated by Zod. Progress is tracked in
the browser via localStorage.
npm install
npm run dev
Every page except /qotd works with no configuration. To exercise Question
of the Day locally, create a Supabase project (see supabase/migrations/0001_qotd.sql
for the schema to run), then add a .env.local:
NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=...
Without it, lib/supabase.ts only throws when a QOTD submit/fetch call is
actually made — the rest of the app is unaffected, and /qotd itself still
loads and shows the question, it just can't save an answer or show a
percentile.
Each book's content lives in content/<book>/*.json, validated against
content/schema.ts. Quiz questions come from two sources:
events.json/quotes.json/chapters.json
by lib/generate.ts (which chapter, where, who says it, what a chapter is about,
event ordering, matching). Exhaustively validated at build time so nothing ambiguous
ships.questions.json (themes, arcs,
covenants, characters, the book's argument) that a generator can't produce. Either
multiple choice (options + correctIndex) or short answer (format: "short-answer",
a one-or-two-word answer the player types, plus optional aliases).Events, quotes, and authored questions can carry tier: "general" for the facts most
churchgoers know without having read the book; the whole-Bible quiz's "General
knowledge" mode draws only from those. Untagged items are "deep".
CONTENT_PLAN.md is the roadmap for covering all 66 books: the per-genre conventions,
the per-book authoring recipe, and a coverage table. Start there before authoring a book.
Run the content gate before committing any content change:
npm run check:content
npm test
Fully static (output: "export" in next.config.ts) — no serverless functions.
npm run build
NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY (all
environments) so Question of the Day works on the deployed site. NEXT_PUBLIC_*
vars are inlined at build time, so this must be done before the first
build that needs them.npm run build, and serves the static
out/ directory produced by output: "export". No other project
settings need to change.No vercel.json is included on purpose: this is a plain static export with
no functions, no redirects, and no headers that need overriding, so Vercel's
zero-config static-site handling (including the auto-generated 404 page) is
enough. Add one later only if a real need shows up (custom headers,
redirects, etc.).
Vercel Analytics and
Speed Insights are wired into
app/layout.tsx. Both only report data when served from a Vercel domain —
they no-op in local dev and in the static out/ build.