ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A mistake tracker, spaced-review scheduler, test log and study planner. It is a PWA (installable on your phone) that runs on
Vercel with data in Supabase Postgres, so your phone and laptop always show the same data.
Accounts: sign up with email + password and choose your branch (DA or ME); you stay signed in on that device for a year. Everyone's data — syllabus, mistakes, tests, schedule, settings, screenshots — is completely separate (each account gets its own copy of the syllabus for its branch, and every query is scoped to the signed-in user).檢視完整 README ↗A concept tracker with spaced review, test-score log, timer and to-do list. It is a PWA (installable on your phone) that runs on Vercel with data in Supabase Postgres, so your phone and laptop always show the same data. Accounts: sign up with email + password and choose your branch (DA or ME); you stay signed in on that device for a year. Everyone's data — syllabus, mistakes, tests, schedule, settings, screenshots — is completely separate (each account gets its own copy of the syllabus for its branch, and every query is scoped to the signed-in user). You can add the other branch to your account later.
node dev-server.js → http://localhost:5050 (an in-process Postgres in data/pglite; create a local account on first visit). Node 22+.| Page | What it does |
|---|---|
| Today | Days left, time studied, concepts due for review, today's to-dos, latest score per tier |
| To-do | Today / This week task lists (▶ starts the timer on a task, repeat weekly, missed tasks roll over), plus the syllabus checklist |
| Timer | Pomodoro or stopwatch; time is logged automatically (optionally against a to-do). Study log, weekly totals, consistency calendar. A running timer shows in a bar on every page |
| Concepts | Write a concept instead of a question: a title, a tag (🔴 struggled with / 🟡 must remember / 🟢 new in an exam), subject, optional note. Concepts are resurfaced on the review schedule below |
| Tests | Enter marks only. Tiers: weekly quiz → topic-wise → subject-wise → full mock, with an optional platform and link. Latest / best / last-3 average per tier and a progress chart |
| More | Branch switch, theme, settings (exam date, review intervals, syllabus editor) |
Review scheduling (shared/srs.js). Default intervals 1, 3, 7, 14, 30 days, each measured from the actual date of the previous review (so overdue reviews don't compress the spacing). A concept's state is always re-derived by replaying its review events, which is why editing dates, undoing a review or changing intervals can never leave it inconsistent.
Priority score (shared/priority.js) is a plain sum of named parts: recurrences, failed reviews, severity, marks lost, days overdue, days since last success, your own importance rating (neutral at 3), and confidently-wrong answers. Mastered items are scaled down. Hover a score or open the detail view to see every line. Weights are in Settings. Nothing assumes a topic is "high weightage" unless you set its importance.
Today's plan (shared/planner.js): overdue → repeated/high-impact → due today → optional maintenance, then packed into your time budget (items that don't fit are skipped, smaller ones still fill the gap).
Accuracy is reported two ways and only when the data exists: among attempted (correct ÷ correct+incorrect) and among all (correct ÷ total questions). Error-rate trends use attempted questions as the denominator so "more practice" isn't mistaken for "getting worse".
Postgres (Supabase in production; PGlite locally and in tests, so the same SQL runs everywhere). Schema changes are ordered migrations in src/db.js, applied automatically and tracked in schema_migrations. Tables: subjects, topics (self-referencing: subtopics), streams, causes, tests, mistakes, reviews (event log), tasks, study_log, topic_progress, settings, attachments (screenshots, resized in the browser before upload).
Passwords are hashed with scrypt (salted). The API requires a signed session cookie (HttpOnly, SameSite=Strict, 1 year, renewed on use). Every table has a user_id, every query filters on it, and every id from a request is looked up together with the user id, so another user's id behaves like a missing one — covered by an automated cross-user test. Cross-site requests are refused. Optional INVITE_CODE limits who can create accounts.
npm test
Covers scheduling, priority, planner, analytics, API validation, bulk operations, tests↔mistakes linking, schedule tracker, restart persistence, login/session behaviour, attachments and path-traversal/cross-origin protections.
api/index.js Vercel serverless entry (all /api/* rewritten here)
src/ db (Postgres + migrations), store, validation, HTTP
public/ the app (no build step); public/shared/ = pure logic used by browser + server
test/ node:test suites
scripts/ icons, reset-password
pg connection adapter is only exercised on a real deployment.