ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗The kids' companion site for the Zion Transport System animated series (ages 8-10). Each vehicle in the Google Sheet becomes a "mission file" with Zion's explanation, fun facts, a quiz, read-aloud and more.
npm install
npm run dev
Without any setup the site shows a couple of sample vehicles. To use the real content, create .env.local:
GOOGLE_SERVICE_ACCOUNT_EMAIL=...
GOOGLE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"
GOOGLE_SHEET_ID=...
Share the sheet (view access) with the service account email. Never commit keys. On Vercel, add the same three values under Project Settings, Environment Variables.
A tab called Vehicles. Column order is defined in src/lib/sheets.js (COLUMNS). Add new columns at the end.
Content is cached for 5 minutes, so edits appear without a redeploy.
src/lib/divisions.js has the eight divisions with the official ZTS colours (Creative Strategy v1.2).tailwind.config.js has the ZTS master palette.src/components/ has the quiz, read-aloud, explorer rank and cards.src/lib/routegen.js) and are always solvable.src/lib/story.js are placeholders that never reveal what the Route Breaker is.All progress is stored in the browser (src/lib/explorer.js). There are no accounts and no personal data.
The Daily Challenge and Endless Run build questions from every field in the Vehicles tab (facts, bonus facts, notes,
recommendations, manufacturers, countries, photos, sounds and Zion's own quiz questions), so the more Zion adds, the more
varied the games get. Question logic lives in src/lib/challenges.js (12 question types, adaptive difficulty).
Challenges tab (questions written by Zion)Add a tab named Challenges with these columns (row 1 is the header):
| vehicle slug | question | right answer | wrong 1 | wrong 2 | wrong 3 | explanation | approved |
|---|
A row only appears in the game when the last column says yes. That keeps anything unchecked (for example questions
drafted by an AI helper) away from children until a grown-up has read it.
The site is an installable web app (src/app/manifest.js, public/sw.js). On a phone, "Add to Home Screen" gives
a one-tap icon, which is the easiest way to keep a daily streak going.
/creator)For whoever fills in the sheet. It shows how much of the game comes from the sheet, checks every row for mistakes in plain
English (the "Sheet check"), lists what each vehicle is still missing and what adding it would unlock, awards creator badges,
and has two makers with a live preview that copy a ready-made row to paste into the sheet. The hub is closed by default: nobody can open it until CREATOR_PIN (at least 6 characters) is set in the hosting settings and the site is deployed again. There is no public link to it, so bookmark /creator. Optionally set
CREATOR_SHEET_URL to the spreadsheet's address to show an "Open my spreadsheet" button once unlocked.
| or ;). Commas also work, but then a choice cannot contain a comma.B, 2). Capital letters, spaces, a full stop at the end
and A) prefixes are all forgiven.With publishing switched on, the Creator Hub writes straight into the Google Sheet: Publish to the app adds a vehicle, Save changes fills in an existing one (open it from "Your vehicle files"), and Publish to the games adds a written question. Your sheet stays the single source of truth, and you can still edit it there.
To switch it on, a grown-up does this once:
CREATOR_WRITE=1 and deploy again.CREATOR_REVIEW=1 makes new written questions wait for a grown-up to change no to yes in the Challenges tab.What is checked on the server on every write, whatever the browser sends: the PIN cookie; names, links (only http(s)
web addresses, and YouTube for video), and quizzes (a right answer that is one of the choices); text that starts with
=, +, - or @ is cleaned so a spreadsheet can never read it as a formula; cells are written as plain text; and
there is a limit of 40 writes an hour. A new vehicle with a name that already exists is refused.
Without Google connected (local development) publishing goes to a temporary practice sheet instead.