ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
Zion과 함께 하늘·도로·철도·수상·우주·파이프·케이블·미래 기술을 탐험하며 세상이 어떻게 움직이는지 알아보세요
Join Zion on missions across air, road, rail, water, space, pipelines, cables and future tech. Discover how the world moves!
교육JavaScript · CSSGitHub @jushotheone온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. 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.