Loading repository data…
Loading repository data…
emmaSDNZ / repository
ABM de Contactos en Python con POO, Tkinter y SQLite. Proyecto profesional que simula el ciclo de vida del software, aplicando principios SOLID, testing, modularidad y documentación formal para un portafolio de CV robusto.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
El proyecto ABM de Contactos es un sistema de gestión de contactos desarrollado en Python, aplicando Programación Orientada a Objetos (POO), con interfaz CLI y persistencia de datos en SQLite.
Este desarrollo tiene un enfoque profesional y escalable, aplicando principios SOLID, modularidad y documentación formal, simulando el flujo completo de trabajo en un proyecto real de software.
El sistema permite:
Cada integrante del equipo recorre el ciclo completo de desarrollo, incluyendo diseño de base de datos, definición de clases y objetos, conexión con GUI y documentación.
ABM-Contactos/
│── docs/ # Documentación profesional
│ └── diseño.md # UML, diagramas, manual
│
│── src/ # Código fuente modular
│ │── __init__.py
│ │
│ ├── core/ # Clases base y modelos abstractos
│ │ ├── __init__.py
│ │ ├── base_model.py # Clase BaseModel
│ │ └── auditable_model.py # Clase AuditableModel
│ │ └── base_dao.py.py # Clase DAO
│ │
│ │
│ ├── models/ # Entidades principales
│ │ ├── __init__.py
│ │ ├── contacto.py
│ │
│ ├── services/ # Lógica de negocio
│ │ ├── __init__.py
│ │ ├── contacto_service.py
│ │
│ ├── controllers/ # Coordinación entre GUI y Services
│ │ ├── __init__.py
│ │ └── contacto_controller.py
│ │
│ ├── gui/ # CLI profesional
│ │ ├── __init__.py
│ │ ├── menu.py
│ │ └── contacto_menu.py
│ │
│ ├── dao/ # Persistencia y operaciones CRUD
│ │ ├── __init__.py
│ │ └── contacto_dao.py
│ │
│ └── config/ # Configuración y base de datos
│ ├── __init__.py
│ └── db.py
│
│── scripts/ # Scripts de inicialización y ayuda
│ ├── init_db.py
│ └── seed_data.py
│
│── .gitignore
│── README.md
└── requirements.txt
/docs)El sistema se basa en una arquitectura modular y escalable, con capas bien definidas:
src/gui/contacto_menu.py muestra opciones y captura inputs del usuario.src/controllers/).src/services/).src/daos/).Contacto, Grupo, Historial representan entidades y encapsulan su lógica.flowchart TD
A[Usuario interactúa con CLI] --> B[Controller]
B --> C[Service: lógica de negocio]
C --> D[DAO: operaciones CRUD]
D --> E[Base de Datos SQLite]
E --> D
D --> C
C --> B
B --> A[Respuesta al usuario]
style A fill:#f9f,stroke:#333,stroke-width:2px
style B fill:#bbf,stroke:#333,stroke-width:2px
style C fill:#bfb,stroke:#333,stroke-width:2px
style D fill:#ffb,stroke:#333,stroke-width:2px
style E fill:#fab,stroke:#333,stroke-width:2px
src/gui/contacto_menu.py).src/controllers/contacto_controller.py).src/services/contacto_service.py).src/daos/contacto_dao.py).src/config/db.py).Los resultados retornan desde la base de datos hacia la GUI pasando por DAO → Service → Controller → Usuario.
Sigue estos pasos para poner en marcha la aplicación en tu entorno local:
git clone https://github.com/emmaSDNZ/sistema-abm-de-contactos.git
cd sistema-abm-de-contactos
python -m venv venv
# Linux / Mac
source venv/bin/activate
# Windows
venv\Scripts\activate
python main.py
docs/diagramas/.docs/informe.pdf.docs/manual_usuario.pdf.Cada integrante desarrolló un módulo completo siguiendo este flujo:
Integrantes:
Tecnicatura en Ciencias de Datos e Inteligencia Artificial,
Instructor: Alejandro Mainero