ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Tu forma de enseñar, con nuevas posibilidades. Aportá tu experiencia docente y creá recursos interactivos con Kodu, sin barreras tecnológicas.
Translation pending
EducationTypeScript · HTMLGitHub @becodebOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Herramienta para desarrollar aplicaciones con inteligencia artificial
Translation pending
Loading the full README.
Read the full README ↗@rededucativa.edu.ar), por su lista blanca o por un enlace de invitación. Quien no pertenece a ninguna tiene una cuenta personal. Cada organización tiene su panel en /org, y el superadmin ve el consumo y el costo por organización en /admin/metricas (ver odd/tasks/organizaciones.md).RESEND_API_KEY). Sin la key, toda cuenta nueva se toma como verificada y /admin lo avisa.La vista principal de edición divide la pantalla en dos paneles sincronizados:
┌──────────────────────────────────────┬──────────────────────────────────────┐
│ PANEL IZQUIERDO: CHAT Y CONTROL │ PANEL DERECHO: VISOR Y CÓDIGO │
│ │ │
│ [ Historial ] [ Nuevo Chat ] │ Tabs: [ Vista Previa ] [ Código ] │
│ Modelo: Alpha / DeepSeek / MiniMax M3 │ URL Pública: red.edu/p/xyz123 [🔗] │
│ ──────────────────────────────────── │ ──────────────────────────────────── │
│ Mensajes del Docente / IA │ │
│ (Solo explicaciones y cambios) │ Iframe Sandbox │
│ │ (Renderizado reactivo │
│ [ Escribe un cambio... ] [Enviar] │ HTML + CSS + JS) │
└──────────────────────────────────────┴──────────────────────────────────────┘
Flujo de Generación:
El chat utiliza streaming (AI SDK o EventSource).
Las explicaciones de la IA aparecen en el flujo conversacional, mientras que los bloques de código se interceptan por debajo para actualizar el visor sin inundar el chat de texto técnico.
Estructura del Proyecto: Archivo único (single-file HTML/CSS/JS) inyectado dinámicamente en el iframe mediante srcdoc.
Pestaña de Código: Editor integrado (Monaco Editor o CodeMirror) que permite inspección o edición manual directa si el docente lo desea.
Persistencia: Historial de conversaciones y versiones del código asociadas al ID del proyecto en la base de datos.
Reglas Base del Sistema:
Inyección automática de Tailwind CSS por CDN.
Inclusión de librerías didácticas estándar (KaTeX para matemáticas, Lucide Icons para iconografía, Canvas-Confetti, Chart.js).
Instrucciones estrictas para no requerir instalación de módulos locales ni pasos de empaquetado.
Configuración por Usuario:
Panel de configuración de reglas y contexto accesible desde la cuenta del docente.
Capacidad de crear, visualizar, editar y alternar (on/off) directivas personalizadas (ej. "Usar siempre paleta de colores accesibles para primaria", "Redactar consignas en tono lúdico").
app.red.edu/p/[slug-o-id]) optimizado para proyectar o compartir directamente con estudiantes.| Componente | Herramientas Seleccionadas |
|---|---|
| Frontend & UI | Next.js / Astro con React, Tailwind CSS, Vercel AI SDK (o streaming hooks nativos). |
| Editor de Código | @monaco-editor/react o @uiw/react-codemirror. |
| Backend & Base de Datos | Node/Bun (Fastify o API Routes), PostgreSQL / SQLite con Drizzle u ORM equivalente para usuarios, proyectos y chats. |
| Generación de Miniaturas | Puppeteer o @vercel/og para captura automatizada de la pantalla del iframe al guardar. |
| Motor de IA | Proveedores OpenAI-compatible con streaming y tool calling: Alpha, DeepSeek y MiniMax M3 en GMI Cloud. |
pizarron (matemática), cuaderno (lengua), laboratorio (ciencias naturales), atlas (sociales), recreo (inicial/primer ciclo), plano (tecnología/robótica), noche (astronomía) y huerta (biología/ecología).<meta name="kodu-tema" content="ID"> en el HTML. El servidor inserta el bloque canónico (Tailwind configurado con la paleta del tema, tipografías, Lucide con dibujo automático) al guardar y al emitir el HTML final — el recurso publicado en /p/[slug] se ve igual que en el editor. Al armar el prompt, ese mismo bloque se pliega a un comentario corto, así el modelo no repite ~40 líneas en cada turno.<i data-lucide="nombre">, se dibuja solo), sin otras librerías de íconos.src/lib/ai/prompt.ts): prohibidos los emojis y los degradados en cualquier parte del recurso; nada de cdnjs (bloqueado por la CSP de /p/, sólo jsdelivr o unpkg)./admin/motores y AI_VISION=true en el entorno. Excluyente con varias versiones (con varias versiones no corre, para no triplicar costo y tiempo)./admin/usuarios/[id], interruptor "Acceso prime") — siempre que el interruptor general también esté prendido en /admin/generacion./admin/motores; queda deshabilitada en el motor predeterminado, que nunca puede ser exclusivo).POST /api/projects/[id]/variant), no reenvía el HTML por el chat./admin/generacion, para prenderlo a medida que haya presupuesto de API: "Revisión automática para todos", "A fondo" para todos y "Varias versiones para todos".SQL puro (producción corre prisma migrate deploy, sin tsx):
20260930000000_regla_librerias_kit — corrige en datos la regla sembrada "Librerías permitidas por CDN" para que no contradiga al kit (Tailwind/Lucide/confetti a mano).20261001000000_deshacer — tabla ProjectSnapshot y columna ChatMessage.undoneAt.20261002000000_modo_prime — AppSettings.primeEnabled / autoReviewForAll / deepModeForAll / versionsForAll, User.primeAccess, AiModel.primeOnly.20261003000000_versiones_de_recurso — tabla ResourceVariant y columna ChatMessage.chosenVariantIndex.e2e/mock-proveedor.ts levanta un servidor HTTP liviano que habla el mismo dialecto SSE que un proveedor real (texto, tool call por chunks, cortes de red simulados), sin necesitar ninguna clave.docker compose up -d db, npm run dev en el puerto 3000), npx tsx e2e/<archivo>.ts. Cada script deja o reusa su propio AiProvider/AiModel mock (kind: "kodu-mock-t3") en la base de desarrollo, para no tener que cargar una key real en cada chequeo.e2e/unidad*.ts (unitarias con node:assert, sin navegador), e2e/m*.ts (panel de administración y flujos generales de la plataforma) y e2e/t3-*.ts a e2e/t10-*.ts (kit, vista previa progresiva, Deshacer, modo prime, velocidad, revisión automática y visual, varias versiones, y la guardia de invariante de e2e/t10-docente-comun.ts que confirma que un docente sin marcar ve exactamente lo mismo con el interruptor general de prime apagado o prendido)./app/taller). Sirve para quien tiene el tema pero no sabe qué herramienta usar, y para quien ya se la imagina y quiere pedirla bien. Detalle completo en odd/tasks/taller-de-ideas.md.IDEATION (sin recurso) y aparece como "Taller de ideas" en /admin/metricas.20261011000000_taller_de_ideas — tablas IdeaSession, IdeaMessage, IdeaAsset y el valor IDEATION en UsagePurpose.npx tsx e2e/unidad-taller.ts (sin base) y npx tsx e2e/taller-de-ideas.ts (con la pila de desarrollo y el proveedor simulado).simulado para local/e2e) y Factura C (adaptador simulado/arca). Detalle completo en odd/tasks/planes-y-cobros.md.npm run test:cobros corre todo de punta a punta (unitarios + e2e + el recorrido completo de un docente individual y de una institución). Paso a paso manual, viaje en el tiempo con SQL y la checklist de "antes de salir a producción": docs/probar-cobros.md.