ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Track LSAT study progress, scores, and wrong answers in a single HTML file
Translation pending
AI summary · README
EducationHTML · JavaScriptGitHub @baughcooper2-altOnlineOwner 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.
A single-file study tracker for LSAT prep: daily schedule and minutes, a wrong-answer
journal, section and practice-test scores, and miss-pattern analysis — split by
Logical Reasoning and Reading Comprehension.
Built to replace a spreadsheet, so everything is one HTML file with no build step.
An LR / RC toggle carries across Wrong answers, Scores, and Patterns. Full practice
tests sit outside that split, since a PT score isn't one section type.
index.html works three ways, and detects which one it's in automatically, in this order:Read the full README ↗A single-file study tracker for LSAT prep: daily schedule and minutes, a wrong-answer journal, section and practice-test scores, and miss-pattern analysis — split by Logical Reasoning and Reading Comprehension.
Built to replace a spreadsheet, so everything is one HTML file with no build step.
| Tab | What it does |
|---|---|
| Today | The day's scheduled task, a minutes box, week progress against the weekly goal, streak and totals |
| Day log | Every past week, grouped Monday–Sunday, with per-day tasks and minutes; backfill any missed day |
| Wrong answers | Log a missed question with type, level, time, PT/section/question, and both halves of the reasoning |
| Scores | Sections, drills, and full practice tests, with an accuracy line for sections |
| Patterns | Misses by question type and difficulty, average time on a miss, and the blind-review gap |
An LR / RC toggle carries across Wrong answers, Scores, and Patterns. Full practice tests sit outside that split, since a PT score isn't one section type.
index.html works three ways, and detects which one it's in automatically, in this order:
window.claude.use("db") resolves, the page uses the
Claude artifact host's db capability. Data lives there, synced across every view of
that artifact. This is the private, edit-in-conversation copy./api backend (see below), the page talks
to it over fetch. Data lives in a real Postgres database — synced across every
device and browser that opens the URL. This is the one meant for actual day-to-day use./api, a plain web server, or
straight off disk. Falls back to a localDb() shim backed by the browser's
localStorage. Data then lives per-browser, not synced anywhere — clearing site data
or switching browsers starts you over.All three implement the exact same doc/collection/onSnapshot/get/set/delete/add
shape, so every render/write function in the page runs completely unmodified regardless of
which one is active.
"Back up data" exports every collection as one JSON file — through the artifact host's
downloads capability where available, or a plain <a download> blob otherwise. "Restore
backup" reads a file of that same shape back in: tasks and journal/score entries with a
matching date or id are overwritten, everything else is added. Backup/restore is how you
move data between modes — e.g. export from the Claude artifact, then restore into the
Vercel copy.
schema.sql from this repo. Then copy the
connection string (Dashboard → Connection Details — use the pooled one).LSAT-Tracker from GitHub. Framework Preset: "Other". No build command needed.DATABASE_URL = the Neon connection string from step 1. Redeploy if
the project already built before this was set./api/config and
switches to the Neon-backed store automatically — nothing else to configure.The API is five plain Vercel serverless functions under api/ (no framework),
using @neondatabase/serverless — see
package.json for the one dependency.
Four collections:
meta/config — weekly goal, start date, and the baseline totals carried over from the
original spreadsheet (minutes, days completed, best streak, and per-week minutes for
weeks that predate the tracker)tasks/<YYYY-MM-DD> — one document per scheduled day: title, cat, plannedMin,
skip, done, actualMinjournal/<id> — date, mode (LR/RC), source, qtype, level, timeSec, test,
section, q, whyWrong, whyRightscores/<id> — date, kind (LR/RC/Drill/PT), mode, raw, total, timeSec,
br, note; full PTs carry scaled instead of raw/totalDates are YYYY-MM-DD strings parsed as local time. Weeks run Monday to Sunday.
Everything is in index.html — styles in a <style> block using CSS custom properties
with light/dark variants, and an IIFE holding state, date helpers, render functions per
tab, and the write functions. No dependencies beyond two Google Fonts.