ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기An AI study buddy that tutors K-12 students through their own assignments and tests. No framework, no build step.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
An AI study buddy that tutors a student through their own assignments and tests —
the way a real tutor would: it explains, asks questions, gives hints, checks answers,
and adapts when you're stuck.
Built for K–12. No framework, no build step, no npm — plain HTML, CSS, and ES modules.
Live: — the frontend, hosted on
GitHub Pages. Runs in demo mode only, since Pages serves static files and there's no
server/ behind it; run server/ locally (or host it somewhere) for live mode and
accounts — see below.README 전문 보기 ↗An AI study buddy that tutors a student through their own assignments and tests — the way a real tutor would: it explains, asks questions, gives hints, checks answers, and adapts when you're stuck.
Built for K–12. No framework, no build step, no npm — plain HTML, CSS, and ES modules.
Live: https://jobbleandersson.github.io/study-buddy/ — the frontend, hosted on
GitHub Pages. Runs in demo mode only, since Pages serves static files and there's no
server/ behind it; run server/ locally (or host it somewhere) for live mode and
accounts — see below.
server/ now serves the whole app — frontend and API — from one process on one port,
so this is the only step needed for the full experience (demo mode works with no setup;
add a Claude key for live mode):
cd server
npm install
cp .env.example .env # optionally fill in ANTHROPIC_API_KEY for live mode
npm start
Then open http://localhost:8787. See server/README.md for details.
Hosting it for real (both of you editing, live mode, private while testing):
see HOSTING-FLYIO.md.
Frontend only, no Node: double-click serve.ps1 → "Run with PowerShell" (or
powershell -ExecutionPolicy Bypass -File serve.ps1 -Port 8000), or use any other
static file server. This runs the UI in demo mode only — with server/ not serving
it, there's no API for it to reach. Opening index.html directly with file:// will
not work either way — ES modules need to be served over http.
Assignments / Tests tabs, subject filters, search and sort, and a card grid
with a mastery ring per set. Each card has a ⋮ menu: rename, edit questions,
duplicate, delete.Light and dark themes (or follow your device), English and Swedish (interface
and the AI tutor), full keyboard shortcuts in a session (the ⌨ button in the
session header, or press ?), and it installs to a home screen and runs offline
in demo mode.
Everything (assignments, attempts, progress) is stored in your browser's
localStorage. Settings → Export JSON makes a backup.
Without the backend proxy (see server/) running and reachable, Studify runs in
demo mode: the two sample sets (Photosynthesis Basics, Ancient Rome Quiz) are fully
playable and the tutor follows a scripted hint ladder. Your library starts empty — load
the demo sets from the home screen or from Settings → Demo content.
Run server/ with a Claude key configured (see server/README.md) to turn on live
mode: real question generation from your material, a real streaming tutor, and AI
grading of written answers. Settings shows whether the tutor server is connected. In
Swedish mode the tutor, generated questions and grading all come back in Swedish.
Model, per job. Fixed, not a user choice — different jobs use different models, so you're not paying top rates to mark a one-line answer:
| Job | Model | Why |
|---|---|---|
| Writes a set | Sonnet 5 | Saved and reused by every student who studies it afterward |
| Tutors you | Haiku 4.5 | One-off, forgotten the moment the conversation moves on |
| Marks answers | Haiku 4.5 | One-off, many times a session |
| Solves a photo | Haiku 4.5 | One-off, shown once |
See js/claude.js (MODELS).
The Claude API key lives only on the machine running server/ — the browser never sees
it. Every API route, /api/messages (the Claude proxy) included, requires a signed-in
session by default, and the proxy meters each user against a monthly token budget and a
request rate limit, and the whole server against a daily dollar cap; signup, login and
code guessing are throttled per IP. What's still missing before charging for it: an
entitlement check (any account can spend up to the flat budget, paid or not), email
verification, and password reset — see server/README.md and the "Turning on live mode" plan.
serve.ps1 frontend-only dev server (Windows PowerShell, no dependencies) — demo mode only
index.html shell — fonts, vendored libs, manifest, theme bootstrap
manifest.json PWA manifest (installable to a home screen)
sw.js service worker — the app's files from a per-build cache (the server stamps the build: server/src/sw-build.js), the rest network-first
css/tokens.css design tokens (colour, type, spacing, motion) + dark theme
css/app.css layout + components
js/main.js hash router, app shell, service-worker registration
js/store.js localStorage state, with a migrate() seam for future accounts
js/claude.js Claude API client + per-task model presets
js/prompts.js system prompts, question shape, tutor session digest
js/material.js paste / PDF / image / topic -> generation inputs
js/views/ one file per screen (menu, create, edit, session, results,
progress, settings)
js/components/ question renderers, shared question editor, tutor chat, mascot
js/lib/ srs, mastery, activity/streak, theme, i18n + strings, sound,
a11y, markdown, dom, library (pure findQuestion/dueQuestions)
js/config.js backend server URLs
js/data/national-tests.js curated links to public Swedish national exams
js/views/login.js email/password sign in, optional
js/views/parent-dashboard.js linking, assigning sets, read-only student progress
data/samples/ scripted tutor, English and Swedish (demo mode)
vendor/ pdf.js, KaTeX, canvas-confetti (committed, no npm)
server/ serves the frontend + API: key proxy, accounts/sync, parent-teacher
linking (Node/Express/SQLite) — see server/README.md
Three layers, all plain node:test — no test framework dependency, no mocks for the
database or HTTP:
node tools/validate-library.mjs && node tools/validate-hp.mjs # library content shape (no install needed)
npm run test:unit # js/lib pure-logic modules (srs, mastery, hp, answer-match, expr, …)
cd server && npm install && cd ..
npm run test:server # spawns the real server against a throwaway SQLite file per suite
npm test # all of the above
test:server starts actual server/src/index.js processes (real Express, real
better-sqlite3, a fresh temp DB per suite) rather than mocking the app — signup,
login, email verification, password reset (including its account-takeover
defenses), account deletion, and the request-throttling middleware are all
exercised over real HTTP. A dummy RESEND_API_KEY is used to turn email features
on without a real provider: the outbound send fails (there's no real key), but the
token it issues first is still readable straight from the SQLite file, which is
how those tests grab a verify/reset link without an inbox. .github/workflows/ci.yml
runs all three layers on every push and pull request.
Optional. Studify works fully signed out — everything stays in this browser's
localStorage, same as always. Sign in (Settings → Account) to also sync your
library and progress to an account, so it's there on another device too. Auth is
email/password; there's no email-sending step, so nothing to confirm — an account
is ready to use immediately.
Sync pushes your whole local library as one unit a moment after each change, and pulls it once when you sign in elsewhere. If the same account is edited on two devices before they've synced, the most recent save wins and the other device is told its unsynced local changes were replaced — there's no field-by-field merge. Fine for one person moving between their own devices; not built for simultaneous editing.
Also optional, and separate from accounts & sync — you need an account, but a parent or teacher watching a student doesn't need to be the same account. From the 🧑🤝🧑 icon in the header (visible once signed in):
A parent/teacher can't edit a student's data, and a student's raw material never leaves their account except the sets a linked parent/teacher explicitly assigned.