ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.