ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
중학교 1학년 과학 수업용 웹앱. 학생들이 학교 곳곳에서 발견한 생물(식물·동물·곤충 등)을 지도에 기록하고, 교사가 부적절한 게시물을 승인/삭제할 수 있습니다. Leaflet(OpenStreetMap) + Supabase(무료) + Vercel(무료)로 동작하며 별도 서버나 빌드 과정이 필요 없습니다.查看完整 README ↗
중학교 1학년 과학 수업용 웹앱. 학생들이 학교 곳곳에서 발견한 생물(식물·동물·곤충 등)을 지도에 기록하고, 교사가 부적절한 게시물을 승인/삭제할 수 있습니다. Leaflet(OpenStreetMap) + Supabase(무료) + Vercel(무료)로 동작하며 별도 서버나 빌드 과정이 필요 없습니다.
index.html 학생용 지도 페이지
admin.html 교사용 관리자 페이지
css/style.css 스타일
js/config.js ★ 설정 파일 (여기만 고치면 됨)
js/utils.js 공통 함수 (이미지 압축, HTML 이스케이프 등)
js/supabaseClient.js
js/map.js 지도 페이지 로직
js/myrecords.js "내 기록"(승인 상태/수정 여부 확인) 로직
js/admin.js 관리자 페이지 로직
js/backup.js 백업(CSV+사진 zip) 로직
sql/schema.sql Supabase에 실행할 SQL (테이블, 권한, 저장소)
sql/schema.sql 파일 내용을 전체 복사해서 붙여넣고 Run 실행.
observations 테이블, 접근 권한(RLS), plant-photos 저장소 버킷이 한 번에 만들어집니다.insert into public.teachers (user_id, grade)
values ('여기에_UID_붙여넣기', '1') -- 담당 학년: '1' / '2' / '3' / 전체 관리자는 'ALL'
on conflict (user_id) do update set grade = excluded.grade;
Project URLanon public / Publishable 키 (공개되어도 안전한 키입니다. 실제 보안은 2번에서 설정한 권한이 담당합니다.)js/config.js 파일을 열어 아래 값을 채우세요.
SUPABASE_URL, SUPABASE_ANON_KEY : 1단계 5번에서 복사한 값SCHOOL_LAT, SCHOOL_LNG : 우리 학교 좌표
GRADES : 학년 목록 (기본값 1~3학년)CLASSES : 반 이름과 핀 색상 (기본값 1~9반, 모든 학년이 공동으로 사용, 필요하면 자유롭게 수정)PHOTO_MAX_WIDTH, PHOTO_QUALITY : 사진 압축 설정 (기본 1200px / 75% 품질)브라우저 보안 정책상 index.html을 파일로 그냥 열면 일부 기능이 막힐 수 있어, 간단한 로컬 서버로 띄우는 것을 권장합니다.
npx serve .
실행 후 안내되는 주소(예: http://localhost:3000)로 접속해서 확인하세요.
이 프로젝트는 순수 정적 사이트(HTML/CSS/JS)라 빌드 설정이 필요 없습니다.
방법 A - Vercel CLI (가장 간단)
npm install -g vercel
vercel
폴더 안에서 위 명령을 실행하고 안내에 따르면 됩니다. 이후 배포를 업데이트할 때는 vercel --prod 를 다시 실행하세요.
방법 B - GitHub 연동
이 코드는 학교마다 완전히 독립적으로 복사해서 쓰도록 만들어졌습니다 (데이터베이스도 서로 안 섞임). 다른 학교에서 쓰고 싶다면:
js/config.js의 SUPABASE_URL / SUPABASE_ANON_KEY / SCHOOL_LAT / SCHOOL_LNG 등을 그 학교 값으로 전부 교체합니다.
config.js 맨 위에 경고 주석을 남겨뒀습니다.이렇게 하면 학교별로 지도 위치, 반/학년 구성, 교사 계정, 데이터가 전부 독립적으로 운영됩니다.
Failed to fetch로 실패하며, 대시보드에서 Restore project를 누르면 데이터는 그대로 복구됩니다(정지 후 약 90일 이내).
.github/workflows/keepalive.yml이 매일 한 번 config.js의 Supabase 주소로 조회 요청을 보냅니다. 요청이 실패하면 GitHub가 저장소 소유자에게 실패 알림 메일을 보내므로 서버 문제를 빨리 알 수 있습니다.anon key는 공개되는 것이 정상이며, 실제 권한 제어는 sql/schema.sql의 Row Level Security 정책이 담당합니다.
pending 상태로만 등록 가능, approved 상태만 조회 가능teachers 테이블에 등록된 본인 담당 학년의 기록만 조회/승인/삭제 가능 (다른 학년 데이터는 서버 단에서 원천 차단됨)