ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
1. 成績管理:作業缺交登記、個人與全班報表、Excel 匯出。 2. 英文口說輔助教學:學生朗讀評分、AI 英語對話、口說成績與文章管理。 With no DATABASE_URL, the app uses a local PGlite file DB under ./.pglite (auto-created, schema auto-applied). Set DATABASE_URL to a Supabase pooler URL to use Postgres. Copy .env.example → .env.local to configure.README 전문 보기 ↗
同一位老師使用的整合式教學系統,包含兩大服務:
| Layer | Tech |
|---|---|
| Framework | Next.js 16 (App Router / RSC / Server Actions) + React 19 |
| Language | TypeScript 5 (strict, @/* path alias) |
| Styling | Tailwind CSS v4 + Bootstrap 5 (CDN) + Bootstrap Icons |
| Data | Dual backend — postgres (Supabase) in prod, @electric-sql/pglite (WASM Postgres) for local dev; see lib/db.ts |
| Access | Single-teacher app with no built-in login; public student speaking page |
| Tests | node --test + tsx |
| Deploy | Vercel |
npm install
npm run dev # http://localhost:3000
With no DATABASE_URL, the app uses a local PGlite file DB under ./.pglite
(auto-created, schema auto-applied). Set DATABASE_URL to a Supabase pooler URL
to use Postgres. Copy .env.example → .env.local to configure.
This is a single-teacher app with no account or login screen. The student
speaking page is public at /speaking. Because there is no login, anyone who
knows the deployment URL can also open teacher pages and teacher API routes.
Use a private deployment URL or enable Vercel Deployment Protection if access
must be restricted later.
teacher-assistant Supabase project, run
supabase/migrations/20260906000000_speaking_service.sql in SQL Editor.DATABASE_URL.GEMINI_API_KEY and optionally GEMINI_MODEL to Vercel for Production,
Preview, and Development.Teacher-Assistant GitHub repository into Vercel and deploy.The migration enables RLS and removes Data API access for anon and
authenticated; all database access stays on the Next.js server through
DATABASE_URL.
npm run dev / build / startnpm run lint — ESLintnpm test — unit tests for pure modules in lib/**/*.test.tsapp/ routes (page.tsx, layout.tsx, actions.ts)
components/ shared UI (Nav)
lib/ db.ts (dual backend), queries.ts, schema.sql, pure helpers + tests
public/speaking student speaking UI (static; the teacher side lives at app/admin/speaking)
supabase/ production migration and security hardening
Extend the schema in lib/schema.sql, add queries in lib/queries.ts, and bump
SCHEMA_VERSION in lib/db.ts when the schema changes — runInit() re-runs the
idempotent migrations once per bump.
classes) — created in 班級維護 with a name and a 人數.class_seats) — one row per seat. 人數 N expands into seats 1..N on
creation; after that + appends the next number and × removes one. No
student names are kept anywhere.assignments) — every item is created by the teacher via 新增項目.
Nothing is seeded, so all items can be renamed and deleted.assignment_records) — one row per 作業項目 × 座號.speaking_articles) — teacher-maintained reading material.speaking_practice_records) — references the shared class
and seat while preserving a class-name snapshot for historical reports.speaking_practice_record_backups) — snapshot created
transactionally before any speaking record is deleted. The teacher can remove
a single record, one student's records, or the whole table; each deletion
writes its own snapshot first, so nothing is lost without a copy.