ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
학교에서 본 생물을 지도에 기록하고 교사가 승인하는 관찰 앱
Translation pending
AI summary · website and README
EducationJavaScript · HTMLGitHub @father38317-cryptoOnlineOwner 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.
중학교 1학년 과학 수업용 웹앱. 학생들이 학교 곳곳에서 발견한 생물(식물·동물·곤충 등)을 지도에 기록하고, 교사가 부적절한 게시물을 승인/삭제할 수 있습니다. Leaflet(OpenStreetMap) + Supabase(무료) + Vercel(무료)로 동작하며 별도 서버나 빌드 과정이 필요 없습니다.Read the full 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 테이블에 등록된 본인 담당 학년의 기록만 조회/승인/삭제 가능 (다른 학년 데이터는 서버 단에서 원천 차단됨)