ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Teachers set balanced, board-pattern tests in a minute from a human-reviewed question bank. Students log what they got wrong and practise exactly their weak topics.
EducationTypeScript · PLpgSQLGitHub @VasuCodedOnlineOwner 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
Printed CBSE question papers from a reviewed bank, and practice built from each student's mistakes
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
PaperFlow generates printed question papers from a reviewed question bank, then
turns each student's wrong answers into a practice set on exactly those topics.
Who it is for: coaching institutes and schools teaching CBSE classes 9 to 12.
Teachers set and print papers, students log their mistakes on a phone, and the
institute's owner runs their own members and subjects. Tests stay on paper: the
app never conducts a test online and never scores anyone.Read the full README ↗PaperFlow generates printed question papers from a reviewed question bank, then turns each student's wrong answers into a practice set on exactly those topics.
Who it is for: coaching institutes and schools teaching CBSE classes 9 to 12. Teachers set and print papers, students log their mistakes on a phone, and the institute's owner runs their own members and subjects. Tests stay on paper: the app never conducts a test online and never scores anyone.
Live: paperflowindia.vercel.app
Accounts are created by invitation, a batch join code, or an access request that an institute approves, so the live link opens at a sign-in page. There is no public sign-up into someone else's institute by design.
Setting a paper (teacher)
SSA-10SCI-260922-03 (institute, class and
subject, date, that day's number) in the top margin of every printed page, and
papers can be found by that code.After the test (student, installable web app)
Running an institute (institute admin)
The question bank and the platform side
Next.js 15 (App Router), TypeScript in strict mode, Supabase (Postgres, Auth,
row-level security), Vercel (Mumbai, bom1), KaTeX with mhchem, a hand-written
service worker for the student app, Vitest with PGlite for tests.
Working software, not yet a product in daily use.
From the live site, signed in as accounts from the generated test data.
Setting a paper. Chapters with the number of questions behind each, the layout, the difficulty mix, and the paper being built on the right.
Building a custom layout. Sections with question kind, count, marks each and internal choice, and how many matching questions the ticked chapters hold.
What gets printed. Three shuffled sets of one paper, each with its own answer key, plus a mapping sheet.
The student app, on a phone: the tests that still need logging, and the practice set built from the last paper's mistakes.
Running an institute. Members, invitations, access requests and role changes.
Built from docs/BUILD-PLAN.md v3.0.
Built for all. Seeded for some. Shown only where seeded.
Read CLAUDE.md before changing anything. The tenancy and role rules there
are load-bearing. docs/HANDOFF.md has the current state, the open issues, and
the prompt for the next session.
| CP | Scope | State |
|---|---|---|
| C0 | Repo, tooling, DB-control guardrails | Done |
| C1 | Multi-tenant schema, RLS, taxonomy, seeds | Done, 22 migrations, executed locally and applied to the live dev project |
| C2 | Username sign-up/sign-in, access-request approvals, invites, batch join codes (Google optional) | Done |
| C2b | Platform console: institutes, inspect, review queue, activation, requests, support, health, audit | Done |
| C3 | Ingestion standing brief | Doc only (ingestion is a Claude Code session, not app code) |
| C4 | Review flow | /platform/bank |
| C5 | Paper generator | Done, including quick templates and custom layouts |
| C6 | Multi-set shuffle engine | Done |
| C7 | Print: per-set papers, answer keys, mapping sheet, paper codes | Done |
| C8 | Teacher: set a paper, papers, batches, flagged | Done |
| C9 | Student app: tests, set picker, logging, practice, weak spots; installable PWA | Done |
| C10 | Practice matcher + analytics | Done |
| C11 | Activation gate | In the console; the human review hours are the real cost |
| C12 | Hardening | Isolation suite, rate limits, export, staging seed, load-test script, backups, runbook. Not done: Sentry, email alerts, a measured load test |
/demo is a separate click-through prototype with fake data and no backend. It
returns 404 in production unless NEXT_PUBLIC_ENABLE_DEMO=1.
No Docker needed: the database tests run the real migrations in PGlite.
npm install
npm run typecheck
npm test # 347 tests: engines, print, PWA, and the database suites
npm run lint
npm run db:verify # every table tenant-keyed or allowlisted, RLS on everywhere
npm run db:types:local # regenerate src/lib/database.types.ts from the migrations
npm run build:check # production build into .next-build (safe beside a dev server)
npm run dev -- -p 3005
Without Supabase configured, every signed-in page redirects to /login, which
explains what is missing. /demo and /print/sample work with no setup.
Configuring Supabase for local work is in docs/SETUP.md.
src/app/(main) the real app: login, welcome, platform, institute, teacher, app (student)
src/app/print print views (papers, keys, mapping sheet)
src/app/demo clickable prototype, fake data
src/server/actions server actions (all mutations)
src/server/data server-side reads
src/server/generator paper generator (pure)
src/server/sets multi-set shuffle engine (pure)
src/server/practice practice matcher + analytics (pure)
src/lib/paper-layout question kinds, quick templates, custom-layout validation
src/lib/pwa service worker policy + generator
src/lib/print print model, KaTeX/mhchem, compose, page codes
supabase/migrations 0001–0022
tests/db executable database suites (isolation, suspension, support, …)
scripts schema harness, type generation, seeds, staging seed, load test
docs BUILD-PLAN, SETUP, RUNBOOK, HANDOFF, DELIVERY, ingest brief
To put it online, follow docs/GO-LIVE.md: GitHub, Supabase, Google sign-in, Vercel, production, and giving Claude access to the dev database.