Proyecto integrador 2 ‐ Entregables - slafontd/Shared-Reasoning GitHub Wiki

Entrega sprint 0

Sección 1 - Generalidades del proyecto

1.1 Descripción del problema y su solución software

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


1.2 Personas y roles del proyecto

Nombre Completo Correo Institucional Foto Rol Responsabilidades
Santiago Lafont Diaz [email protected] Image Líder Técnico / Arquitecto Diseño de arquitectura, decisiones de tecnología, integración de módulos
Yilmar David Murillo Jordan [email protected] WhatsApp Image 2026-08-13 at 11 13 31 PM Desarrollador Backend Desarrollo de agentes, FastAPI, APIs REST, procesamiento de imágenes
Samuel Orozco Valencia [email protected] WhatsApp Image 2026-08-13 at 9 20 22 PM Desarrollador Frontend UI/UX, React, canvas interactivo, render 3D
Mariana Patiño Arboleda [email protected] WhatsApp Image 2026-08-12 at 2 37 31 PM QA / Validación Pruebas de funcionalidad, casos de prueba, validación con usuarios

1.3 Público Objetivo y Contexto

Público Objetivo

1. Estudiantes de Ingeniería Electrónica

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

2. Profesores de Electrónica

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

3. Profesionales y Técnicos

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

Contexto del Sistema

Sistemas que Interactúan

┌─────────────────────────────────────────────────────────────┐
│                   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.   │
    └───────────┘        └────────────┘

Hardware y Software Relacionados

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

1.4 Descripción del proceso de interacción

  • Flujo del Estudiante
  1. Acceso: Inicia sesión en la plataforma web
  2. Carga: Sube una foto de un esquemático (asignado por profesor o autoexploración)
  3. Análisis: Espera a que el sistema analice la imagen (5-15 segundos)
  4. Visualización: Ve instrucciones paso a paso en la pantalla
  5. Seguimiento: Arma el circuito siguiendo los pasos animados
  6. Validación: Puede marcar como "completado" y ver retroalimentación
  7. Historial: Guarda esquemáticos para revisar posteriormente
  • Flujo del Profesor
  1. Preparación: Carga esquemáticos que desea usar en clase
  2. Configuración: Define parámetros de la sesión (tiempo, dificultad, etc.)
  3. Asignación: Comparte enlace de esquemáticos con estudiantes
  4. Monitoreo: Ve en tiempo real el progreso de cada estudiante
  5. Intervención: Puede enviar hints o correcciones si nota dificultades
  6. Evaluación: Accede a reportes de desempeño y errores comunes
  7. Iteración: Usa datos para mejorar futuras sesiones
  • Flujo del Técnico/Hobbyista
  1. Búsqueda: Carga esquemático de un proyecto que quiere replicar
  2. Análisis: Obtiene instrucciones automáticas para el montaje
  3. Documentación: Descarga guía PDF con instrucciones para compartir
  4. Construcción: Arma el circuito de manera independiente
  5. Referencia: Usa la plataforma como documentación rápida

Glosario de términos

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

Sección 2 - Determinación de necesidades

2.1 Requisitos funcionales

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.

2.2 Análisis de la competencia

  • 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.


Sección 3 - User story mapping y Backlog del producto

3.1 Story mapping

image

3.2 Backlog

Link del backlog: https://github.com/users/slafontd/projects/8/views/1?layout=board

3.3 Sprint 1 planning

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

Diseño de arquitectura

4.1 Alcance

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).

4.2 Dimensiones del sistema y Requisitos no funcionales

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

4.3 Modelado del dominio

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.

4.4 Descripción de los componentes

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.

4.5 Diagrama de componentes del sistema

image

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

⚠️ **GitHub.com Fallback** ⚠️