ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
같은 학교 선생님들을 위한 수업프로그램 모음 사이트. 프레임워크 없는 Node HTTP 서버 + 바닐라 JS SPA + Supabase Postgres/Storage + Vercel, 의존성은 pg 하나. 프로그램 하나에 4종 콘텐츠를 담습니다. • 🔗 수업 링크 — 젭·패들렛·AI도구 등 외부 링크 (프로그램당 여러 개) • 🖥️ 웹앱 — 기존에 배포된 웹앱 링크 • ▶ 영상 — 유튜브 임베드 (상세 화면에서 바로 재생) • 📎 첨부자료 — PPT/PDF/한글/zip/이미지 (100MB 이하, 관리자의 Supabase 비공개 버킷에만 저장) • 📌 학생 활동 보드 — 패들렛처럼 학생이 계정 없이 6자리 참여 코드로 들어와 글+활동지(한글·PDF·오피스·이미지, 20MB)를 올리는 보드. 교사는 결과물을 열람·다운로드(수합)하고, 마감하면 학생 접근이 즉시 차단되며 결과물은 계속 보관됨 만든 사람(관리자)이 언제든 즉시 회수할 수 있습니다. 다운로드 링크는 10분 유효 서명 URL이라 회수 후 기존 링크도 곧 만료됩니다.檢視完整 README ↗
같은 학교 선생님들을 위한 수업프로그램 모음 사이트.
프레임워크 없는 Node HTTP 서버 + 바닐라 JS SPA + Supabase Postgres/Storage + Vercel, 의존성은 pg 하나.
프로그램 하나에 4종 콘텐츠를 담습니다.
| 방향 | 정책 |
|---|---|
| 관리자 → 교사 (수업자료) | 기본 보기 전용 — 다운로드 버튼 없음, 사이트 안 뷰어(PDF·이미지)로만 열람. 뷰어에 교사 이름 워터마크 + 우클릭 차단 + 60초 서명 URL. 파일별로 다운로드 허용 토글 가능. 관리자는 항상 다운로드 가능 |
| 학생 → 교사 (활동 결과물) | 교사 다운로드 허용 (수합 목적) — 원본 파일명 유지 |
만든 사람(관리자)이 언제든 즉시 회수할 수 있습니다.
| 스위치 | 위치 | 효과 |
|---|---|---|
| ① 프로그램별 비공개 | 프로그램 관리 → 공개 토글 | 교사 목록·상세·열람이 즉시 차단 |
| ② 계정 정지 (강퇴) | 교사 계정 → 정지 | 세션 즉시 삭제 — 다음 클릭부터 로그아웃, 재로그인 불가 |
| ③ 사이트 킬스위치 | 사이트 설정 → 잠금 토글 | 관리자 제외 전원 차단 (학생 보드 참여 포함) + 안내 문구 표시 |
| ④ 첨부 원본 소멸 | 파일/프로그램/게시물 삭제 | Supabase 버킷 객체까지 삭제 — 원본이 사라짐 |
| ⑤ 보드 마감 | 보드 화면 → 마감 | 학생 제출·열람 즉시 차단 (결과물은 교사·관리자가 계속 보관·열람) |
다운로드 링크는 10분 유효 서명 URL이라 회수 후 기존 링크도 곧 만료됩니다.
admin (관리자): 프로그램/계정/사이트 관리teacher (교사): 공개된 프로그램 열람·다운로드만 가능| 변수 | 필수 | 설명 |
|---|---|---|
DATABASE_URL | ✅ | Supabase → Connect → Transaction pooler URI (포트 6543) |
ADMIN_PASSWORD | 권장 | 최초 admin 비밀번호 (미설정 시 ChangeMe123!) |
SUPABASE_URL | 첨부 사용 시 | Settings → API의 프로젝트 URL |
SUPABASE_SERVICE_KEY | 첨부 사용 시 | service_role 키 |
SUPABASE_BUCKET | 선택 | 기본 files (비공개 버킷, 첫 업로드 시 자동 생성) |
# 로컬
npm install
DATABASE_URL='postgres://...' node --no-warnings server.js
Vercel 배포: 레포 연결 → 위 환경변수 입력 → 배포. 빌드 스텝 없음 (vercel.json이 라우팅 처리).
첫 로그인: superadmin / ADMIN_PASSWORD 값 (미설정 시 ChangeMe123!) → 즉시 비밀번호 변경 요구 → 교사 계정 생성.
server.js # 로컬/일반 서버 진입점 (정적 파일 + /api)
api/index.js # Vercel 서버리스 진입점
lib/db.js # 스키마·시드·설정 (Postgres)
lib/api.js # API ~18 라우트 + 킬스위치 게이트
lib/auth.js # 세션 (매 요청 active 확인 → 즉시 강퇴)
lib/password.js # scrypt 해시
lib/storage.js # Supabase Storage 서명 업로드/다운로드
public/ # SPA (index.html + app.js + style.css)
파일 업로드는 Vercel 4.5MB 한도를 우회하는 서명 업로드 3단계를 사용합니다: 서버가 서명 URL 발급 → 브라우저가 Supabase에 직접 PUT → 서버에 완료 확인.