ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
신기술·생물권 법을 다루는 캠퍼스, AI가 수업을 처리합니다
Derecho de las Nuevas Tecnologías y Bioderecho en el Siglo XXI. Un campus que procesa las clases con IA. Desarrollado por el Laboratorio de IA, Innovación y Transformación Digital DYNTEC.
교육TypeScript · PLpgSQLGitHub @Marcusa93온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Campus digital con IA para "Derecho de las Nuevas Tecnologías y Bioderecho en el Siglo XXI" (Abogacía, Facultad de Derecho, Universidad Nacional de Tucumán). Las clases se graban y el campus las procesa con IA: resumen, placas interactivas (flashcards / quiz), versión en lenguaje simple, transcripción navegable y feedback personalizado por estudiante. El equipo docente gestiona cronograma, actividades, padrón, consultas, encuestas, debates e informes a demanda generados con IA. Documentación de arquitectura: docs/ARCHITECTURE.md · PWA/offline: docs/PWA.mdREADME 전문 보기 ↗
Campus digital con IA para "Derecho de las Nuevas Tecnologías y Bioderecho en el Siglo XXI" (Abogacía, Facultad de Derecho, Universidad Nacional de Tucumán).
Las clases se graban y el campus las procesa con IA: resumen, placas interactivas (flashcards / quiz), versión en lenguaje simple, transcripción navegable y feedback personalizado por estudiante. El equipo docente gestiona cronograma, actividades, padrón, consultas, encuestas, debates e informes a demanda generados con IA.
Documentación de arquitectura: docs/ARCHITECTURE.md ·
PWA/offline: docs/PWA.md
public/sw.js) + cola de escrituras en localStorage.git clone <repo>
cd EnsenIApp-UNT
npm install
cp .env.example .env.local # o crear .env.local a mano (ver abajo)
npm run dev # http://localhost:3000
.env.local)| Variable | Uso |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | URL del proyecto Supabase |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Clave anónima (cliente, respeta RLS) |
SUPABASE_SERVICE_ROLE_KEY | Service role (sólo server, procesos de fondo) |
OPENROUTER_API_KEY | API key de OpenRouter |
SUPABASE_PROJECT_REF | Ref del proyecto (para scripts/db.sh y gen-types.sh) |
SUPABASE_ACCESS_TOKEN | Token personal de la Management API de Supabase |
OPENROUTER_MODEL_REASONING | (opcional) override del modelo de razonamiento |
OPENROUTER_MODEL_FAST | (opcional) override del modelo rápido |
NEXT_PUBLIC_PWA_DEV | (opcional) 1 para probar el service worker en dev |
Las migraciones viven en supabase/migrations/NNN_*.sql y se aplican en orden con:
scripts/db.sh supabase/migrations/001_init.sql
scripts/db.sh supabase/migrations/002_campus_core.sql
scripts/db.sh supabase/migrations/003_recording_chunks.sql
scripts/db.sh supabase/migrations/004_integration.sql
scripts/gen-types.sh # regenera src/lib/types/database.ts desde el esquema real
scripts/db.sh -q "select ..." ejecuta una query inline (útil para inspección).
Nunca editar src/lib/types/database.ts a mano.
Crear además los buckets privados de Storage class-recordings y class-materials
(Dashboard → Storage → New bucket, sin acceso público): las policies de acceso ya
vienen en las migraciones.
npm run dev # servidor de desarrollo
npm run build # build de producción
npm run lint # eslint
npx tsc --noEmit # typecheck estricto
scripts/db.sh <sql> # ejecutar SQL contra Supabase (Management API)
scripts/gen-types.sh # regenerar tipos de la DB
scripts/push.sh [rama] # push al repo con la cuenta gh correcta
https://<tu-dominio> y http://localhost:3000.https://<project-ref>.supabase.co/auth/v1/callback.http://localhost:3000/** y https://<tu-dominio>/** a Redirect URLs
(el flujo vuelve a /auth/callback).Al ingresar, si el email del estudiante está en el roster (padrón) queda validado
y auto-inscripto; si no, entra como pendiente y el docente lo revisa en
Estudiantes → Pendientes.
.env.local
(las SUPABASE_* de Management API sólo hacen falta si se corren los scripts desde CI;
para runtime alcanzan las tres de Supabase + OPENROUTER_API_KEY).maxDuration de hasta 300 s: requiere un plan
con Fluid Compute habilitado (default en planes actuales).public/sw.js versiona el shell cacheado con la constante VERSION; subirla
cuando cambie el HTML de / o /login (ver docs/PWA.md).class-recordings
(~90 % menos de peso subido).POST /api/recordings/[id]/step avanza un paso por request (respetando el
timeout serverless) con progreso en vivo por Realtime:
uploaded → transcribing → processing → generating → ready.
Cada paso es idempotente y reintentable; los errores quedan en error_message
y processing_log.input_audio. Generación: resumen, placas interactivas y
versiones en lenguaje simple, con prompts en español y salida JSON validada con zod.src/app rutas (App Router) — ver mapa completo en docs/ARCHITECTURE.md §5
src/components ui/ (primitivas), shell/, recordings/, cards/, debates/, ...
src/lib supabase/, ai/, audio/, telemetry/, reports/, types/
supabase/migrations 001_init → 004_integration (fuente de verdad del esquema)
scripts db.sh, gen-types.sh, push.sh
public sw.js, icons/, manifest (src/app/manifest.ts)