ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Private LMS
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Custom LMS for a private tutoring business. Phase 1: auth, Track → Module → Lesson content model, polymorphic content blocks (markdown / LaTeX equation / code snippet / file attachment), tutor authoring UI, student reading UI.
Next.js (App Router) + TypeScript · Supabase (Postgres, Auth, Storage) · Prisma 7 · Tailwind v4 · VercelREADME 전문 보기 ↗Custom LMS for a private tutoring business. Phase 1: auth, Track → Module → Lesson content model, polymorphic content blocks (markdown / LaTeX equation / code snippet / file attachment), tutor authoring UI, student reading UI.
Full product spec: tutoring_lms_spec.md
Next.js (App Router) + TypeScript · Supabase (Postgres, Auth, Storage) · Prisma 7 · Tailwind v4 · Vercel
Copy .env.example to .env and fill in the Supabase values. Connection strings come from Dashboard → Connect: DATABASE_URL is the transaction pooler string (port 6543), DIRECT_URL the session pooler string (port 5432). API keys are the new-format ones (Settings → API Keys): sb_publishable_... and sb_secret_....
Install and migrate:
npm install
npx prisma migrate deploy # applies the checked-in init migration
npx prisma generate
Seed (creates the tutor account, two fake students, two tracks, and the private attachments storage bucket):
npx prisma db seed
npm run dev and sign in with SEED_TUTOR_EMAIL / SEED_TUTOR_PASSWORD (or a seeded student: [email protected] / [email protected] with SEED_STUDENT_PASSWORD).
For future schema changes use npx prisma migrate dev --name <change> (runs against DIRECT_URL).
src/proxy.ts refreshes the session and gates all routes; src/lib/auth.ts has requireTutor() / requireStudent() guards used by layouts, actions, and the file route.PUBLISHED lessons). The Supabase JS client is only used for auth and storage.public.User.id equals auth.users.id. Accounts are created by the tutor (Students page) via the admin API — no public signup, no DB trigger.ContentBlock is a BlockType enum + JSON data column. Per-type shapes live in src/lib/blocks/schema.ts (Zod, satisfies Record<BlockType, ...> keeps it exhaustive). Rendering dispatch is src/components/blocks/renderers.tsx, editing dispatch src/components/blocks/editors.tsx. Adding a block type = enum value + migration, one Zod schema, one renderer case, one editor case.attachments bucket; downloads go through /api/files/[blockId], which checks access then redirects to a 10-minute signed URL.