ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
수업 링크·자료·영상·학생 활동 보드를 한 프로그램에 담아 링크 하나로 나눕니다.
Translation pending
EducationHTML · JavaScriptGitHub @themonstereduOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
같은 학교 선생님들을 위한 수업프로그램 모음 사이트. 프레임워크 없는 Node HTTP 서버 + 바닐라 JS SPA + Supabase Postgres/Storage + Vercel, 의존성은 pg 하나. 프로그램 하나에 4종 콘텐츠를 담습니다. • 🔗 수업 링크 — 젭·패들렛·AI도구 등 외부 링크 (프로그램당 여러 개) • 🖥️ 웹앱 — 기존에 배포된 웹앱 링크 • ▶ 영상 — 유튜브 임베드 (상세 화면에서 바로 재생) • 📎 첨부자료 — PPT/PDF/한글/zip/이미지 (100MB 이하, 관리자의 Supabase 비공개 버킷에만 저장) • 📌 학생 활동 보드 — 패들렛처럼 학생이 계정 없이 6자리 참여 코드로 들어와 글+활동지(한글·PDF·오피스·이미지, 20MB)를 올리는 보드. 교사는 결과물을 열람·다운로드(수합)하고, 마감하면 학생 접근이 즉시 차단되며 결과물은 계속 보관됨 만든 사람(관리자)이 언제든 즉시 회수할 수 있습니다. 다운로드 링크는 10분 유효 서명 URL이라 회수 후 기존 링크도 곧 만료됩니다.Read the full 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 → 서버에 완료 확인.