ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A lightweight, installable LMS for small-scale tuition centres and coaching institutes — the kind of place that runs on WhatsApp groups, phone calls and a paper attendance register today.
Three role-based logins (student, parent, administration) on a single progressive web app.
The app ships with a realistic demo dataset. On the login screen, tap any of the three cards to auto-fill.
The demo parent (Sunita Gupta) has two children enrolled, so the multi-child flow is visible.檢視完整 README ↗A lightweight, installable LMS for small-scale tuition centres and coaching institutes — the kind of place that runs on WhatsApp groups, phone calls and a paper attendance register today.
Three role-based logins (student, parent, administration) on a single progressive web app.
The app ships with a realistic demo dataset. On the login screen, tap any of the three cards to auto-fill.
| Role | Phone | Password |
|---|---|---|
| Administration | 9000000001 | admin123 |
| Student | 9000000010 | student123 |
| Parent | 9000000020 | parent123 |
The demo parent (Sunita Gupta) has two children enrolled, so the multi-child flow is visible.
Student
Parent
Administration
| Layer | Choice |
|---|---|
| Frontend | React 18 + Vite |
| Styling | Tailwind CSS |
| Routing | React Router |
| Charts | Recharts |
| PWA | vite-plugin-pwa (Workbox) |
| Persistence | IndexedDB via idb-keyval |
| Language | JavaScript (no TypeScript) |
| Hosting | Vercel |
All data lives in the browser's IndexedDB, seeded on first launch. Everything routes through
src/data/db.js, which is the single data-access layer — no component talks to
storage directly.
This means the app is fully functional with zero backend setup, which is what makes the one-link Vercel deploy work. The trade-off is that data is per-device: changes an admin makes on a laptop will not appear on a phone, because they are different browsers.
Moving to a shared backend (Supabase was the plan) means reimplementing the functions in db.js
against it. No component changes are required — that isolation was deliberate.
npm install
npm run dev
Open the printed URL (usually http://localhost:5173).
npm run build # production build into dist/
npm run preview # serve the production build locally
npm run icons # regenerate PWA icons from public/favicon.svg
The service worker is disabled in dev (
devOptions.enabled: false) so it doesn't cache your changes while you work. Install/offline behaviour only applies to the built app — test it withnpm run preview, notnpm run dev.
One-time setup:
npm run builddistAfter that it's automatic: every push to main triggers a new deployment. Pull requests get
their own preview URL.
vercel.json handles the SPA rewrite (so deep links like /student/quizzes work on refresh) and
sets cache headers — long-lived for hashed assets, no-cache for the service worker so updates land
immediately.
The app works offline after the first load — Workbox precaches the shell, and all data is local anyway.
Installation requires HTTPS, which Vercel provides automatically. It will not offer to install over plain
http://(except onlocalhost).
src/
├── App.jsx route table + role guards
├── main.jsx entry point
├── index.css Tailwind layers and component classes
├── context/
│ └── AuthContext.jsx session, DB bootstrap, change notifications
├── data/
│ ├── db.js THE data-access layer — swap this for a real backend
│ └── seed.js demo dataset
├── components/ shared UI (Layout, charts, modals, icons, …)
└── pages/
├── Login.jsx
├── Notifications.jsx shared by all three roles
├── student/
├── parent/
└── admin/
PROJECT_PLAN.md — problem statement, personas, data model, build phasesUML_DIAGRAMS.md — Mermaid sources and draw.io notesusecase_diagram.xml / activity_diagram.xml — import via draw.io → Extras → Edit Diagram