Skip to content

refactor: reorganizar estructura del proyecto (src/, tests/, requirements.txt)#54

Merged
Jandres25 merged 1 commit intodevfrom
refactor/project-structure
Nov 30, 2025
Merged

refactor: reorganizar estructura del proyecto (src/, tests/, requirements.txt)#54
Jandres25 merged 1 commit intodevfrom
refactor/project-structure

Conversation

@Jandres25
Copy link
Contributor

📋 Descripción

Reorganización completa de la estructura del proyecto para mejorar la organización, escalabilidad y seguir las mejores prácticas de Python.

Cambios principales:

  • ✅ Creación de carpeta src/ con todo el código fuente
  • ✅ Creación de carpeta tests/ con todos los tests
  • main.py renombrado a cli.py (más descriptivo)
  • test_gui_calculator.py renombrado a test_gui. py (más corto)
  • ✅ Creación de requirements.txt para gestión de dependencias
  • ✅ Creación de archivos __init__.py en src/ y tests/
  • ✅ Actualización de imports en todos los archivos Python
  • ✅ Carpeta docs/ mantenida sin cambios

🔗 Issue Relacionado

Closes #53


🎯 Tipo de Cambio

  • 🐛 Bug fix (corrección de error)
  • ✨ Nueva funcionalidad
  • 📝 Mejora de documentación
  • ♻️ Refactoring (sin cambios de funcionalidad)
  • 🧪 Tests (agregar o mejorar tests)
  • 🎨 Estilo (formateo, nombres de variables)
  • 🚀 Release (preparación para release)

🧪 ¿Cómo se ha probado?

  • Tests unitarios
  • Prueba manual
  • Probado en diferentes sistemas operativos

Comandos ejecutados:

# Instalar dependencias
pip install -r requirements.txt

# Ejecutar todos los tests
pytest tests/ -v

# Verificar CLI
python src/cli.py

# Verificar GUI
python src/gui.py

Resultados:

  • ✅ Todos los tests pasan correctamente
  • ✅ CLI funciona sin problemas
  • ✅ GUI funciona sin problemas
  • ✅ Estructura de carpetas clara y organizada
  • ✅ CI/CD funciona sin cambios (pytest encuentra tests/ automáticamente)

✅ Checklist

  • Mi código sigue las convenciones del proyecto
  • He realizado self-review de mi código
  • He comentado mi código en áreas complejas
  • He actualizado la documentación correspondiente
  • Mis cambios no generan nuevas advertencias
  • He agregado tests que prueban mis cambios
  • Los tests nuevos y existentes pasan localmente
  • Los commits siguen Conventional Commits

📊 Detalles de la Reorganización

Archivos Movidos:

  • calculator.pysrc/calculator.py
  • main.pysrc/cli.py (renombrado)
  • gui.pysrc/gui.py
  • test_calculator.pytests/test_calculator.py
  • test_gui_calculator.pytests/test_gui.py (renombrado)
  • conftest.pytests/conftest.py

Archivos Nuevos:

  • src/__init__.py - Configuración del paquete Python
  • tests/__init__.py - Marcador de paquete de tests
  • requirements.txt - Gestión de dependencias (pytest>=7.0.0)

Archivos Mantenidos:

  • docs/ - Documentación sin cambios
  • .github/ - Configuración de GitHub sin cambios
  • README.md, CHANGELOG.md, LICENSE, . gitignore - Sin cambios

🎯 Beneficios de esta Reorganización

  1. Separación clara: Código fuente vs tests vs documentación
  2. Escalabilidad: Fácil agregar nuevos módulos en src/
  3. Profesionalismo: Estructura estándar de proyectos Python
  4. Mejores imports: from src.calculator import ...
  5. Testing estándar: pytest tests/
  6. Dependencies claras: requirements.txt facilita onboarding
  7. Mantenibilidad: Código organizado es más fácil de mantener

📝 Notas Adicionales

  • La carpeta docs/ con USER_GUIDE. md y screenshots/ se mantiene intacta
  • tkinter NO está en requirements.txt porque viene con Python
  • main.py ahora es cli.py para mayor claridad de propósito
  • Todos los imports fueron actualizados correctamente
  • No hay breaking changes - el código funciona exactamente igual
  • CI/CD funciona sin cambios: pytest detecta automáticamente la carpeta tests/
  • README.md: Se actualizará en una issue separada cuando se prepare el próximo release

👥 Revisores Sugeridos

@Jhos3ph @alexricardotapiacarita-ai

Petición al equipo:
Por favor revisen que:

  • ✅ La estructura de carpetas sea clara y lógica
  • ✅ Los archivos estén en los lugares correctos
  • ✅ Los nombres de archivos sean descriptivos
  • ✅ Aprueben la reorganización para continuar con v2.1.0

Milestone: v2.1.0

@Jandres25 Jandres25 added this to the v2.1.0 milestone Nov 30, 2025
@Jandres25 Jandres25 self-assigned this Nov 30, 2025
@Jandres25 Jandres25 added documentación Cambios en README, docstrings, etc. ayuda requerida Se necesita asistencia o revisión en progreso Tarea que está siendo trabajada labels Nov 30, 2025
@Jandres25 Jandres25 linked an issue Nov 30, 2025 that may be closed by this pull request
25 tasks
Copy link
Contributor

@alexricardotapiacarita-ai alexricardotapiacarita-ai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

esta bien lo que pusiste src

@Jandres25 Jandres25 merged commit fdcc694 into dev Nov 30, 2025
2 checks passed
@Jandres25 Jandres25 deleted the refactor/project-structure branch November 30, 2025 20:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ayuda requerida Se necesita asistencia o revisión documentación Cambios en README, docstrings, etc. en progreso Tarea que está siendo trabajada

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mejora: reorganizar estructura del proyecto (src/, tests/, requirements.txt)

2 participants