damianstetson17 / PyLicenciasPersonal

Código "semilla" de un sistema de gestión de licencias para un departamento de personal, en donde se lleva registro y control de licencias de empleados sin implementación de GUI.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

👥 PyLicenciasPersonal 👥

Base para un sistema de gestión de licencias para un departamento de personal, en donde se lleva registro y control de licencias de empleados, en el podrás:

  • Crear y borrar empleados basados en un identificador denominado "número de legajo".
  • Crear y borrar dias correspondientes por año.
  • Crear Licencias con controles de fines de semana y/o feriados.
  • Llevar registro de licencias y días correspondientes de empleados.

Diagrama de Clases

Se decidió realizar el proyecto en base al paradigmas orientado a objetos, por lo tanto, se adjunta el diagrama de clases asociado a la resolución del escenario, esto también afectó la manera de organización de los módulos y clases del proyecto (Véase carpeta raíz.).

diagrama_de_clases

⚠️ Estado del proyecto ⚠️

Hecho ✅:

  • Modelo completo.
  • No contabilizar días feriados (Estos cargables por el usuario) ni fines de semana a la hora de contabilizar los días de licencia
  • Caducidad de días correspondientes no utilizados en X cantidad de tiempo.
  • "Logger" en consola de los llamados a los módulos y mensajes de errores. errors and msj

No implementado ❌:

  • Conexión con BD.
  • Graphic user interface.

🔧 Construido con:

🚀 ¿Cómo ejecutar? 🚀

Para ejecutar correctamente simplemente compilar el archivo main.py.

  • Tener Python instalado.
  • Abrir un Terminal (En windows apretar Win + r y tipear "cmd").
  • Posicionarse mediante el comando "cd" sobre la carpeta raíz del código.
  • Ejecutar la sentencia "python main.py".

¿Que me encontraré al compilar el archivo main.py?

Que no te pierda la cantidad de contenido dentro del fichero main.py, simplemente crea instancias de los objetos del modelo, comprueba objetos duplicados, vencimientos de días correspondientes, licencias repetidas, licencias no posibles de tomar, entre otros, encima de cada llamado a funciones se encuentra documentado la finalidad del mísmo. Anímate a trastear con el código, sirve como base para proyectos más grandes (Véase una implementación del mísmo en Java).

Una fracción del mensaje mostrado por consola (De la generación de licencias), al compilarse será:

msj_lic

🦚 Aclaraciones 🦚

Este proyecto se ha desarrollado con el fin de aprendizaje del lenguaje Python, como así generar una base sólida para el desarrollo de sistemas de gestiones de Licencias de organizaciones. Por otra parte, se han desarrollado métodos "getters & setters" basados en la filosofía de un fuerte encapsulamiento esto no tendrá nunca la mísma filosofía planteada en Java. Existe un concepto que describe bien la diferencias en este: La idea del "Programador Malvado" (Por favor no malinterpretar esto, es simplemente una metáfora), en Java hay un encapsulamiento muy fuerte en los objetos, ciertas propiedades las podemos acceder solo mediante los métodos apropiados, la idea es que en Java se cuida a los objetos de este hipotético "Programador Malvado", en Python esa idea se la reemplaza por un: "somos todos adultos", es decir cada uno sabe lo que está haciendo, si quieres modificar un atributo interno de un objeto, perfecto, se supone que sabes lo que estás haciendo. Por lo que se han generado métodos hipotéticos que incluso algunos no se utilizan dentro del projecto.

Todas estas imágenes y documentación se encuentran sujetas a cambios, que serán publicados en tiempo y forma.

About

Código "semilla" de un sistema de gestión de licencias para un departamento de personal, en donde se lleva registro y control de licencias de empleados sin implementación de GUI.


Languages

Language:Python 100.0%