ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.