Proyecto integrador 2 ‐ Entregables - slafontd/Shared-Reasoning GitHub Wiki
Entrega sprint 0
Muchas personas afirman efectos positivos de la IA generativa sobre su proceso de aprendizaje y pensamiento independiente, por eso nuestra solución es unificar 2 software que convierte imágenes de esquemáticos eléctricos en instrucciones paso a paso para armar circuitos en una protoboard física en una plataforma educativa que conecte la comprensión del circuito con su implementación física mediante la interacción humano-IA. El sistema unificado permitirá a estudiantes y profesores de electrónica subir una imagen de cualquier diagrama eléctrico, recibir instrucciones visuales detalladas paso a paso, ver en tiempo real cómo se va armando el circuito en una protoboard virtual, acceder a renders 3D que faciliten la comprensión espacial, colaborar en tiempo real, validar que sus montajes sean correctos antes de armar físicamente
| Nombre Completo | Correo Institucional | Foto | Rol | Responsabilidades |
|---|---|---|---|---|
| Santiago Lafont Diaz | [email protected] | ![]() |
Líder Técnico / Arquitecto | Diseño de arquitectura, decisiones de tecnología, integración de módulos |
| Yilmar David Murillo Jordan | [email protected] | ![]() |
Desarrollador Backend | Desarrollo de agentes, FastAPI, APIs REST, procesamiento de imágenes |
| Samuel Orozco Valencia | [email protected] | ![]() |
Desarrollador Frontend | UI/UX, React, canvas interactivo, render 3D |
| Mariana Patiño Arboleda | [email protected] | ![]() |
QA / Validación | Pruebas de funcionalidad, casos de prueba, validación con usuarios |
Estudiantes de pregrado en cursos de electrónica analógica y digital, con un nivel bajo a intermedio, que tengan dificultad para interpretar esquemáticos y entender la correspondencia entre plano teórico y montaje físico tendrán la ventaja de un aprendizaje guiado, visual y paso a paso
Docentes de circuitos, electrónica y laboratorios con este software mermará tiempo dedicado a explicar montajes repetitivamente; dificultad para estandarizar instrucciones, a demás tendrán una herramienta didáctica escalable, consistente y con evidencia de aprendizaje
Ingenieros, técnicos de campo, makers y hobbyistas los cuales tienen un nivel intermedio a avanzado que tengan el problema de falta de documentación visual para prototipos rápidos con el programa tendrán la oportunidad de generación automática de documentación de montaje
┌─────────────────────────────────────────────────────────────┐
│ USUARIOS FINALES │
│ (Estudiantes, Profesores, Técnicos) │
└──────────────────────┬──────────────────────────────────────┘
│
┌──────────────┴──────────────┐
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ APLICACIÓN WEB │ │ NAVEGADOR WEB │
│ Frontend │◄──────►│ (Chrome, Safari,│
│ (React + Vite)│ │ Firefox, Edge) │
└────────┬─────────┘ └──────────────────┘
│
│ (HTTP/WebSocket)
▼
┌──────────────────────────────────────────┐
│ BACKEND (FastAPI) │
│ ┌──────────────┐ ┌──────────────────┐ │
│ │ Extractor │ │ Planner Agent │ │
│ │ Agent │ │ (LangGraph) │ │
│ └──────┬───────┘ └────────┬─────────┘ │
└─────────┼────────────────────┼───────────┘
│ │
┌─────▼─────┐ ┌─────▼──────┐
│ Gemini 2.0│ │ Librería │
│ Flash API │ │ de Comp. │
└───────────┘ └────────────┘
| Sistema | Tipo | Descripción | Interacción |
|---|---|---|---|
| Cámara/Teléfono | Hardware | Dispositivo para capturar imagen del esquemático | Captura de entrada |
| Protoboard física | Hardware | Tablero de prototipado de circuitos | Referencia visual |
| Gemini 2.0 Flash | Software (IA) | Modelo multimodal para análisis de imágenes | Análisis de esquemáticos |
| LangGraph | Software | Framework de orquestación de agentes | Coordinación de agentes |
| Konva.js | Software | Librería de canvas para visualización interactiva | Render dinámico |
| Base de datos | Software | Almacenamiento de componentes, esquemáticos y sesiones | Persistencia |
- Flujo del Estudiante
- Acceso: Inicia sesión en la plataforma web
- Carga: Sube una foto de un esquemático (asignado por profesor o autoexploración)
- Análisis: Espera a que el sistema analice la imagen (5-15 segundos)
- Visualización: Ve instrucciones paso a paso en la pantalla
- Seguimiento: Arma el circuito siguiendo los pasos animados
- Validación: Puede marcar como "completado" y ver retroalimentación
- Historial: Guarda esquemáticos para revisar posteriormente
- Flujo del Profesor
- Preparación: Carga esquemáticos que desea usar en clase
- Configuración: Define parámetros de la sesión (tiempo, dificultad, etc.)
- Asignación: Comparte enlace de esquemáticos con estudiantes
- Monitoreo: Ve en tiempo real el progreso de cada estudiante
- Intervención: Puede enviar hints o correcciones si nota dificultades
- Evaluación: Accede a reportes de desempeño y errores comunes
- Iteración: Usa datos para mejorar futuras sesiones
- Flujo del Técnico/Hobbyista
- Búsqueda: Carga esquemático de un proyecto que quiere replicar
- Análisis: Obtiene instrucciones automáticas para el montaje
- Documentación: Descarga guía PDF con instrucciones para compartir
- Construcción: Arma el circuito de manera independiente
- Referencia: Usa la plataforma como documentación rápida
| Término | Definición | Relación con el Proyecto |
|---|---|---|
| Extractor Agent | Agente de IA especializado en analizar imágenes de esquemáticos y extraer información estructurada | Primera fase del pipeline: convierte imagen → netlist JSON |
| Planner Agent | Agente de IA que convierte la topología del circuito en instrucciones paso a paso y coordenadas físicas | Segunda fase del pipeline: convierte netlist → instrucciones ejecutables |
| LangGraph | Framework de orquestación que coordina múltiples agentes de IA en una secuencia | Tecnología base para coordinar los dos agentes |
| Gemini 2.0 Flash | Modelo multimodal de Google especializado en visión y análisis de imágenes | Motor de análisis de esquemáticos del Extractor Agent |
| FastAPI | Framework de desarrollo web moderno para APIs REST en Python | Backend del sistema |
| React | Librería JavaScript para construcción de interfaces de usuario interactivas | Frontend de la plataforma web |
| Konva.js | Librería para renderizado de gráficos 2D interactivos en canvas HTML | Tecnología del canvas interactivo |
| Hints / Sugerencias | Ayudas contextuales que el profesor o sistema pueden enviar durante el montaje | Mejora la experiencia de aprendizaje |
| API REST | Interfaz para comunicación entre frontend y backend usando protocolos HTTP estándares | Arquitectura de comunicación cliente-servidor |
| WebSocket | Protocolo de comunicación bidireccional en tiempo real | Para colaboración en vivo y monitoreo del profesor |
| Base de Datos | Sistema de almacenamiento persistente para usuarios, esquemáticos y sesiones | Infraestructura de datos |
| MVP (Minimum Viable Product) | Versión mínima del producto con funcionalidades esenciales | Alcance del Sprint 0, Unificación y análisis básico |
Los requisitos funcionales fueron obtenidos a partir de los requerimientos proporcionados por el product owner para la unificación de los sistemas Paralelo y Elektra.
Para su refinamiento se utilizaron técnicas de Elicitación de Requerimientos:
Análisis de los requerimientos proporcionados por el cliente. Análisis de los dos sistemas existentes (Paralelo y Elektra). Identificación de actores y roles: administrador, profesor y estudiante. Identificación de funcionalidades comunes y complementarias entre ambos sistemas. Clasificación de los requerimientos en épicas e historias de usuario. Definición de criterios de aceptación para cada historia de usuario.
- Tinkercad circuits: esta aplicación ofrece circuitos virtuales, Arduino, simulaciones, tutoriales. El precio de está es gratis. La principal diferencia con nosotros es que no parte necesariamente de un esquemático para generar automáticamente un montaje físico guiado.
-CircuitLab: es un editor de simulación de circuitos. El precio de la app está desde US$24/año Micro licencias académicas disponibles. Se diferencia de nosotros en que ellos tienen un enfoque más fuerte en esquemas/simulación no en guía educativa de montaje físico generada por IA.
-Multisin Live: Ofrece esquemáticos y simulación SPICE online. El precio es gratis. Se diferencia a nosotros por que esta orientado principalmente a simulación, no a transformar automáticamente un esquema en una guía de protoboard mediante interacción Humano-IA.
Link del backlog: https://github.com/users/slafontd/projects/8/views/1?layout=board
Las historias de usuario ya están en el backlog con todo lo pedido en la entrega como los detalles de las historias de usuario con sus respectivos criterios de aceptación
El MVP cubre el flujo completo de una plataforma educativa asistida por IA: acceso diferenciado para estudiantes y profesores/admin desde una interfaz web (React, Vite, TypeScript), gestión de cursos y progreso, un canvas interactivo (Konva) para visualizar esquemas, un backend en FastAPI que centraliza autenticación, lógica de dominio y procesamiento, y una capa de IA (LangChain/LangGraph) que ofrece tutoría personalizada mediante RAG sobre contenido embebido en PostgreSQL. No incluye, en esta primera versión, módulos externos a lo representado en el diagrama (pagos, apps móviles nativas u otras integraciones fuera de Google GenAI/OpenAI).
Usuarios: dos roles principales, Estudiante y Profesor/Admin, con permisos diferenciados gestionados por Auth & Roles. Tiempos esperados: respuestas de API REST en el orden de cientos de milisegundos; las peticiones que involucran IA (Tutor IA, RAG, modelos multimodales) pueden tomar más tiempo por depender de servicios externos (Google GenAI/OpenAI). Carga: el sistema debe soportar múltiples sesiones concurrentes de estudiantes trabajando sobre cursos y canvas al mismo tiempo, con picos en horarios de clase. Seguridad: autenticación basada en JWT y Supabase Auth; validación de roles antes de acceder a la lógica de dominio. Escalabilidad: arquitectura contenedorizada (Docker/Compose) que permite escalar de forma independiente el frontend, el backend+IA y la base de datos. Usabilidad: interfaz educativa unificada (cursos, progreso, chat) más un canvas visual para esquemas. Disponibilidad/Observabilidad: contenedor dedicado de logs y monitoreo para trazabilidad del sistema
Entidades principales del negocio: Usuario (con rol Estudiante o Profesor/Admin), Curso, Progreso (asociado a Usuario y Curso), Esquema (representación visual gestionada por el Canvas Konva), Tarea (generada en el módulo de Procesamiento), Sesión de Chat/Tutoría IA (interacción entre Usuario y Tutor IA), y Documento/Embedding (contenido indexado vía pgvector para el RAG). Relaciones clave: un Usuario tiene un rol y accede a varios Cursos; cada Curso agrupa Progreso y Esquemas; el Tutor IA consume el histórico de Progreso y los Embeddings relacionados al Curso para dar feedback contextualizado.
Frontend (React, Vite, TS): Interfaz educativa (cursos, progreso, chat) y Canvas Konva (React-Konva) para esquemas. Backend (Python, FastAPI): API Gateway REST (routers/Pydantic) → Auth & Roles (JWT, Supabase Auth) → Dominio educativo (usuarios, cursos, progreso) → Procesamiento (esquemas, render, tareas). Capa de IA (LangChain, LangGraph): Orquestador LangGraph (agentes, estado, tools) → Tutor IA (orientación y feedback); en paralelo, RAG & Embeddings (pgvector, chunking) → Modelos multimodales (Google GenAI/OpenAI). Capa de Datos (PostgreSQL, Supabase): SQLAlchemy ORM (modelos, Alembic) → PostgreSQL (usuarios, progreso) y Supabase (storage, auth). Despliegue (Docker/Compose): contenedor de Frontend, contenedor de API+IA, contenedor de PostgreSQL y contenedor de Logs & Monitoreo.
se optó por una arquitectura en capas con procesamiento en paralelo desde el backend hacia IA y Datos, evitando que las consultas de dominio dependan directamente de la disponibilidad de los modelos de IA. La conexión cruzada vía pgvector entre RAG y PostgreSQL permite reutilizar la misma base de datos relacional para búsquedas vectoriales, reduciendo la complejidad operativa (no se requiere una base de datos vectorial separada). La contenedorización (Frontend, API+IA, PostgreSQL, Logs) responde al requisito no funcional de escalabilidad y disponibilidad, permitiendo reiniciar o escalar cada pieza sin afectar a las demás.
Evidencias de reuniones: https://drive.google.com/drive/folders/1S8vFvi_wfydEsojPVhImXIMYrPHnCMHJ?usp=sharing



