4.0 KiB
Estructura de Directorios
Vista general de la raiz del proyecto:
.
|-- 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.
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.
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.
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.
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:
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.
prompts/aws_match_prompts.py
references/
Material de referencia, notebooks y ejemplos historicos.
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:
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.