ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
One web app at colloquiz.app with two products on the
same code, the same database and the same user accounts.
Alliengll: English mini-courses (the main focus now). Short English
courses for Russian speakers at levels A2 to B2. A course is 3 to 8 lessons of
10 to 15 minutes each: a little theory, then a few exercises, repeated. The
content is written by a partner, who promotes it on social media. The site
opens on these courses. The first courses are free; later ones will be sold
per course, each with a few free lessons as a sample.檢視完整 README ↗One web app at colloquiz.app with two products on the same code, the same database and the same user accounts.
Alliengll: English mini-courses (the main focus now). Short English courses for Russian speakers at levels A2 to B2. A course is 3 to 8 lessons of 10 to 15 minutes each: a little theory, then a few exercises, repeated. The content is written by a partner, who promotes it on social media. The site opens on these courses. The first courses are free; later ones will be sold per course, each with a few free lessons as a sample.
Colloquiz: the quiz platform (where the project started). Quizzes on
general subjects, with progress, streaks, achievements, groups, duels and a
leaderboard. Tutors can invite students and assign quizzes. An AI generator
writes new questions, and an admin reviews them before anyone sees them. It
now lives under /app.
Next.js 16 and React 19 (TypeScript), Tailwind CSS, Supabase (Postgres with row-level security and auth), hosted on Vercel. The Anthropic API powers the question generator.
Each box shows how many files and lines a folder holds; click a name to open it on GitHub. Open a section below the overview to see inside a folder.
flowchart LR
n0["<b><a href='https://github.com/JumpLikeFLEA/colloquiz' style='color:inherit'>colloquiz</a></b>"]
n1["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/.github/workflows' style='color:inherit'>.github/workflows</a></b><br/><i>CI: type-check, lint, tests</i>"]
n2["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app' style='color:inherit'>app</a></b><br/><i>Web pages and server endpoints (Next.js)</i>"]
n3["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/data' style='color:inherit'>data</a></b><br/><i>Quiz subjects and example questions</i>"]
n4["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/docs' style='color:inherit'>docs</a></b><br/><i>Decisions, handoff notes, legal texts</i>"]
n5["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/lib' style='color:inherit'>lib</a></b><br/><i>Logic without UI, mostly unit-tested</i>"]
n6["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/prompts' style='color:inherit'>prompts</a></b><br/><i>Lesson-drafting prompt and backlogs</i>"]
n7["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/scripts' style='color:inherit'>scripts</a></b><br/><i>Command-line tools: import, checks, benchmarks</i>"]
n8["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/supabase' style='color:inherit'>supabase</a></b><br/><i>Database</i>"]
n9["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/types' style='color:inherit'>types</a></b><br/><i>Shared TypeScript types</i>"]
n10["<a href='https://github.com/JumpLikeFLEA/colloquiz/blob/main/CLAUDE.md' style='color:inherit'>CLAUDE.md</a><br/><i>Working rules for AI coding sessions</i>"]
n11["<a href='https://github.com/JumpLikeFLEA/colloquiz/blob/main/proxy.ts' style='color:inherit'>proxy.ts</a><br/><i>Decides which pages need a login</i>"]
n0 --> n1
n0 --> n2
n0 --> n3
n0 --> n4
n0 --> n5
n0 --> n6
n0 --> n7
n0 --> n8
n0 --> n9
n0 --> n10
n0 --> n11
classDef collapsed stroke-dasharray:6 4
class n2,n4,n5,n7,n8 collapsed
classDef g1 fill:#dbeafe,stroke:#2563eb,color:#172554
class n3 g1
classDef g0 fill:#fef3c7,stroke:#d97706,color:#451a03
class n6 g0
classDef file stroke-width:0.5px
class n10,n11 file
🟨 Alliengll (English courses) · 🟦 Colloquiz (quiz platform) · dashed border = has more subfolders than shown · open the sections below for detail
flowchart LR
n0["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app' style='color:inherit'>app</a></b><br/><i>Web pages and server endpoints (Next.js)</i>"]
n1["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/(colloquiz)' style='color:inherit'>(colloquiz)</a></b><br/><i>Quiz platform, served under /app</i>"]
n2["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/(colloquiz)/(auth)' style='color:inherit'>(auth)</a></b><br/><i>Log in, sign up, reset password</i>"]
n3["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/(colloquiz)/(legal)' style='color:inherit'>(legal)</a></b><br/><i>Terms, privacy, subprocessors</i>"]
n4["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/(colloquiz)/(main)' style='color:inherit'>(main)</a></b><br/><i>Signed-in pages, incl. admin and course editor</i>"]
n5["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/(english)' style='color:inherit'>(english)</a></b><br/><i>English course pages, open to everyone</i>"]
n6["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/(english)/courses/%5BcourseSlug%5D' style='color:inherit'>courses/[courseSlug]</a></b>"]
n7["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api' style='color:inherit'>api</a></b><br/><i>Server endpoints the pages call</i>"]
n8["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api/account' style='color:inherit'>account</a></b>"]
n9["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api/admin' style='color:inherit'>admin</a></b>"]
n10["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api/assignments' style='color:inherit'>assignments</a></b>"]
n11["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api/author' style='color:inherit'>author</a></b>"]
n12["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api/duels' style='color:inherit'>duels</a></b>"]
n13["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api/feedback' style='color:inherit'>feedback</a></b>"]
n14["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api/groups' style='color:inherit'>groups</a></b>"]
n15["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api/invites' style='color:inherit'>invites</a></b>"]
n16["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api/notifications' style='color:inherit'>notifications</a></b>"]
n17["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api/quiz' style='color:inherit'>quiz</a></b>"]
n18["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api/quiz-shares' style='color:inherit'>quiz-shares</a></b>"]
n19["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api/reports' style='color:inherit'>reports</a></b>"]
n20["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api/results' style='color:inherit'>results</a></b>"]
n21["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/api/students/%5BstudentId%5D' style='color:inherit'>students/[studentId]</a></b>"]
n22["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/auth' style='color:inherit'>auth</a></b><br/><i>Email confirmation, social-login return</i>"]
n23["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/auth/callback' style='color:inherit'>callback</a></b>"]
n24["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/auth/confirm' style='color:inherit'>confirm</a></b>"]
n25["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/components' style='color:inherit'>components</a></b><br/><i>Shared UI pieces</i>"]
n26["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/components/figma' style='color:inherit'>figma</a></b><br/><i>Image helper (vendored, still in use)</i>"]
n27["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/components/lesson-player' style='color:inherit'>lesson-player</a></b><br/><i>The lesson player learners see</i>"]
n28["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/app/components/ui' style='color:inherit'>ui</a></b><br/><i>Basic building blocks (vendored)</i>"]
n0 --> n1
n1 --> n2
n1 --> n3
n1 --> n4
n0 --> n5
n5 --> n6
n0 --> n7
n7 --> n8
n7 --> n9
n7 --> n10
n7 --> n11
n7 --> n12
n7 --> n13
n7 --> n14
n7 --> n15
n7 --> n16
n7 --> n17
n7 --> n18
n7 --> n19
n7 --> n20
n7 --> n21
n0 --> n22
n22 --> n23
n22 --> n24
n0 --> n25
n25 --> n26
n25 --> n27
n25 --> n28
classDef g1 fill:#dbeafe,stroke:#2563eb,color:#172554
class n1,n2,n3,n4 g1
classDef collapsed stroke-dasharray:6 4
class n2,n3,n4,n6,n8,n9,n10,n11,n12,n14,n15,n17,n18,n27 collapsed
classDef g0 fill:#fef3c7,stroke:#d97706,color:#451a03
class n5,n6,n27 g0
flowchart LR
n0["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/docs' style='color:inherit'>docs</a></b><br/><i>Decisions, handoff notes, legal texts</i>"]
n1["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/docs/adr' style='color:inherit'>adr</a></b><br/><i>Larger architecture decisions</i>"]
n2["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/docs/decisions' style='color:inherit'>decisions</a></b><br/><i>One file per decision made while building</i>"]
n3["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/docs/release' style='color:inherit'>release</a></b><br/><i>Launch checklist, handoffs, legal copy</i>"]
n4["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/docs/release/handoff' style='color:inherit'>handoff</a></b>"]
n5["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/docs/release/legal' style='color:inherit'>legal</a></b>"]
n6["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/docs/release/prompts' style='color:inherit'>prompts</a></b>"]
n0 --> n1
n0 --> n2
n0 --> n3
n3 --> n4
n3 --> n5
n3 --> n6
classDef g0 fill:#fef3c7,stroke:#d97706,color:#451a03
class n6 g0
flowchart LR
n0["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/lib' style='color:inherit'>lib</a></b><br/><i>Logic without UI, mostly unit-tested</i>"]
n1["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/lib/alliengll' style='color:inherit'>alliengll</a></b><br/><i>Russian interface text</i>"]
n2["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/lib/generator' style='color:inherit'>generator</a></b><br/><i>AI question generator and critic</i>"]
n3["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/lib/items' style='color:inherit'>items</a></b><br/><i>Exercise types: checking and scoring</i>"]
n4["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/lib/items/__fixtures__' style='color:inherit'>__fixtures__</a></b>"]
n5["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/lib/items/__sketches__' style='color:inherit'>__sketches__</a></b>"]
n6["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/lib/lessonPlayer' style='color:inherit'>lessonPlayer</a></b><br/><i>Player state: answers and progress</i>"]
n7["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/lib/lessons' style='color:inherit'>lessons</a></b><br/><i>Lesson format: reading and validating</i>"]
n8["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/lib/supabase' style='color:inherit'>supabase</a></b><br/><i>Database clients</i>"]
n0 --> n1
n0 --> n2
n0 --> n3
n3 --> n4
n3 --> n5
n0 --> n6
n0 --> n7
n0 --> n8
classDef g0 fill:#fef3c7,stroke:#d97706,color:#451a03
class n1,n3,n4,n5,n6,n7 g0
classDef g1 fill:#dbeafe,stroke:#2563eb,color:#172554
class n2 g1
flowchart LR
n0["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/scripts' style='color:inherit'>scripts</a></b><br/><i>Command-line tools: import, checks, benchmarks</i>"]
n1["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/scripts/board' style='color:inherit'>board</a></b><br/><i>GitHub project board helpers</i>"]
n2["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/scripts/session' style='color:inherit'>session</a></b><br/><i>AI coding-session guard</i>"]
n3["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/scripts/session/testdata' style='color:inherit'>testdata</a></b>"]
n0 --> n1
n0 --> n2
n2 --> n3
flowchart LR
n0["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/supabase' style='color:inherit'>supabase</a></b><br/><i>Database</i>"]
n1["<b><a href='https://github.com/JumpLikeFLEA/colloquiz/tree/main/supabase/migrations' style='color:inherit'>migrations</a></b><br/><i>Schema changes, numbered, applied by hand</i>"]
n0 --> n1
To refresh the map after moving folders around, edit codemap.config.json
if needed and run:
npx github:JumpLikeFLEA/codemap --write README.md
docs/setup.md: running it locally, environment
variables, scripts, benchmarking.docs/handoff.md: why both products exist, who they
are for, and the rules that follow from that. Read this first.docs/architecture.md: how the quiz platform works
(partly out of date, see its note).docs/decisions/: every decision made while building.CLAUDE.md: working rules for AI coding sessions.