ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
화이트 라벨 게임형 교육, 2분 퀴즈·실시간 게임·설문·인증 제공, 지식 격차 분석 포함
White-label gamified training: 2-minute daily quizzes, live quiz games, polls and certification your team actually plays — with knowledge-gap analytics.
교육TypeScript · JavaScriptGitHub @Buddhirc5온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Daily quiz sprints · Comic-book Story Mode · 3D Arena Map · Big-screen live games · Instant polls · Certification — all under your own brand.
Live site · Try the free demo · Product guide · Security
Ant Arena is a white-label, multi-company platform that turns employee training into two minutes of fun a day. Staff play short daily quizzes on their phones and travel a 3D journey map, read case studies as comic books, compete in game-show live quizzes at town halls, vote in live polls, and earn branded certificates, while managers see exactly where the knowledge gaps are.
You run one installation. As the super admin, you create a private space for each client company, with its own web address, name, logo, colours, admins, players and questions. No company can see another's data.
📘 Writing a proposal, pitch deck or poster? Everything is in the Product guide (PRODUCT.md).
| 🏃 Daily Sprint | 2-minute quizzes with 6 question types (incl. swipe sort and buckets), partial marks and a fair second chance, on a 3D Arena Map of floating lands; coins, streaks, levels, leaderboards, team battles and 18 painted 3D characters with a store of pets, rides, hats and glasses in the same style |
| 📖 Story Mode | Case studies as animated comic books: the app's characters in 7 moods, speech bubbles, sound effects, choices, a rank stamp and a replay. Admins write a story like a play (or bulk-import many) and preview it |
| 🏆 Live Quiz | Kahoot-style game show: game PIN + QR, answer tiles, race-track scoreboard and a confetti podium finale |
| 📊 Live Polls | Mentimeter-style: word cloud, multiple choice, scale, ranking, open text, Q&A, guess the number, 100 points, 2×2 grid, pin on image, plus text and image slides |
| 🎓 Certification | Timed exams with pass marks, attempts and expiry, and printable certificates with an editable signature and seal |
Row-level tenant isolation · server-side scoring · 5 admin roles with maker-checker approvals · authenticator-app MFA · private invite links · rate limits · full audit trail · strict security headers. See SECURITY.md.
Each client gets its own product name, logo, colours (with automatic readability checks) and wording, across the player app, admin portal, big screens, certificates and PDF reports. Live screens come in light mode by default, with dark mode one tap away.
Stack: React 18 + TypeScript + Vite · Supabase (Postgres + Row Level Security, Auth, Realtime) · Vercel.
npm install
npm run dev # http://localhost:5173
With no Supabase keys, the app runs a full demo backend inside the browser (data is kept in localStorage):
| What | Where | Sign in |
|---|---|---|
| Landing page | #/ | — |
| Experience (guided demo tour) | #/experience | — |
| Sign in (join a game, vote, company & admin sign-in) | #/signin | — |
| Harbor Bank, player app (bank template, custom brand) | #/t/harbor | Employee ID DEMO-101 … DEMO-130 — try the Arena Map, the Story Mode shelf and the "New: swipe & sort" quiz |
| Harbor Bank, admin portal | #/t/harbor/admin | [email protected] / demo1234 (Owner) · [email protected] / demo1234 (Host) |
| Northwind Traders (generic template) | #/t/northwind · /admin | [email protected] / demo1234 |
| Live poll (audience) | #/vote/482913 | anonymous |
| Super admin console | #/super | [email protected] / demo1234, then the authenticator code shown on screen |
In the demo, email codes and links appear in a blue "Demo inbox" box instead of being emailed. To test a live game, host it from the admin portal and press + Open a test player to open player tabs.
Demo sandbox on a live site. When Supabase is configured, visitors can still try everything from #/experience: the first click switches their browser to the in-browser demo (a "Demo sandbox · Exit demo" bar stays on screen). Nothing they do is sent to the database; it's kept in their browser's localStorage.
SEO & speed. npm run build pre-renders the landing page into index.html and each section into its own page (/features, /how-it-works, /use-cases, /security, /faq — real HTML for search engines and a fast first paint; the app hydrates it), adds Open Graph/Twitter cards, JSON-LD (Organization, SoftwareApplication, FAQPage, breadcrumbs), robots.txt and sitemap.xml. Canonical and share URLs use VITE_APP_URL (else Vercel's production domain), so changing the domain needs no code change. The build stops if the inline script's hash in vercel.json's CSP is out of date. Brand assets (favicon, app icons, social image) are generated from src/components/Logo.tsx with npm run gen:brand.
npm run build:demo produces one self-contained HTML file (dist-demo/index.html) that you can email to a prospect or open from disk.
Ctrl+`) and run npm install, then npm run dev.npm run typecheck, npm run build, npm run build:demo.Where things live:
src/
api/Api.ts the backend contract (every data operation)
api/demo/ in-browser demo backend (same rules as production)
api/supabase/ production backend client
api/engine.ts shared rules: live points, poll results, default settings
lib/scoring.ts points, coins, levels, streaks, leaderboards (also shown in the in-app guide)
lib/answers.ts question types: drafts ↔ sealed questions, partial scoring (swipe, bucket, story)
lib/storyScript.ts Story Mode script format (parse ↔ write), moods, roles, looks
lib/importQs.ts bulk import for every question type, story blocks and scripts
lib/arenaMap.ts Arena Map: lands, stops, castles, chests from quizzes + plays
pages/ home, section pages (SEO), company player app, admin gate
player/ Daily Sprint, Story Mode, Second chance, Arena Map, store, certification (player side)
player/qtypes.tsx swipe sort, buckets and the comic-book Story Mode player
player/map3d/ the 3D Arena Map (three.js): islands, people, animals, sound, sky & ambience
components/ characters (Chibi → Painted art in assets/art), pets & rides (Companions), UI kit
admin/ company admin portal (dashboard, quizzes, story editor, players, results, rewards, security, admins, branding, settings)
live/ live quiz: admin tab, host screen, phone controller
polls/ live polls: editor, presenter screen, voting page
cert/ printable certificate
super/ super admin console
supabase/ SQL migrations, seed, backend README
Question images: every quiz question can carry a picture. The admin portal resizes and compresses it in the browser (about 50–250 KB) and it's stored with the question.
Writing content fast. Every editor has a Bulk import panel: paste rows from Excel or upload a .csv / .txt. Rows start with a type word — MCQ, TF, MATCH, ORDER, SWIPE, BUCKET — and Story Mode accepts scripts (Title: … Name (mood): words … - Best: reply -> (mood) what happens) or spreadsheet blocks (STORY · CAST · SCENE · CHOICE · END). The panel shows an example for each and explains any row it skips.
Updating an existing Supabase project: run only the migrations you haven't run yet, in number order. Each one is safe to run more than once.
supabase/migrations/0001_schema.sql, 0002_security.sql, 0003_functions.sql, 0004_question_images.sql, 0005_live_player_count.sql, 0006_super_self_approve.sql, 0007_rename_ant_arena.sql, 0008_special_characters.sql, 0009_super_requires_authenticator.sql, 0010_mfa_reset_by_email.sql, 0011_private_invite_links.sql, 0012_certificate_signature.sql, 0013_poll_slide_types.sql, 0014_super_admin_authenticator_only.sql, 0015_passwords.sql, 0016_units_and_live_join.sql, 0017_new_types_second_chance.sql, 0018_story_mode.sql, 0019_store_pets_rides.sql, 0020_untimed_sprints.sql, 0021_live_race.sql, 0022_live_delete.sql, 0023_push.sql, 0024_gift_push.sql, 0025_profile.sql, then supabase/seed.sql.select public.bootstrap_super_admin('[email protected]');supabase/README.md §3..env.example to .env.local and fill in VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY (Project Settings → API).npm run dev. The app now uses Supabase. Open #/super, sign in with your email and password, then scan the QR code with an authenticator app (Google Authenticator, Microsoft Authenticator, 1Password…) and enter the 6-digit code. Email + password + authenticator is all a super admin needs.Optional: npm run test:supabase runs about 230 end-to-end checks against a Supabase stack (see supabase/README.md).
vercel.json already sets the build and the security headers.VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY and VITE_APP_URL (your site address, e.g. https://antarena.vercel.app — used in QR codes, share links, canonical URL and sitemap).Routes use #/… hash URLs, so no rewrites are needed and links work anywhere.
#/super → New company. Enter the name, the web address (e.g. acme-bank), the template (Bank = Branch/Department wording, maker-checker and admin MFA on), the owner's email, brand colours and logo, and whether to include the starter library.
Send the owner the two links the wizard shows:
https://your-app/#/t/acme-bankhttps://your-app/#/t/acme-bank/adminThe owner signs in with that email ("First time? Set a password").
The owner invites their own admins (Admins tab: Owner, Admin, Editor, Host, Viewer), adds players (or lets staff register), edits quizzes, and sets branding and features.
You can suspend, edit or delete a company at any time and see usage per company.
See SECURITY.md. In short:
© 2026 Buddhi Sandeepa. Ant Arena, its source code, design and brand are owned by Buddhi Sandeepa and released under the MIT License.
The demo companies (Harbor Bank, Northwind Traders) are fictional. The landing-page hero illustration should be replaced with original artwork before commercial use.