ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A small, calm Japanese-study app. Modules contain levels, levels contain cards, you flip through them one at a time and get a score at the end. Built with Next.js 14 (App Router) + Supabase + Tailwind.
# inside the project folder
npm install
cp .env.local.example .env.local # then fill in the Supabase values (step 2)
npm run dev
That's it. No global tools required.
supabase/schema.sql and run it. This creates the four tables and the row-level security policies.supabase/seed.sql, and run it. This adds the Vocabulary → Level 1 module with all 73 starter cards. To also load the conjugation module, paste supabase/seed_conjugation.sql and run it.NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEY.env.local:NEXT_PUBLIC_SUPABASE_URL=https://xxxxxxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOi...
/admin.By default Supabase Auth allows anyone to sign up. If you want to lock it down to just you, go to Authentication → Providers → Email and turn Enable Sign Ups off.
npm run dev
Then open http://localhost:3000.
/ → /modules/vocabulary → click a level → quiz./admin → log in with the user you created above.NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEY*.vercel.app URL.If you change Supabase keys later, update the env vars in Vercel and redeploy. No build settings to tweak — npm run build and npm start are the standard Next.js commands.
app/
page.tsx Home (module grid)
modules/[slug]/page.tsx Levels in a module
modules/[slug]/[levelId]/page.tsx Quiz
admin/
page.tsx Login
dashboard/page.tsx All modules + stats
modules/new/page.tsx Create module
modules/[id]/page.tsx Edit module + manage levels
modules/[id]/levels/[levelId]/page.tsx Edit level + manage cards
components/
QuizClient.tsx Card flow, scoring, save session
LoginForm.tsx Email/password sign-in
ModuleForm.tsx Create / edit a module
LevelManager.tsx Add / reorder / delete levels
LevelEditor.tsx Inline card edit + bulk import
SignOutButton.tsx
DeleteModuleButton.tsx
lib/
supabase/client.ts Browser Supabase client
supabase/server.ts Server Supabase client (cookies)
types.ts
middleware.ts Protects /admin/* via Supabase session
supabase/
schema.sql Tables + RLS policies
seed.sql Vocabulary / Level 1 starter cards
seed_conjugation.sql Conjugation module + 2 levels of verb/word-type cards
modules, module_levels, cards require an authenticated user (admin). Anonymous users can only insert into sessions. This is enforced at the database level by RLS — it's fine that the anon key is shipped to the browser..trim().normalize("NFC").toLowerCase(), so trailing whitespace and unicode normalization differences won't trip you up.english,japanese per line for quiz modules and verb,form,answer for conjugation modules. Wrap a field in "…" if it contains a comma.sessions with total_cards and correct_first_try; the dashboard averages these per module.