ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기psychologist training avatar
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Therapist training platform: practice voice therapy with preset patient avatars (disorder-specific personas), then generate an admin-only performance report after each session.
• Auth with roles: therapist | admin (Supabase Auth + profiles)
• Preset avatars with persona prompts, ideal-session guidelines, and scoring rubric
• Voice-first sessions (browser speech recognition + speech synthesis), 40-minute max
• Patient replies via Vercel AI Gateway / AI SDK (heuristic fallback if no AI key)
• Post-session assessment stored with RLS — admins only can read reportsREADME 전문 보기 ↗Vtraining (Virtual Training; formerly VPsych) is a therapist training platform: practice voice therapy with preset patient avatars (disorder-specific personas), then generate an admin-only performance report after each session.
therapist | admin (Supabase Auth + profiles)AI_GATEWAY_API_KEY)cp .env.example .env.local
Required:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYAI_GATEWAY_API_KEY (optional but recommended for realistic patient replies + assessments)Required for report generation (choose one):
REPORT_WRITE_KEY — the HMAC key the app uses to sign report writes. It
must equal the Postgres Vault secret report_write_key (see
supabase/migrations/20260730181421_harden_session_reports.sql). The app signs
${sessionId}\n${narrative}\n${scoresJson}\n${excerptsJson} with HMAC-SHA256
and passes it as p_sig to create_session_report.SUPABASE_SERVICE_ROLE_KEY — if set, /api/sessions/[id]/end inserts
the report with a service-role client instead of the signed RPC.If neither is set, session end returns a 500 and no report is written.
npm install
npm run dev
/signup. Grant admin in SQL:update public.profiles set role = 'admin' where id = '<user-uuid>';
The
*.vpsych.testdemo accounts are intentionally disabled (banned_untilset) by the security-hardening migration and must not be used for live access.
The Postgres schema, RLS policies, SECURITY DEFINER RPCs, and the report-signing
contract live in supabase/migrations/ and mirror what is deployed to the live
project. The report/message contract is defined in
20260730181421_harden_session_reports.sql:
create_session_report(uuid, text, text, text, text) — HMAC-signed, insert-onceinsert_assistant_message / insert_system_message — RLS-safe writes for
non-user message rolessession_has_report — idempotency check callable by the session ownerThe application calls these RPCs; it never inserts assistant/system messages
directly (RLS permits only role = 'user' on session_messages).
Auth emails (signup confirmation, recovery, magic link, email change) are sent
through Resend via a Supabase Auth Send Email hook — the edge function in
supabase/functions/send-email-hook. The hook links to the app-hosted
/auth/confirm?token_hash=…&type=… route (which calls verifyOtp) so recovery
does not depend on the Supabase Auth Site URL / redirect allow-list. Password
reset then continues on /auth/reset-password.
Deploy: supabase functions deploy send-email-hook --no-verify-jwt --project-ref rrzudbkxigeavfdnidnm
Activation (dashboard): verify a sending domain and set AUTH_EMAIL_FROM; enable
Authentication → Hooks → Send Email pointing at
https://rrzudbkxigeavfdnidnm.supabase.co/functions/v1/send-email-hook; then set
edge-function secrets RESEND_API_KEY, SEND_EMAIL_HOOK_SECRET, AUTH_EMAIL_FROM,
and optionally APP_URL=https://www.vtraining.app. Until enabled, Supabase's
default mailer is used, so the live signup flow is unaffected.
Also set Authentication → URL Configuration Site URL to
https://www.vtraining.app (not http://localhost:3000) and allow
https://www.vtraining.app/** in Redirect URLs — required for any flow that still
uses GoTrue /auth/v1/verify redirects (default mailer / PKCE callback).
create_session_report is a security-definer RPC that writes reports; only is_admin() policies allow reading session_reports.user_metadata — roles live in profiles.role.auth.uid() / is_admin() in (select …) so they evaluate
once per statement (see 20260731110213_optimize_rls_initplan_and_fk_index.sql).npm run dev — local developmentnpm run build — production buildnpm run lint — ESLint