ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
Hangul class web app
翻譯準備中
正在載入完整 README。 以下為已儲存的摘錄。
Hangul class companion for Pop In Seoul, a Korean market in Springfield, IL.
Students come to an in-person Hangul class at the store, then use this phone-friendly web app to practice at home between classes. It is a warm, simple companion — not a full learning-management system.
Talk in Seoul · Hangul Class @ Pop In Seoul檢視完整 README ↗Hangul class companion for Pop In Seoul, a Korean market in Springfield, IL.
Students come to an in-person Hangul class at the store, then use this phone-friendly web app to practice at home between classes. It is a warm, simple companion — not a full learning-management system.
Talk in Seoul · Hangul Class @ Pop In Seoul
/batchim) — 20 easy 받침 words. Coral marks the syllable with a bottom letter. Open to every student. Drop batchim-*.mp3 into public/audio/./numbers) — native 1–10, Sino-Korean 1–10, and the tens pattern. Open to every student. Drop number-*.mp3 into public/audio/./conversation) — 10 everyday phrases. Open to every student. Drop phrase-*.mp3 into public/audio/./sound) — ㄹ (reu) / (ri-eul) tap ladder and a ㅂ (beu) / ㅍ (peu) / ㅃ (ppeu) listen-and-pick. Open with or without a class code. New clips are sound-*.mp3. Words that already have a recording reuse that file./real-talk) — counter conversations for Weeks 3–7. Jung is the cashier. Weeks 3 and 4 are free. Weeks 5–7 need full course access.가 ~ 하 through ㅣ 기 ~ 히). A taste-class code does not open Trace. Wobbly strokes are fine. Press Done after any ink and the letter turns green. The doorbell (public/audio/trace-success.mp3) and Jung’s clip start together; his voice plays once and is fetched when the letter appears, not after the chime. The next letter appears shortly after his clip ends. Arriving on a letter does not play it; Hear it does. Done on an empty canvas shows a red X and “Try again.” The finger stroke is half the gray letter’s stem width. Last position is remembered on this phone./progress) — Beginner checklist in the hamburger menu. Each step shows what you learn. Class progress is a filled dot, “Covered in class,” for every step through the week Jung set. My review is the student’s own check. Any class code can open it, including a taste-class code./notices) — reminders Jung posts (title, message, date, optional pin). Newest first, pinned on top. A notice can be for every student or for one course. Needs a class code./homework) — files for the student’s course, grouped Week 1, Week 2, and so on. PDF or photo. Needs full course access. A taste-class code still unlocks pronunciation and notices./admin) — hidden from the student hamburger. Jung unlocks with a password, then:
Menu is a hamburger in the top-left. English is the primary UI language, with Korean labels where they feel natural. Students do not create an account. Without a code they can still use the free app.
Old /lesson and /practice URLs go to Pronunciation.
npm install
cp .env.example .env.local
# set ADMIN_PASSWORD in .env.local
npm run dev
Then open the URL Vite prints (usually http://localhost:5173) on your computer or phone.
Local issued codes are saved to .data/access-codes.json (gitignored) so you can test without Vercel Blob.
npm run build # production build
npm run preview # serve the production build
npm run lint # oxlint
npm test # access-code helpers
Student enrollment is remembered in this browser (localStorage). Issued codes are not stored only on the phone — they live in Vercel Blob in production, or .data/ locally. Student recordings stay in memory for this visit and are never uploaded.
The password is never shipped to the browser. The app checks it on the server.
ADMIN_PASSWORD with a long password only you know./api/admin/login picks it up: Vercel → Deployments → ⋯ on Production → Redeploy (or merge this repo’s next PR). Do not skip the redeploy; env vars are applied at function boot.以上為 README 的開頭部分。其餘內容請閱讀原文。 檢視完整 README ↗