ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
SIGAP — Sistem Informasi Gerbang, Absensi, dan Pelanggaran Aplikasi web internal SMAN 2 Tarakan untuk mencatat keterlambatan siswa, surat izin/sakit, izin keluar/pulang di tengah jam pelajaran (BETA), pelanggaran tata tertib, dan pelanggaran saat upacara — menggantikan buku piket kertas dengan satu sistem yang bisa dicari dan direkap kapan saja.README 전문 보기 ↗
Status backend (25 Okt 2026): backend aktif SIGAP sekarang Supabase (fungsi
sigap-api;API_BACKEND = "supabase"diconfig.js, sejak PR #104). Bagian di bawah yang membahas Google Apps Script/Google Sheet,clasp,API.md, danSCHEMA.mdmenjelaskan backend lama yang kini jadi arsip/jalan mundur. Ringkasan terkini ada di STATUS.md.
Aplikasi web internal SMAN 2 Tarakan untuk mencatat keterlambatan siswa, surat izin/sakit, izin keluar/pulang di tengah jam pelajaran, pelanggaran tata tertib, dan pelanggaran saat upacara — menggantikan buku piket kertas dengan satu sistem yang bisa dicari dan direkap kapan saja.
Untuk panduan pemakaian versi non-teknis (ditujukan ke guru/kepala
sekolah), lihat docs/PANDUAN-FITUR-DAN-ALUR-KERJA.md.
Untuk struktur data Google Sheet secara lengkap (nama sheet + urutan
kolom persis), lihat SCHEMA.md.
Untuk referensi lengkap seluruh action doGet/doPost (parameter, otorisasi,
bentuk respons), lihat API.md.
Untuk catatan teknis mendalam (alasan di balik tiap keputusan desain,
kebijakan deploy, dsb.), lihat CLAUDE.md.
SIGAP punya dua bagian yang di-deploy secara terpisah dan tidak saling otomatis — ini poin paling penting untuk dipahami sebelum menyentuh kode:
flowchart LR
subgraph FE["Frontend — statis, TANPA build step"]
A["index.html + *.js<br/>(React 18 + Babel Standalone lewat CDN)"]
SW["sw.js (service worker)<br/>+ manifest.json (PWA)"]
R["api/push-send.js<br/>(fungsi Vercel — sign & kirim Web Push)"]
end
subgraph BE["Backend — Google Apps Script Web App"]
B["Code.gs<br/>(router doGet / doPost)"]
C["Auth.gs<br/>(sesi & password)"]
D["Utils.gs<br/>(helper, RBAC, rate limit)"]
N["Notifikasi.gs<br/>(siapa dinotifikasi & antrean)"]
end
E[("Google Sheet<br/>15 sheet — lihat SCHEMA.md")]
A -- "fetch() JSON<br/>+ API_TOKEN + sessionToken" --> B
B --> C
B --> D
B --> N
B <--> E
N -- "UrlFetchApp + secret" --> R
R -- "Web Push (VAPID)" --> SW
Frontend (index.html, *.js) | Backend (Code.gs, Auth.gs, Utils.gs, Notifikasi.gs) | |
|---|---|---|
| Hosting | Situs statis (Vercel) — api/push-send.js juga jalan di sini, sebagai fungsi serverless | Google Apps Script Web App, terikat ke satu Google Sheet |
Deploy saat push ke main | Otomatis | Tidak pernah otomatis — wajib clasp manual atau salin-tempel ke editor Apps Script, lihat CLAUDE.md |
| Database | — (tidak menyimpan state) | Google Sheet itu sendiri (SpreadsheetApp) |
Push Notification (lihat CLAUDE.md)
menambah satu jalur: Notifikasi.gs menghitung siapa yang berhak dinotifikasi
lalu mengantre di Sheet, sebuah trigger waktu memanggil api/push-send.js
(fungsi Vercel di project yang sama dengan frontend) untuk benar-benar
menandatangani & mengirim Web Push-nya — Apps Script sendiri tidak punya
primitif kripto yang dibutuhkan untuk itu.
Alur singkat: browser memuat index.html, yang men-fetch() seluruh file
.js lain secara berurutan, menggabungkannya, lalu mentranspile JSX-nya
lewat Babel di browser (tidak ada bundler). Setiap aksi (login, catat
data, dst.) dikirim sebagai fetch() JSON ke satu Web App URL yang sama,
digembok token API + sesi guru yang login.
Rincian tiap fitur (siapa boleh apa, alur kerja lengkap) ada di docs/PANDUAN-FITUR-DAN-ALUR-KERJA.md.
Repo ini tidak punya build step untuk frontend (lihat komentar di
index.html), dan backend-nya adalah Google Apps Script — bukan server
Node yang bisa dijalankan begitu saja secara lokal. Yang bisa dilakukan
sepenuhnya secara lokal adalah menjalankan test suite:
npm install # sekali, untuk @babel/core + @babel/preset-react (test) & clasp
npm test # menjalankan seluruh test (node --test tests/*.test.js)
Test suite ini memuat Utils.gs/Auth.gs/Code.gs yang sungguhan
lewat vm.runInContext dengan layanan Apps Script (SpreadsheetApp,
CacheService, dst.) di-stub — jadi yang diuji benar-benar logika backend
yang nanti berjalan di Apps Script, bukan tiruannya. Untuk menjalankan satu
file test saja:
node --test tests/password.test.js
node --test tests/hapus-data.test.js
Untuk melihat tampilan frontend secara utuh (bukan sekadar test), perlu backend yang benar-benar hidup:
Code.gs/Auth.gs/Utils.gs,
set API_TOKEN di Script Properties, lalu deploy sebagai Web App
(lihat bagian clasp di CLAUDE.md)..clasp.json.example → .clasp.json, isi scriptId project Anda
(dipakai clasp, bukan dibaca browser).API_URL/API_TOKEN di config.js supaya menunjuk ke Web App
Anda sendiri, lalu buka index.html lewat static server pilihan Anda
(mis. npx serve .) — jangan buka lewat file:// langsung, sebagian
browser memblokir fetch() dari origin file://.Tidak punya Node/clasp terpasang secara lokal (atau butuh clasp login
interaktif dari lingkungan yang tidak punya browser)? Buka repo ini lewat
Code → Create codespace on main di GitHub — .devcontainer/devcontainer.json
sudah menyiapkan Node 20 + npm install otomatis. Lihat
CLAUDE.md untuk
langkah clasp login --no-localhost dan push/deploy dari dalam Codespace.
Code.gs, Auth.gs, Utils.gs, backend (Google Apps Script)
Notifikasi.gs
index.html, *.js frontend (React tanpa bundler)
manifest.json, sw.js, icons/ PWA (dipakai fitur Notifikasi Push)
api/push-send.js fungsi serverless Vercel — kirim Web Push sungguhan
tests/ test backend (vm.runInContext) & smoke-test render frontend
docs/ panduan fitur untuk pengguna non-teknis
.github/workflows/ CI (test.yml), deploy backend manual (deploy-gas.yml),
& deteksi drift versi backend (check-backend-drift.yml)
SCHEMA.md struktur lengkap 15 sheet Google Sheet
API.md referensi lengkap seluruh action doGet/doPost
SIGAP terbuka untuk diadaptasi oleh sekolah lain sebagai bagian dari semangat berbagi praktik baik inovasi daerah. Atribusi pengembang asal di atas diharapkan tetap dicantumkan pada replikasi/turunan aplikasi ini — lihat halaman Tentang SIGAP di dalam aplikasi (dari layar Login atau tab Beranda) untuk versi lengkapnya. Ini murni identitas/provenance pengembang, bukan klaim kepemilikan HKI secara hukum.