ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.