Universidad de El Salvador - Facultad Multidisciplinaria de Occidente
Carrera: Ingeniería en Desarrollo de Software.
Asignatura: Lógica de Programación.
Esta es una aplicación de Interfaz de Línea de Comandos (CLI) desarrollada con Python. El objetivo principal del sistema es funcionar como un gestor de proyectos donde se puedan administrar múltiples tareas asignadas a diferentes empleados.
- Un proyecto contiene varias tareas que se pueden delegar a diferentes empleados.
- El sistema permite registrar la cantidad de horas trabajadas por los empleados en cada tarea específica.
- Se incluye la funcionalidad para calcular el total de horas invertidas, ya sea filtrando por tarea individual o por proyecto completo.
- Se agregan validaciones de seguridad para evitar que se ingresen datos erróneos, como impedir que un empleado registre jornadas irreales, como por ejemplo más de 12 horas en un solo día o valores negativos.
Actualmente primera versión del proyecto completada ✅. Para la tercera entrega se implementan nuevas funcionalidades para tener un gestor más robusto. Además se agrega persistencia de datos como lo son el registro de proyectos, empleados, tareas y asignaciones, y se implementa una nueva UI mejorada con la librería Rich de Python.
| Lenguaje | Librerías | Diseño Lógico | Control de Versiones |
|---|---|---|---|
| Python 3.x | Rich | Pseudocódigo en PSeInt | Git y GitHub |
- Daniel Eduardo Yanes Hércules - YH25001
- Alexis Jonathan Mazariego Mazariego - MM24002
- Wilbert Adalberto Martinez Trejo - MT23002
- Python 3.x instalado en tu sistema
- pip (gestor de paquetes de Python)
git clone https://github.com/DanielYanes-YH25001/gestor-proyectos-cli.git
cd gestor-proyectos-cli-
En Linux/macOS:
python3 -m venv env
-
En Windows (PowerShell y CMD):
python -m venv env
Como ejemplo se ha utilizado el nombre
envpara el entorno virtual. Puedes utilizar el nombre que prefieras.
-
En Linux/macOS:
source env/bin/activate -
En Windows (PowerShell):
.\env\Scripts\activate
o también:
.\env\Scripts\Activate.ps1
Si se lanza algún error abrir PowerShell como administrador y ejecutar:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Esto le indicará a PowerShell que permita la ejecución de scripts para el usuario actual del sistema. Presiona S + Enter para confirmar, y vuelve a intentar activar el entorno virtual.
-
En Windows (CMD):
.\env\Scripts\activate
o también:
.\env\Scripts\activate.bat
Notarás que el entorno virtual se ha activado con éxito cuando en el prompt de la terminal se muestre entre paréntesis el nombre de tu entorno virtual (env).
pip install -r requirements.txtPara iniciar la aplicación CLI del gestor de proyectos, ejecuta:
python main.pyEsto abrirá el menú principal donde podrás realizar operaciones como crear proyectos, registrar empleados, asignar tareas y registrar horas de trabajo.
Las pruebas unitarias del proyecto se encuentran en la carpeta tests/. Para ejecutarlas utiliza el módulo unittest de Python:
python -m unittest discover -s tests -p "test_*.py" -vpython -m unittest tests.test_proyectos -v
python -m unittest tests.test_empleados -v
python -m unittest tests.test_tareas -v
python -m unittest tests.test_asignaciones -v
python -m unittest tests.test_persistence -vpython -m unittest tests.test_proyectos.ProyectosTests.test_nombre_de_metodo -vEl parámetro
-v(verbose) proporciona una salida detallada de las pruebas. Para ejecuciones sin muchos detalles omite este parámetro.
Para medir la cobertura de las pruebas unitarias y ver qué porcentaje del código está siendo probado, utiliza la herramienta coverage:
coverage run --omit="tests/*" -m unittest discover -s tests -p "test_*.py"coverage reportcoverage htmlEsto creará una carpeta htmlcov/ con un reporte interactivo. Puedes abrir el archivo htmlcov/index.html en tu navegador para ver los detalles.
coverage eraseEl parámetro
-vno funciona con coverage. Si necesitas salida detallada de las pruebas, combina los comandos de forma alternativa.