# Estructura de Directorios Vista general de la raiz del proyecto: ```text . |-- cloud_conversion_ui/ |-- data/ |-- docs/ |-- input/ |-- logs/ |-- prompts/ |-- references/ |-- scripts/ |-- tests/ |-- .env.example |-- .gitignore |-- README.md |-- requirements.txt |-- send.py `-- server.py ``` ## `cloud_conversion_ui/` Interfaz grafica Streamlit. ```text cloud_conversion_ui/ |-- Home.py |-- components.py |-- models.py |-- theme.py |-- pages/ `-- services/ ``` | Ruta | Uso | | --- | --- | | `Home.py` | Entrada de Streamlit. | | `pages/01_Inventario.py` | Carga, seleccion y archivado de inventarios. | | `pages/02_Catalogos.py` | Estado y actualizacion de catalogos. | | `pages/03_Ejecucion.py` | Ejecucion paso a paso de AWS/OCI. | | `pages/04_Dashboard.py` | Comparativo de costos y cobertura. | | `pages/05_Logs_Artefactos.py` | Lectura y descarga de artefactos. | | `services/pipeline_runner.py` | Adaptador que invoca scripts existentes. | | `services/inventory_files.py` | Gestion de archivos de inventario. | | `services/dashboard_data.py` | Calculos del dashboard. | | `services/artifacts.py` | Busqueda de artefactos recientes. | ## `scripts/` Scripts operativos y utilidades compartidas. ```text scripts/ |-- aws_fetch_offer.py |-- aws_eda.py |-- aws_match.py |-- oci_fetch_offer.py |-- oci_match.py |-- cloud-chat.py |-- cloud_chat_runtime.py |-- whatsapp_chatbot.py |-- whatsapp_send.py |-- whatsapp_logging.py |-- match_shared.py `-- cloud_conversion_logging.py ``` Los scripts CLI son utiles para automatizacion, reproduccion de problemas o ejecuciones sin Streamlit. ## `data/` Datos crudos, catalogos y resultados. ```text data/ |-- raw/ | |-- aws/ | `-- oci/ |-- catalog/ | |-- aws/ | `-- oci/ |-- match/ | |-- aws/ | `-- oci/ `-- eda/ `-- aws/ ``` | Ruta | Uso | | --- | --- | | `data/raw/aws/index.json` | Offer AWS EC2 descargado. | | `data/raw/oci/products.json` | Productos OCI descargados. | | `data/catalog/aws/aws_ec2_catalog.csv` | Catalogo AWS plano. | | `data/catalog/oci/oci_price_list.csv` | Catalogo OCI plano. | | `data/match/aws/` | Salidas `MATCH-AWS-*.csv`. | | `data/match/oci/` | Salidas `MATCH-OCI-*.csv`. | | `data/eda/aws/` | Reportes Markdown de EDA AWS. | Nota: `data/` puede ser grande. En este workspace pesa aproximadamente 8 GB. ## `input/` Inventarios de entrada. ```text input/ |-- done/ `-- gui_uploads/ ``` | Ruta | Uso | | --- | --- | | `input/` | Inventarios activos disponibles para CLI/GUI. | | `input/gui_uploads/` | Inventarios subidos desde Streamlit. | | `input/done/` | Inventarios procesados o archivados. | La GUI no mueve inventarios automaticamente al ejecutar matching. El archivado manual se hace desde la pagina `Inventario`. ## `logs/` Bitacoras diarias generadas por scripts: ```text logs/log_cloud_conversion_YYYYMMDD.txt ``` `logs/` esta en `.gitignore`. Revisa contenido antes de compartir. ## `prompts/` Prompts usados por matching AWS y mapeo de columnas. ```text prompts/aws_match_prompts.py ``` ## `references/` Material de referencia, notebooks y ejemplos historicos. ```text references/ |-- Pricing-oci-example.xlsx `-- aws-latest-json-eda-v1-1.ipynb ``` ## `tests/` Suite de pruebas Pytest. Incluye pruebas para: - AWS/OCI fetch y match. - Cloud Chat. - WhatsApp. - Utilidades compartidas. - Interfaz grafica y servicios UI. Comando: ```bash python -m pytest -q ``` ## Archivos raiz | Archivo | Uso | | --- | --- | | `README.md` | Entrada principal del proyecto. | | `requirements.txt` | Dependencias Python. | | `.env.example` | Plantilla segura de variables. | | `.gitignore` | Exclusiones de secretos, venv, logs y caches. | | `server.py` | Demo legacy Flask/Twilio. | | `send.py` | Demo legacy de envio WhatsApp. | ## Que compartir Compartir: - Codigo fuente. - Documentacion. - `.env.example`. - Datos actuales, si ya fueron revisados para uso interno. No compartir: - `.env`. - `.venv/`. - `logs/` sin revision. - Caches de Python, Pytest, Ruff o sistema. - Inventarios con informacion sensible no autorizada.