ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
겨루기/품새/격파 규칙 퀴즈 + 학번·비밀번호 학생 로그인 + 학생별 응시 기록(내 결과) + 관리자 대시보드(전체 학생 시계열 모니터링)를 갖춘 실제 웹앱입니다. Claude Artifact가 아니라 진짜 서버(데이터베이스 포함)를 쓰기 때문에, 학생이 어떤 기기로 접속하든 로그인만 하면 기록이 서버에 쌓이고 교수자가 한 화면에서 전체 현황을 볼 수 있습니다. 학생은 처음 접속 시 학번+이름+비밀번호로 계정을 만들고(비밀번호는 암호화 저장), 이후에는 학번+비밀번호로 로그인합니다. 로그인해야만 퀴즈를 풀 수 있고, 퀴즈 결과는 로그인한 본인 계정으로만 저장되므로 다른 사람 이름으로 응시하거나 남의 기록을 조회할 수 없습니다. 이 컴퓨터에는 Node.js가 설치되어 있지 않아서, 이 대화에서는 로컬로 실행/빌드 테스트를 하지 못했습니다. 아래 순서대로 하면 내 컴퓨터에 아무것도 설치하지 않고 클라우드에서 바로 빌드·배포됩니다 (GitHub과 Vercel이 알아서 설치·빌드해줍니다). 만약 배포 중 오류가 나면, 오류 메시지를 그대로 저에게 붙여넣어 주시면 고쳐드리겠습니다.查看完整 README ↗
겨루기/품새/격파 규칙 퀴즈 + 학번·비밀번호 학생 로그인 + 학생별 응시 기록(내 결과) + 관리자 대시보드(전체 학생 시계열 모니터링)를 갖춘 실제 웹앱입니다. Claude Artifact가 아니라 진짜 서버(데이터베이스 포함)를 쓰기 때문에, 학생이 어떤 기기로 접속하든 로그인만 하면 기록이 서버에 쌓이고 교수자가 한 화면에서 전체 현황을 볼 수 있습니다.
학생은 처음 접속 시 학번+이름+비밀번호로 계정을 만들고(비밀번호는 암호화 저장), 이후에는 학번+비밀번호로 로그인합니다. 로그인해야만 퀴즈를 풀 수 있고, 퀴즈 결과는 로그인한 본인 계정으로만 저장되므로 다른 사람 이름으로 응시하거나 남의 기록을 조회할 수 없습니다.
이 컴퓨터에는 Node.js가 설치되어 있지 않아서, 이 대화에서는 로컬로 실행/빌드 테스트를 하지 못했습니다. 아래 순서대로 하면 내 컴퓨터에 아무것도 설치하지 않고 클라우드에서 바로 빌드·배포됩니다 (GitHub과 Vercel이 알아서 설치·빌드해줍니다). 만약 배포 중 오류가 나면, 오류 메시지를 그대로 저에게 붙여넣어 주시면 고쳐드리겠습니다.
taekwondo-quiz 등), 데이터베이스 비밀번호는
따로 저장해두세요(나중에 안 씁니다).supabase/schema.sql 파일을 열어서 내용 전체를 복사하고,
SQL Editor에 붙여넣은 뒤 Run 을 누릅니다. (응시 기록 테이블과 학생 계정 테이블, 총 2개가
만들어집니다.)https://xxxxx.supabase.co)anon 키가 아니라 service_role 키입니다 — 절대 외부에 공개하지 마세요)taekwondo-quiz-app 등 원하는 대로,
Public/Private 아무거나 상관없습니다. "Add a README" 체크는 끄세요.quiz-webapp 폴더 안의 모든 파일/폴더를 웹 화면으로 통째로 드래그해서 올립니다
(폴더 구조가 그대로 유지되어 업로드됩니다). node_modules는 애초에 없으니 신경 쓰지 않아도 됩니다.https://vercel.com 에서 Continue with GitHub 로 가입/로그인합니다.
Add New → Project 를 누르고, 방금 만든 GitHub 저장소를 선택해 Import 합니다.
Framework는 자동으로 "Next.js"로 잡힙니다. 그대로 두고, Environment Variables 항목을 펼쳐서
아래 네 가지를 입력합니다 (.env.example 파일 참고):
| Key | Value |
|---|---|
SUPABASE_URL | 1단계에서 복사한 Project URL |
SUPABASE_SERVICE_ROLE_KEY | 1단계에서 복사한 service_role 키 |
ADMIN_PASSWORD | 교수님이 정하는 관리자 비밀번호 (원하는 문자열) |
COOKIE_SECRET | 아무 긴 임의의 문자열 (예: 키보드를 막 눌러 30자 이상) |
Deploy 를 누릅니다. 1~2분 정도면 빌드가 끝나고 https://프로젝트이름.vercel.app 링크가 생깁니다.
이 링크가 학생들에게 공유할 최종 주소입니다.
ADMIN_PASSWORD 입력 → 대시보드에서 방금 응시 기록이
보이는지 (겨루기/품새/격파 시계열 그래프, 학생별 요약, 전체 로그)lib/banks/gyeorugi.js, pumsae.js, gyeokpa.js 파일 안의 배열을 수정한 뒤, 같은 파일을
GitHub 저장소에 다시 업로드(덮어쓰기)하면 Vercel이 자동으로 재배포합니다. 코드를 몰라도
{q:"...", c:["...","...","...","..."], a:0, note:"..."} 형식만 그대로 지키면 됩니다
(a는 정답 보기의 번호, 0부터 시작).
Node.js 20 버전 이상을 설치한 뒤, 이 폴더에서:
npm install
cp .env.example .env.local # 값을 채워넣기
npm run dev
http://localhost:3000 으로 접속하면 됩니다. 다만 이 과정은 필수가 아니며, 위 GitHub+Vercel
방법만으로도 배포·운영에 아무 문제 없습니다.
app/ — 페이지들 (Next.js App Router)app/login — 학생 로그인 / 최초 비밀번호 설정 화면app/api/auth/* — 학생 회원가입/로그인/로그아웃/로그인 상태 확인 APIapp/api/attempts — 퀴즈 결과 저장 API (로그인한 본인 계정으로만 저장됨)app/api/admin/* — 관리자 로그인/로그아웃/전체 조회 API (비밀번호 필요)lib/banks/*.js — 겨루기/품새/격파 문제 은행 (기존 아티팩트에서 그대로 이식)lib/studentAuth.js — 학생 로그인 쿠키를 서명/검증하는 로직 (HMAC, 30일 유지)lib/adminAuth.js — 관리자 로그인 쿠키를 서명/검증하는 로직 (HMAC, 12시간 유지)components/QuizRunner.js — 퀴즈 진행 UI (클라이언트)components/MyResultsClient.js — 내 결과 화면 UI (클라이언트)components/AdminDashboardClient.js — 관리자 대시보드 UI (시계열 그래프는 recharts 사용)supabase/schema.sql — Supabase에 한 번 실행할 테이블 생성 SQL (attempts, students)students 테이블에서 해당 학번 행을 삭제하면 그 학번으로 다시 등록(비밀번호 재설정)할
수 있습니다. (기존 응시 기록은 attempts 테이블에 그대로 남아있어요.)student_id가 실제 학번과 다르게 입력되어 있을 수 있습니다. 필요하면 Supabase SQL Editor에서
attempts 테이블을 직접 확인/수정해주세요.