Añadir Home

Miguel 2025-02-08 19:37:03 -03:00
commit 31936e0c38
1 changed files with 117 additions and 0 deletions

117
Home.md Normal file

@ -0,0 +1,117 @@
# Gestor de Configuraciones y Ejecución de Scripts
## 1. Resumen y Objetivo
El software es una aplicación web desarrollada con **Flask** y **Tailwind CSS** (vía [cdn.tailwindcss.com](https://cdn.tailwindcss.com)), diseñada para ejecutarse en una única PC con Windows sin requerir autenticación. La aplicación tiene dos objetivos principales:
- **Gestión de Configuraciones:**
Permite editar y mantener configuraciones en tres niveles:
- **Nivel 1:** Configuración general (ej. modelo LLM, API keys).
- **Nivel 2:** Configuración específica para cada grupo de scripts.
- **Nivel 3:** Configuración del entorno de trabajo donde se ejecutan los scripts.
- **Ejecución de Scripts:**
Facilita la ejecución de scripts Python agrupados en directorios, pasando como parámetros las configuraciones de los tres niveles y capturando su salida en un bloque de logs.
---
## 2. Requisitos Funcionales
### 2.1 Gestión de Configuraciones
La aplicación gestiona tres niveles de configuración:
#### Nivel 1 Configuración General
- **Propósito:**
Almacenar parámetros globales (ej. modelo LLM, API keys).
- **Archivos:**
- `data.json`: Contiene los valores actuales.
- `esquema.json`: Define la estructura y validaciones.
- **Ubicación:**
Directorio `/data`.
#### Nivel 2 Configuración del Grupo de Scripts
- **Propósito:**
Parámetros específicos para cada grupo de scripts (por ejemplo, rutas y opciones de ejecución).
- **Archivos:**
- `data.json`: Configuración específica de cada grupo, ubicado en
`backend/script_groups/{script_groups_name}`.
- `esquema.json`: Archivo único que define el esquema común para todos los grupos, ubicado en
`backend/script_groups/`.
- **Archivo de Directorio de Trabajo:**
La cadena de texto que indica el camino al directorio de trabajo se almacena en un archivo separado, por ejemplo, `work_dir.txt`, ubicado en
`backend/script_groups/{script_groups_name}/work_dir.txt`.
#### Nivel 3 Configuración del Directorio de Trabajo
- **Propósito:**
Almacenar parámetros específicos del entorno de trabajo donde se ejecutan los scripts.
- **Archivos:**
- `data.json`: Contiene la configuración del directorio de trabajo.
- `esquema.json`: Define la estructura y validaciones para este nivel, ubicado en
`backend/script_groups/{script_groups_name}`.
- **Nota:**
La cadena del directorio de trabajo **no se almacena en este nivel**, ya que se gestiona desde el Nivel 2 en un archivo separado.
---
### 2.2 Ejecución de Scripts
- **Detección de Scripts:**
Cada grupo de scripts, ubicado en `backend/script_groups/{script_groups_name}`, contiene archivos Python nombrados `x1.py`, `x2.py`, ..., `xn.py`.
- **Descripción de Scripts:**
Se extrae una breve descripción de cada script (por ejemplo, del docstring o comentario inicial).
- **Ejecución:**
Cada script se ejecuta mediante un botón "Ejecutar" que le pasa como parámetros los datos actuales de los tres niveles (1, 2 y 3).
- **Captura de Salida:**
Toda la salida que se genere en consola durante la ejecución se redirige al bloque de logs de la aplicación.
---
### 2.3 Bloque de Logs
- **Visualización:**
Un área en la página principal muestra en tiempo real la salida de la ejecución de los scripts y otras actividades.
- **Acción:**
Un botón "Limpiar" permite borrar el contenido del log.
---
### 2.4 Persistencia
- **Combo List:**
La selección del grupo de scripts se mantiene persistente entre recargas de la página.
- **Directorio de Trabajo:**
La ruta al directorio de trabajo se almacena en `backend/script_groups/{script_groups_name}/work_dir.txt` y se mantiene persistente.
---
## 3. Estructura de Archivos y Directorios
La organización de archivos y directorios es la siguiente:
```plaintext
/data
├── data.json # Configuración general (Nivel 1)
└── esquema.json # Esquema para Nivel 1
/backend
└── script_groups
├── esquema.json # Esquema común para Nivel 2 (configuración del grupo)
├── {script_groups_name_1}
│ ├── data.json # Configuración del grupo (Nivel 2)
│ ├── work_dir.txt # Cadena de texto con el directorio de trabajo
│ ├── x1.py # Script 1
│ ├── x2.py # Script 2
│ └── esquema.json # Esquema para Nivel 3 (configuración del directorio de trabajo)
├── {script_groups_name_2}
│ ├── data.json # Configuración del grupo (Nivel 2)
│ ├── work_dir.txt # Cadena de texto con el directorio de trabajo
│ ├── x1.py
│ └── esquema.json # Esquema para Nivel 3
└── ... (otros grupos)
/(Directorio de Trabajo Variable)
└── data.json # Configuración del directorio de trabajo (Nivel 3)