8.2. Estructura del Proyecto (Estructura de Directorios)
Para mantener la separación de responsabilidades, el ecosistema se organiza de forma estrictamente modular. A continuación se detalla el árbol de directorios actual correspondiente al cliente local (Python), el cual separa de forma clara la lógica central (Core), la persistencia (Database), y las múltiples interfaces (CLI y futura UI):
dotfiles-manager/ (Cliente Python) ├── cli/ │ ├── commands.py # Comandos de ejecución │ ├── console.py # Sistema de impresión con Rich │ ├── create.py # Creador menú parser │ ├── customs.py # Vista del menú personalizado │ └── parser.py # Parser de comandos ├── core/ │ ├── context.py # Estado persistente de los steps │ ├── pipelines.py # Orquestador secuencial del motor │ ├── reporter.py # Despachador de salida (CLI / UI / Headless) │ └── steps.py # Nodos de ejecución del pipeline ├── modules/ │ ├── database/ │ │ ├── manager.py # Getters y Setters de la base de datos │ │ └── models.py # Modelos de SQLAlchemy │ └── logger.py # Sistema de trazas y eventos ├── ui/ │ ├── forms/ # Archivos .ui de Qt Designer │ ├── interface/ # Código Python compilado desde Qt Designer │ ├── styles/ # Hojas de estilo QSS │ ├── widgets/ # Widgets personalizados de Qt │ ├── actions.py # Acciones de consulta (hostname, distro, hashes) │ ├── handler.py # QObject con señales Qt (puente hilo → UI) │ ├── main_window.py # Ventana principal (QMainWindow) │ └── worker.py # Trabajador en hilo (QThread + Pipelines) ├── resources/ # Recursos estáticos (iconos, assets) ├── version.py # Información del proyecto ├── config.py # Configuración global del entorno └── main.py # Punto de entrada (Entry point) de la app
* Nota: La estructura del repositorio correspondiente al servidor backend (Java API) se definirá y documentará en iteraciones posteriores del desarrollo.