ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A study community and peer-mentor marketplace for Deakin University students.
Students post questions and advice by unit, and AI tags, summarises and
moderates each post. When they want one-on-one help, an AI interview matches
them with a senior who got a Distinction or High Distinction in that unit.
They can chat with an AI preview of that mentor's teaching style, then book a
real session.查看完整 README ↗A study community and peer-mentor marketplace for Deakin University students. Students post questions and advice by unit, and AI tags, summarises and moderates each post. When they want one-on-one help, an AI interview matches them with a senior who got a Distinction or High Distinction in that unit. They can chat with an AI preview of that mentor's teaching style, then book a real session.
Live: https://sodu-three.vercel.app
/privacy. Demo personas let anyone try every role without signing in.npm install
cp .env.example .env.local # fill in what you have; see Environment
npm run dev
Open http://localhost:3000. With no keys, Sodu runs on labelled demo data, and every AI feature falls back to a simple built-in version. Google sign-in, messages, sessions and anything else saved per person need Supabase.
supabase/schema.sql, then the files in supabase/migrations/ in this order: google-login, sponsored-posts, session-journey, study-plan, live-fixes, community-plus. Every migration only adds tables and columns, and each is safe to run again.npm run seed./auth/callback as the redirect.| Name | Used for | Missing means |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | Database, sign-in, realtime | Demo data only, no sign-in |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Sign-in and realtime in the browser (the public anon key, never a secret key) | No sign-in or live updates |
SUPABASE_SERVICE_ROLE_KEY | Server-only database access | Nothing is saved |
GEMINI_API_KEY | Tagging, moderation, matching, the AI mentor, study plans, translation | Built-in fallbacks, no translation |
GEMINI_MODEL | Optional model override (default gemini-flash-latest) | Default model |
CLOUDINARY_CLOUD_NAME, CLOUDINARY_API_KEY, CLOUDINARY_API_SECRET | Image and PDF uploads | Uploads return a placeholder |
DEMO_MODE | Set to false to switch off the demo personas (real accounts only) | Demo personas on |
Secret keys are only read on the server and never prefixed with NEXT_PUBLIC_. Row level security denies all direct access; the browser only reaches data through the API routes, which check who is asking.
npm test # 43 unit tests: session, money, ranking and safety rules (seconds, no keys)
npm run test:permissions # 37 private actions tried by the wrong person; needs the app running on :3107
npm run test:ai # 32 real Gemini cases; needs GEMINI_API_KEY, writes tests/ai-report.md
To test another copy of the app, set SODU_URL, for example SODU_URL=https://sodu-three.vercel.app npm run test:permissions. The permission tests only send requests that must be refused, so they never change data.
Next.js 16 (App Router, JavaScript) and React 19, with Tailwind v4, shadcn/ui on Base UI, and Lucide icons. Supabase handles Postgres, Google auth and Realtime. Gemini does the AI, called over REST from the server only, with zod-validated output. Cloudinary stores uploads. The app is hosted on Vercel in Sydney (syd1).
| Path | What's there |
|---|---|
app/ | Pages: Home, unit/[code] (feed and study plan), communities, interest/[slug], mentors/[unit] (matching and the mentor page), mentor (hub and apply), sessions/[id], messages, notifications, profile/[id], search, review, welcome, privacy |
app/api/ | One folder per API route. Each checks who is asking through lib/actor.js and validates input with zod |
lib/ | Shared rules: rank.js (feed), sessions.js (session states), membership.js (fees and guarantee), enrich.js (post AI and moderation), mentor-ai.js (matching and the AI mentor), study-plan.js, sponsored.js, seed.js (demo data) |
components/ | UI components |
supabase/ | schema.sql and the migrations |
tests/ | Unit, permission and AI test sets |
Docs/, Worklog/ | How it works, the architecture file map, and the change log |
u- ids; demo personas have p1 to p14.