v1.0 Stable • Python Fundamentals & OOP
EduBot Forest Studio es un Entorno de Desarrollo Integrado (IDE) visual y local, diseñado específicamente como software EdTech (Tecnología Educativa). Su misión principal es cerrar la brecha cognitiva entre la programación visual (tipo bloques) y la sintaxis de texto puro, permitiendo a los estudiantes de secundaria y nivel universitario aprender Fundamentos de Python y Programación Orientada a Objetos (POO) de manera intuitiva, segura y sin necesidad de conexión a internet.
- ¿Qué es EduBot Forest Studio?
- El Paradigma: Programación en Bosques
- Público Objetivo y Casos de Uso
- Módulos Principales (EdTech)
- Arquitectura Técnica del Sistema
- Guía de Instalación y Despliegue
- Créditos y Licencia
En la enseñanza tradicional de la informática, los estudiantes suelen enfrentarse a una curva de aprendizaje pronunciada al saltar de herramientas de arrastrar y soltar (como Scratch) a entornos de desarrollo profesionales basados en texto, donde un simple error de indentación o tipografía puede causar frustración severa.
EduBot resuelve este problema al ofrecer un entorno híbrido. El estudiante construye la lógica de su programa orquestando un "Bosque" de nodos interconectados. En tiempo real, el sistema lee esta orquestación visual y genera código Python 100% puro y estructurado. El entorno permite ejecutar ese código en un Sandbox (caja de arena) seguro, leer los resultados en una terminal interactiva y recibir correcciones de sintaxis asistidas.
EduBot está diseñado con una premisa fundamental: Accesibilidad Total Offline. Reconociendo las limitaciones de infraestructura en muchas instituciones latinoamericanas, el software empaqueta su propio motor de Chromium, base de datos encriptada y entorno de ejecución, garantizando que un laboratorio de computación entero pueda funcionar sin un solo byte de conexión a internet.
EduBot introduce el concepto pedagógico de Programación en Bosques (Forest Programming Paradigm), alejándose del concepto de "bloques de rompecabezas" tradicionales.
En lugar de apilar bloques verticalmente de forma rígida, el estudiante planta "Semillas" (Nodos) en un lienzo infinito bidimensional.
- Las Raíces (Conexiones de Entrada): Reciben datos de otras estructuras.
- Las Ramas (Conexiones de Salida): Definen el flujo de ejecución o envían datos procesados.
- La Topología del Bosque: Define el alcance (Scope). A diferencia del código escrito donde la indentación es abstracta, en EduBot un ciclo
Foro una claseClassenvuelve visualmente a sus "hojas", haciendo que conceptos complejos como la herencia, la instanciación de objetos, el parámetroselfy la encapsulación sean tangibles y observables geométricamente.
Además, la composición y estructura de la lógica dentro de la propuesta de la programación visual en bosques, cambia a como está planteado en la programación en bloques tradicional, para poder adaptar fielmente la abstracción compleja de la Programación Orientada a Objetos y hacerlo visualmente intuitivo y comprensible para quienes estén empezando.
Existen dos orientaciones dentro del lienzo para la construcción y orden de la lógica en EduBot al orquestar visualmente el código:
-
Eje Horizontal (Izquierda a Derecha) para la Lógica de Construcción: Este eje permite al estudiante modelar gráficamente la composición y jerarquía de los objetos. Al enlazar un nodo principal o padre (como una Clase) con nodos adyacentes o también llamados hijos (Como una función o variable) hacia la derecha, se definen los atributos, propiedades y métodos encapsulados, estableciendo visualmente la estructura fundamental del componente.
-
Eje Vertical (De Arriba hacia Abajo) para el Orden de Ejecución: Este eje gestiona la dimensión temporal y el flujo del algoritmo. Las conexiones dispuestas verticalmente determinan la secuencia cronológica en la que el intérprete ejecutará las instrucciones, facilitando la comprensión de anidamientos, estructuras de control y llamadas a funciones dentro de una misma instancia.
Este paradigma y enfoque en la progrmación visual permite que el cerebro del estudiante asimile la lógica algorítmica (diagramas de flujo) y la Programación Orientada a Objetos simultáneamente, viendo cómo interactúan las clases y los métodos antes de preocuparse por si olvidaron colocar dos puntos (:) al final de una línea.
EduBot Forest Studio está estructurado para atender a dos perfiles principales en el ecosistema educativo:
- Gestión Centralizada: Ideal para docentes que necesitan llevar un control estricto del progreso de sus alumnos. EduBot incluye un panel de control oculto bajo llave maestra (root).
- Auditoría Offline: Permite registrar, editar y auditar calificaciones localmente en las computadoras del laboratorio, vinculadas a retos específicos ("Pruebas o Exámenes").
- Principiantes Absolutos: Para quienes escriben su primera línea de código y necesitan entender las estructuras de control (Condicionales, Ciclos).
- Estudiantes Intermedios: Aquellos que están haciendo la transición a la Programación Orientada a Objetos (POO) en Python y necesitan visualizar cómo se construye un Constructor (
__init__), cómo interactúan los atributos y cómo se manejan los errores (Try/Except).
EduBot no es solo un lienzo; es una suite educativa compuesta por múltiples módulos interactuando en tiempo real:
Un entorno interactivo construido sobre React Flow. Ofrece un catálogo completo de nodos clasificados:
- Fundamentos: Variables, Inputs, Prints, Castings (Int/Float).
- Matemáticas y Lógica: Operaciones aritméticas y comparadores.
- Control de Flujo: If, Elif, Else, For, While, Break/Continue.
- POO (Objetos y Funciones): Definición de Clases, Herencia, Constructores, Métodos, Atributos de instancia (
self), Returns y llamadas a funciones. - Avanzado: Manejo de excepciones (Try/Except) y un placeholder de importación de módulos (
import) para futuro manejo de librerías en caso de hacer una Suite Online.
El corazón del sistema. Un motor de traducción personalizado (basado en Abstract Syntax Trees) que es capaz de:
- Leer la orquestación topológica de los nodos e inyectar el código Python exacto con su correcta indentación.
- Tomar código escrito en Python e intentar realizar ingeniería inversa para generar los nodos visuales correspondientes.
La plataforma evita que la computadora del estudiante colapse ante errores lógicos comunes:
- Analizador Estático (Anti-Bucles Infinitos): Antes de enviar el código al procesador, un algoritmo de frontend escanea los nodos
WhileyFor. Si detecta que la condición de salida jamás se cumplirá, aborta la ejecución preventivamente, colorea el nodo en rojo y advierte al estudiante. - Lector Tipográfico Recursivo: Revisa el árbol de variables. Si el estudiante escribe "numer" en lugar de "numero", el sistema detecta el error de sintaxis antes de la ejecución y sugiere correcciones.
- Cola de Ejecución Desechable (Multiprocessing): Cada ejecución ocurre en un proceso hijo aislado que se comunica a través de tuberías RAM. Si el código falla gravemente, el profesor o estudiante puede usar el botón de SIGKILL ("Detener") para asesinar el hilo sin provocar un Deadlock en la aplicación.
- Sistemas de Login independientes para Estudiantes y Profesores.
- Archivos de base de datos (
users.json,students.json,grades.json) fuertemente encriptados con el algoritmo militar AES (Fernet). Ningún estudiante puede alterar las notas abriendo los archivos desde el explorador de Windows/Linux. - Sistema integral CRUD (Crear, Leer, Actualizar, Borrar) para gestionar aulas.
Diseñado para la inclusión:
- Modo de Fuente para Dislexia (cambia las tipografías para facilitar la lectura de caracteres confusos).
- Reducción de Movimiento visual (desactiva las animaciones de flujo para estudiantes con hiperactividad o sensibilidad visual).
- Escalado de UI y Editor de Código adaptable a proyectores o pantallas pequeñas.
EduBot sigue una arquitectura Frontend Reactivo + Backend Híbrido empaquetada como aplicación de escritorio nativa:
-
Interfaz de Usuario (Frontend): * React.js 18 (Renderizado).
-
React Flow (Motor matemático de renderizado de nodos y conexiones de curvas de Bézier).
-
Tailwind CSS (Motor de estilos por utilidad).
-
Prism.js (Resaltado de sintaxis de código en tiempo real).
-
Núcleo de Sistema (Backend):
-
Python 3.8+ (Lenguaje anfitrión).
-
Eel (Puente de comunicación asíncrona WebSocket entre Python y Javascript sin levantar un servidor web pesado tradicional).
-
Gevent & Multiprocessing (Gestión de concurrencia y ejecución de hilos).
-
Cryptography (Manejo de claves y encriptación local).
-
Motor de Renderizado:
-
El sistema levanta una instancia local incrustada de Chromium Portable, asegurando que la interfaz gráfica luzca y funcione exactamente igual en cualquier PC, sin importar si tienen un navegador desactualizado.
EduBot está preparado para su distribución offline. Si vas a compilar o ejecutar el proyecto desde el código fuente, sigue estos pasos:
- Tener instalado Python 3.8 o superior en el sistema.
- Clona o descarga el código fuente del repositorio.
- Haz doble clic en el archivo
install_dependencies.bat. - El instalador verificará Python, creará un Entorno Virtual aislado (
venv), instalará las librerías exactas (Eel,cryptography, etc.) y limpiará el caché de la máquina. - Para abrir el entorno, simplemente entra a la carpeta, activa el entorno y ejecuta:
venv\Scripts\activate
python main.py
- Clona el repositorio y abre una terminal en la ruta.
- Da permisos de ejecución e instala las dependencias:
chmod +x install_dependencies.sh
./install_dependencies.sh
- Activa y ejecuta:
source venv/bin/activate
python main.py
- Extrae el .zip de EduBotForestStudio al descargar el paquete dentro de las releases en GitHub.
- Accede a una terminal desde la carpeta de EduBot al terminar de extraer (Click derecho -> Abrir en terminal)
- Escribe en la terminal ./install.sh para instalarlo localmente
- Prueba el entorno desde el menú de Linux, en la sección de programación
Para distribuir EduBot a colegios sin necesidad de instalar Python, puedes compilarlo usando PyInstaller. Asegúrate de incluir la carpeta de Chromium portable para Windows:
pyinstaller --noconfirm --windowed --icon="web/favicon.ico" --name "EduBot" --add-data "web;web" --add-data "chromium;chromium" --add-data "docs/user/Manual de Usuario EduBot.pdf;." main.py
Desarrollado y conceptualizado por:
- Wilner Manzanares (Project Manager)
- Wilfredo García
- Dannielys Sandoval
- Rodrigo Moreno
Universidad Politécnica Territorial de Falcón "Alonso Gamero" (UPTAG) - PNF en Informática.
Este proyecto y sus manuales de usuario se distribuyen bajo la licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Eres libre de copiar, distribuir y adaptar este material para propósitos educativos y no comerciales, siempre y cuando otorgues el crédito adecuado al equipo de desarrollo y mantengas esta misma licencia en tus modificaciones.
El código del proyecto se comparte en GitHub bajo la licencia AGPLv3.0. Eres libre de tomar el código, copiar y distrubuirlo con tus propias versiones readaptadas del código fuente original, siempre y cuando mantengas esta misma licencia en tus modificaciones y compartas dicho código públicamente a favor de la comunidad Open-Source, además de abstenerce de usarlo con fines monetarios o comerciales sin consentimiento del equipo desarrollador.
"La computadora no es inteligente, es obediente. Nuestra labor es enseñarle a las nuevas generaciones cómo darle las instrucciones correctas." — EduBot Team