ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗The free, fun and effective way to learn anything. Quest Academy combines Khan Academy-style course structure (videos, articles, practice, unit tests, mastery) with Duolingo-style motivation (a lesson path, XP, streaks, quests, leagues). It covers everything from first letters to NEET/JEE, coding and university courses.
Learning
Motivation: XP and levels, daily streaks with freezes, daily goal, daily quests, weekly leagues, achievements, coins and a shop.
Content: 29 courses, 321 lessons, ~1,500 practice questions, 305 NEET/JEE questions, 283 formulas, 50 coding challenges and 20 interactive simulations.
Each stage of learning gets its own app. With Settings → Design → Age designs (the default), every profile has its own app frame and navigation, home screen, lesson page, practice screen, results screen, typeface, colours and rewards. The profile is picked at onboarding (age for children; college / postgraduate / working for adults) and can be changed any time in Settings → Experience (leaving the young-learner profiles needs a grown-up check).
| Profile | Who | Feel |
|---|---|---|
| 01 Sprout | Pre-primary, ~3–5 | No reading needed: giant picture buttons, everything spoken by Questy, one thing at a time, stars and stickers, grown-up corner behind a check. |
| 02 Explore | Primary, ~6–10 | Bright storybook world: island map, read-to-me buttons, stickers for trying and improving, star results. No leagues. |
| 03 Adventure | Middle school, ~11–14 | Mission control: game HUD with ranks, missions, topic maps, experiments, unlockable challenges, opt-in leagues. |
| 04 Focus | High school, PUC, NEET/JEE, ~15–18 | Exam command centre: syllabus dashboard, exam countdown, focus timer, study-notes lessons, CBT-style practice and scorecards. |
| 05 Mastery | Undergraduate | Academic workspace: IDE-like frame, lecture-notes lessons, problem sets with judge-style verdicts, grade reports and competencies. |
| 06 Research | Postgraduate and research | Reading room: serif long-form lessons, margin contents and notes, reading lists, citations, quiet self-checks. No game elements. |
| 07 Professional | Working adults | Career-learning product: goal dashboard, course-player lessons, knowledge checks with a pass mark, pathways and certificates. No game elements. |
Each profile lives in src/experiences/<profile>/ (an Experience with Shell, Home, LessonLayout, SessionLayout, SessionResults, plus a theme.css scoped to html[data-skin="modes"][data-mode="<profile>"]). Shared logic (progress, grading, mastery) stays in shared components; profiles only decide presentation.
Study planner (/plan): pick a syllabus, pathway or course, a finish date, hours per week and study days. The plan schedules lessons, revision days and mock tests, re-plans automatically as you progress, tells you how many extra hours you need when you fall behind, and exports to your calendar (.ics).
Syllabus chapter lists live in src/content/syllabus/ and map chapters to existing lessons; chapters without lessons yet are marked “practice only” or “coming soon”. Check them against the current official editions before relying on them for exams.
Explore mode speaks with the Kokoro-82M af_heart voice:
public/voice/<key>.mp3, listed in public/voice/manifest.json. Every sentence a young learner hears (story pages, questions, flashcards, game prompts, phonics, counting, Questy's lines) is collected by scripts/voice-corpus.ts.After adding or editing kids content, render the new clips:
npm i --no-save kokoro-js # one-time
npm run generate-voice # renders only missing clips; needs ffmpeg
npm run generate-voice -- --prune # also removes clips no longer used
A Socratic tutor powered by Claude Haiku: it answers with hints and guiding questions and doesn't give away the answer to a question the learner hasn't tried yet. It opens from any lesson and from practice; in quizzes and tests it opens only after the learner has answered.
.env.local (and in your host's environment variables): ANTHROPIC_API_KEY=sk-ant-.../api/tutor reads the key.Without a key the rest of the app works normally. Built-in limits: 30 requests per 10 minutes per IP (in memory, per server instance) and at most 20 messages of up to 4,000 characters each. The tutor is never shown to Sprout learners (ages 3–5), and Settings → Ask Questy turns it off on a device. Set a monthly spend limit in the Anthropic Console.
Quest Academy runs in English, हिन्दी, ಕನ್ನಡ, தமிழ், తెలుగు, मराठी and বাংলা (Settings → Language). All translations are AI-made and marked "being reviewed by teachers" until a human pass is done.
t("key", "English") (src/i18n). npm run i18n:extract writes src/i18n/catalog.json and lists missing keys per language; translations live in src/i18n/messages/<locale>.ts.public/i18n/<locale>/<course>.json maps each English string of a course (titles, paragraphs, questions, options, flashcards) to its translation. Lessons, practice and unit menus swap strings at render time, maths and code stay untouched, and learners can tap Show original. npm run i18n:content shows coverage per course; -- --missing <course> <locale> lists what's left and -- --check <course> <locale> validates a file. Edit English content as usual: changed strings simply fall back to English until re-translated.Settings → Design has three choices: Age designs (default, one design per profile, above), Classic (the original Quest look for everyone — the rollback) and Studio (an editorial variant of Classic: hairline borders, indigo and teal, Inter). The choice is a data-skin attribute on <html>; switching is instant and never touches progress.
About 30 core concepts are explained four ways — an animated step-by-step scene narrated by Questy, a hands-on activity, a comic strip and an everyday analogy — pitched so a young child can follow. They appear at the top of the matching lessons and in the gallery at /explain. Each lives in src/explainers/<area>/ and follows the Explainer type in src/explainers/types.ts.
Beyond lessons, the platform has the tools a one-stop learning product needs:
/library): browse by class (pre-primary to lifelong), by board/exam, or by goal./parent): grown-up gated weekly summary, progress by subject, stickers, suggested next steps, parent controls and a printable weekly report./insights): 12-week activity heatmap, accuracy and mastery by subject, study patterns, strongest/weakest skills, milestones./worksheets): printable question sets with answer keys for every unit, for teachers and tutors./notebook): notes, bookmarks and a doubts list attached to lessons, exportable as Markdown./competitions): a hub for Olympiads, NEET/JEE, CUET, KCET, BITSAT, NDA, CLAT, GATE, CAT, UPSC and scholarships, with preparation plans linking to courses.sitemap.xml and robots.txt.npm install
npm run dev # http://localhost:3000
Without any configuration the app runs in guest mode, saving progress in the browser.
Lesson videos come from the Quest Academy YouTube channel and are matched to lessons automatically.
YOUTUBE_API_KEY=your-key YOUTUBE_CHANNEL=@YourChannelHandle npm run sync-videos
The script:
src/content/videos/channel.json;src/content/videos/matches.json.src/content/videos/overrides.ts:
export const videoOverrides = {
"physics-school/motion/projectile-motion": "dQw4w9WgXcQ", // use this video
"english/grammar/parts-of-speech": null, // never show a video
};
To re-match without calling the API again (for example after editing lessons), run npm run sync-videos -- --offline.
How videos behave in the app:
supabase/schema.sql in the SQL editor (it is safe to run again after updates)..env.example to .env.local and set NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY and SUPABASE_SERVICE_ROLE_KEY.https://your-domain.com/** to Redirect URLs (sign-in links and password resets return there).What is stored in the account: progress, mastery, streaks and rewards; notes, bookmarks and doubts; parent controls and the Ask Questy switch. Guest progress is merged in on first sign-in, and later changes sync across devices (on change, when the tab regains focus, and every few minutes). Signing out clears the device, so a shared computer doesn't keep someone's progress. Learners can change their password and delete their account in Settings → Account.
.env.example under Project → Settings → Environment Variables: the three Supabase keys, ANTHROPIC_API_KEY, NEXT_PUBLIC_SITE_URL, and optionally the TUTOR_DAILY_* limits.NEXT_PUBLIC_SITE_URL and in Supabase's Site URL.Ask Questy usage is limited per learner per day (signed-in learners get more than guests) and capped for the whole site by TUTOR_DAILY_BUDGET, so a leaked link can't run up the API bill. Set a monthly spend limit in the Anthropic console as well.
The design is flat, bold and friendly:
src/app/globals.css)..btn-primary, .btn-good, .btn-gold, .btn-ghost).src/components/brand/Mascot.tsx) is a code-drawn SVG with poses: idle, wave, cheer, think, sad and read.src/components/brand/CourseIcon.tsx).src/app/
(marketing)/ landing page
(app)/ sidebar shell: learn, courses, course/[subject]/[unit]/[lesson], practice,
exam, code/playground, leaderboard, quests, shop, profile, settings, studio/videos
(focus)/ full-screen: session/[...key], onboarding, auth, exam mock tests, kids games
src/content/ lessons (subjects/*), exam bank, course structure (course.ts), videos/,
syllabus/ (boards), pathways/ (career pathways), resources/ (case studies, readings, competencies),
voice-lines.ts
src/components/ brand, shell, learn (path, blocks, questions), lesson, session, course, exam, code, widgets…
src/lib/ store (progress), mastery, gamification, progress, video matcher, runners, supabase
src/lib/modes.ts experience profiles; planner.ts + plan-sources/ for the study planner; voice.ts for Questy's voice
scripts/sync-videos.ts, scripts/generate-voice.ts, scripts/voice-corpus.ts
Lessons are TypeScript objects typed by src/content/types.ts. Add a file under src/content/subjects/<category>/ and register it in src/content/index.ts. It automatically gets: