ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기study and quizzes app for exam prep
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A spaced-recall drill tool for certification exam preparation, built as a Turborepo monorepo on Bun with a single Next.js application.
Pick a scope — a whole exam, one objective, the questions you've missed, or ones you've never seen — work through the queue, get judged immediately, and watch the mastery of each individual question move as a result. A large share of the bank is fill-in rather than multiple choice: you type the answer from memory, and when the grader can't decide whether what you typed counts, it says so and asks you to self-grade rather than guessing on your behalf.
Mastery is tracked per exam objective, not per deck or per exam, which is what makes "drill my weak spots" a real button. Two consecutive correct answers promote a question; one wrong answer sends it back. Nothing resets between sessions.
Single-user by design. There is no sign-in, no accounts and no authorization layer anywhere in this app. That's a deliberate non-goal, not missing scope — see
apps/nextjs/PRODUCT.md.
Result types, so failures are values rather than thrown exceptionsterraform fmt, and gitleaks)No test runner. There is no unit-test framework and no test file in this repo. Verification comes from type-checking, linting, the CI scanners above, and browser-level checks via Playwright.
This repo also uses graphify to maintain a persistent codebase knowledge graph for AI-assisted development.
One-time setup (requires Python 3.10+ and uv):
bun run graphify:install # install graphify via uv
bun run graphify:build # generate graphify-out/ (uses graphify update — no API key needed)
After this, the graph rebuilds automatically after every commit via a Lefthook post-commit
hook. graphify-out/ is gitignored, so run bun run graphify:build once after cloning.
If
bun run graphify:buildprompts for an API key or errors on Markdown files, adddocs/to.graphifyignoreand re-run.
bun install
Copy apps/nextjs/.env.example to apps/nextjs/.env and fill it in:
| Variable | Required | Notes |
|---|---|---|
DATABASE_URL | yes | Neon connection string |
AWS_ROLE_ARN | deployed | IAM role the S3 client assumes via Vercel OIDC; unset locally |
S3_BUCKET_NAME | yes | Bucket holding question images |
AWS_REGION | no | Defaults to ap-northeast-1 |
Every variable is server-only — there is deliberately no NEXT_PUBLIC_* variable
anywhere, so one build can run in any environment rather than baking one environment's values
into the bundle.
turbo db:generate --filter=nextjs # prisma generate (also runs as the app's prebuild)
cd apps/nextjs && bun run db:migrate # prisma migrate dev
cd apps/nextjs && bun run db:seed # load the question banks
db:seed reads JSON banks from the repo-root data/ directory, which is git-ignored —
the question content is not committed. With no data/ present the seed has nothing to load,
so a fresh clone comes up with an empty catalog until you supply banks. Each file is validated
against a schema before a single row is written, so a malformed bank fails loudly instead of
landing half-loaded.
turbo dev --filter=nextjs # http://localhost:3000
bun run build # build all apps
bun run check-types # tsc --noEmit
bun run check-format # oxlint + oxfmt --check
Package-version syncing, update checks and the rest are defined as scripts — see the root and
per-package package.json for the authoritative list.
An isometric map of the whole repo: each subsystem is a city block sized by its measured line count, wired together by the calls and data that actually flow between them. Click any block for what it does and how it's built, go inside the big ones for their breakdown, or play one of the four end-to-end traces.
It is a single self-contained file, so open
docs/atlas/atlas.html straight in a browser, or serve it with:
bun run atlas # http://localhost:8731/atlas.html
Every number on the page is measured from the working tree, not estimated. See docs/atlas/README.md for how it was measured and how to refresh it as the code changes.
Workspaces are apps/*, and there is exactly one: apps/nextjs.
apps/nextjsThe Next.js app is the only server. Server Components and route handlers do their own data access directly — Postgres via Prisma, S3 via the AWS SDK — so there is no separate backend service to forward to, and browser code never holds a credential for either.
Eight feature modules live under src/features/<name>/, split by execution context
(server/, client/, schemas/): drill (the queue, the grader, the mastery transition —
by far the largest), progress, catalog, bookmarks, media, error,
metadata and theme. Shared UI is atomic-design layered under src/components/.
This is a high-level summary. The internal architecture — module layout, the neverthrow error pipeline, server-only data access, rendering rules — is documented for contributors in
.claude/rules/architecture.mdand.claude/rules/conventions.md. For a visual overview, see the Codebase Atlas above.
The app deploys to Vercel (Hobby plan), which owns its own CDN, build, and serverless
compute. GitHub Actions (deploy.yml) deploys main to production: it runs
prisma migrate deploy, then vercel deploy --prod, behind the prod reviewer. There is no
canary and no automatic rollback — recovering from a bad release means Vercel's Instant
Rollback to a previous deployment. Terraform manages the AWS side (the S3 image bucket, DNS, the
role Vercel functions assume) and the Vercel project itself.
To bring up the environment from scratch — prerequisites, GitHub variables/secrets, state-bucket bootstrap, and the first apply — follow docs/runbook.md. The reference for how the environment and pipeline work is docs/deployment-environments.md, with the underlying AWS architecture in docs/architecture.md and the current repo settings in docs/github-repo-settings.md.
This repo ships a Claude Code harness for building features
spec-first with an AI agent (brainstorm → /spec → /plan → /implement → /qa). New here?
Start with docs/ai-driven-development.md.