ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A mission-based, self-guided web app for teenagers that supports development of identity, purpose, connection, and meaning.
This repo contains the full MVP foundation:查看完整 README ↗A mission-based, self-guided web app for teenagers that supports development of identity, purpose, connection, and meaning.
This repo contains the full MVP foundation:
groundwork), set a database password, choose a regionsupabase/schema.sql from this repoThis creates all tables, sets up Row Level Security, creates the user auto-creation trigger, and seeds the 8 stories.
Verify: After running, go to Table Editor and check that stories has 8 rows.
Already have a database from an earlier version? schema.sql is kept current, but an
existing project also needs the files in supabase/migrations/ run in order (002, 003,
004, 005, 006, …). Each one is idempotent, so running them again is safe. Features whose migration
hasn't been run show a "being switched on shortly" note rather than erroring — so if a
section of the Me page says that, a migration is outstanding.
If you skip this, email/password auth will still work.
In Supabase: Settings → API
Copy:
Project URL → NEXT_PUBLIC_SUPABASE_URLanon public key → NEXT_PUBLIC_SUPABASE_ANON_KEYservice_role key → SUPABASE_SERVICE_ROLE_KEY (keep this secret)In Anthropic Console: API Keys → create a new key → ANTHROPIC_API_KEY
cp .env.local.example .env.local
Fill in your values:
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
ANTHROPIC_API_KEY=sk-ant-...
NEXT_PUBLIC_APP_URL=http://localhost:3000
npm install
npm run dev
Open http://localhost:3000.
In Supabase: Authentication → URL Configuration
Add to Redirect URLs:
http://localhost:3000/auth/callback
For production, also add:
https://your-domain.vercel.app/auth/callback
.env.localNEXT_PUBLIC_APP_URL to your Vercel URLsrc/
├── app/
│ ├── page.tsx # Landing page
│ ├── auth/
│ │ ├── page.tsx # Sign in / sign up
│ │ └── callback/route.ts # OAuth callback handler
│ ├── onboarding/
│ │ └── page.tsx # 3-step onboarding
│ ├── dashboard/
│ │ ├── page.tsx # Server component (data fetching)
│ │ └── DashboardClient.tsx # Client component (UI)
│ ├── missions/[id]/
│ │ ├── page.tsx
│ │ ├── MissionDetailClient.tsx
│ │ └── activities/[activityId]/
│ │ ├── page.tsx
│ │ └── ActivityClient.tsx # Handles all activity types
│ ├── journal/
│ ├── stories/
│ ├── support/
│ ├── settings/
│ └── api/
│ └── reflect/route.ts # AI reflection endpoint
├── components/
│ └── layout/
│ └── AppShell.tsx # Nav + page wrapper
├── lib/
│ ├── supabase.ts # Client + server Supabase instances
│ ├── missions.ts # Mission/activity data (content layer)
│ └── utils.ts # Utility functions
├── types/
│ └── database.ts # Full TypeScript types for Supabase schema
└── middleware.ts # Route protection
Typography
Colour palette
| Name | Hex | Used for |
|---|---|---|
| Navy | #1B3A5C | Primary, Mission 1 |
| Teal | #2E7D8C | Accent, Mission 2, interactive states |
| Gold | #C8982A | Challenges, milestones, Mission 4 |
| Sage | #4A7C59 | Success, Mission 3 |
| Surface muted | #F8F8F6 | App background |
Component classes (defined in globals.css)
.card — standard card with soft shadow.card-elevated — raised card.btn, .btn-primary, .btn-secondary, .btn-teal — button variants.input — form input.journal-textarea — writing area.progress-bar / .progress-fill — mission progress[data-animate="N"] — staggered fade-up on mountPhases not yet built (from the original spec):
To see where students stop, run migration 015_completion_counts.sql, then:
npm run report:completion
It prints totals only: sign-ups, each mission step and each program week. Counts under five are
shown as "fewer than 5". It reads NEXT_PUBLIC_SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY from the
environment or .env.local, and it won't run before COUNTS_START in src/lib/completionCounts.ts,
because students were told about the counts in the app (and on the privacy page) two weeks before they
could be read.
When running this as a school pilot: