Repository navigation
Mejora: reorganizar estructura del proyecto (src/, tests/, requirements.txt) #53
Copy link
Copy link
Closed
Copy link
Labels
documentaciónCambios en README, docstrings, etc.Cambios en README, docstrings, etc.en progresoTarea que está siendo trabajadaTarea que está siendo trabajadamejoraMejora a funciones existentesMejora a funciones existentes
Milestone
Description
💡 Descripción
Reorganizar la estructura del proyecto para mejorar la organización, escalabilidad y seguir las mejores prácticas de Python. Actualmente todos los archivos están en la raíz, lo que dificulta la escalabilidad. Se propone separar el código fuente, tests y documentación en carpetas dedicadas.
Funcionalidad a mejorar: Estructura general del proyecto
Cambio propuesto:
- Crear carpeta
src/para código fuente (calculator. py, main.py, gui.py) - Crear carpeta
tests/para tests (test_*. py, conftest.py) - Mantener
docs/como está - Crear
requirements.txtpara gestión de dependencias
📁 Estructura Actual vs Propuesta
Actual:
team-practice/
├── calculator.py
├── main.py
├── gui.py
├── test_calculator.py
├── test_gui_calculator.py
├── conftest.py
├── docs/
├── .github/
└── ...
Propuesta:
team-practice/
├── src/ # NUEVO - Código fuente
│ ├── __init__.py
│ ├── calculator.py
│ ├── cli.py # Renombrar main.py
│ └── gui.py
├── tests/ # NUEVO - Tests
│ ├── __init__.py
│ ├── conftest.py
│ ├── test_calculator.py
│ └── test_gui.py # Renombrar test_gui_calculator.py
├── docs/ # Mantener como está
│ ├── USER_GUIDE.md
│ └── screenshots/
├── .github/
├── README.md
├── CHANGELOG.md
├── LICENSE
├── .gitignore
└── requirements.txt # NUEVO
📋 Tareas
Reorganización de archivos:
- Crear carpeta
src/y mover:calculator.py→src/calculator.pymain.py→src/cli.py(renombrar)gui.py→src/gui.py
- Crear carpeta
tests/y mover:test_calculator.py→tests/test_calculator. pytest_gui_calculator.py→tests/test_gui.py(renombrar)conftest.py→tests/conftest.py
- Crear archivos
__init__.pyensrc/ytests/
Nuevos archivos:
- Crear
requirements.txtcon contenido:pytest>=7.0.0
- Crear
src/__init__.pycon imports del paquete
Actualización de código:
- Actualizar imports en
src/cli.py(decalculatorasrc.calculator) - Actualizar imports en
src/gui.py(decalculatorasrc.calculator) - Actualizar imports en
tests/test_calculator.py(asrc.calculator) - Actualizar imports en
tests/test_gui.py(asrc.gui) - Actualizar
.github/workflows/ci.ymlcon nuevas rutas de tests - Actualizar
README.mdcon nuevos comandos de ejecución - Verificar que no se requiera actualizar
.gitignore
Verificación:
- Ejecutar tests y verificar que todos pasen:
pytest tests/ -v - Verificar que GUI funcione:
python src/gui.py - Verificar que CLI funcione:
python src/cli.py - Verificar que CI/CD pase en GitHub Actions
🎯 Beneficios
- ✅ Separación clara entre código, tests y documentación
- ✅ Escalabilidad: Fácil agregar más módulos
- ✅ Profesionalismo: Estructura estándar de Python
- ✅ Mejores imports:
from src.calculator import ... - ✅ Testing estándar:
pytest tests/ - ✅ Gestión de dependencias clara con
requirements.txt - ✅ Onboarding más fácil para nuevos colaboradores
📝 Notas Adicionales
tkinterNO se incluye enrequirements.txt(viene con Python)- La carpeta
docs/se mantiene intacta main.pyse renombra acli.pypara mayor claridad- Archivos de configuración permanecen en raíz
- Todo código nuevo debe ir en
src/después de esta reorganización - Todos los tests nuevos deben ir en
tests/
✅ Criterios de Aceptación
- Estructura de carpetas creada correctamente
- Todos los archivos movidos sin pérdida de funcionalidad
- Imports actualizados en todos los archivos
-
requirements.txtcreado - README.md actualizado
- CI/CD funcionando con nueva estructura
- Todos los tests pasan
- GUI funciona correctamente
- CLI funciona correctamente
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
documentaciónCambios en README, docstrings, etc.Cambios en README, docstrings, etc.en progresoTarea que está siendo trabajadaTarea que está siendo trabajadamejoraMejora a funciones existentesMejora a funciones existentes
Activity