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 테이블에 등록된 본인 담당 학년의 기록만 조회/승인/삭제 가능 (다른 학년 데이터는 서버 단에서 원천 차단됨)