Skip to content

AlexMajiA/ControlPersonalEnterprise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

167 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gestor de Empleados

Autor: Alejandro Martínez Jimenéz
Fecha: Octubre 2025
Descripción: Aplicación para gestionar empleados, tareas, ausencias, fichajes y estadísticas de una empresa.


1. Objetivo del proyecto

El objetivo de este proyecto es permitir la gestión completa del personal de una empresa, incluyendo:

  • Gestión de empleados (CRUD)
  • Gestión de roles y seguridad
  • Asignación de tareas y seguimiento
  • Registro de fichajes, ausencias y vacaciones
  • Estadísticas y reportes

2. Tecnologías utilizadas

Tecnología Versión Uso
Java 21 Lenguaje principal
Spring Boot 3.4.5 Framework backend
PostgreSQL 17.1 Base de datos
Thymeleaf 3.1 Frontend templating
Bootstrap 4 UI / Layout
Maven Gestión de dependencias
JUnit, Mockito Testing
Apache POI 5.4.1 Exportación a Excel
Spring Security 6.4.5 Gestión de autenticación y roles

3. Arquitectura

La aplicación sigue un patrón MVC y capas de servicio:

  • Controllers: reciben las solicitudes del frontend y llaman a los servicios.
  • Services: contienen la lógica de negocio.
  • Repositories: interactúan con la base de datos.
  • Entities: representan las tablas de la base de datos.

4. Módulos principales

Employee

  • Controller: EmployeeController
  • Service: EmployeeService
  • Repository: EmployeeRepository
  • Entity: Employee (atributos: id, nombre, email, rol…)

Role

  • Define los roles de usuario (Admin, Operario).

Assignment

  • Permite asignar tareas a los empleados y gestionar el seguimiento.

Department & Enterprise

  • Agrupación de empleados por departamento y empresa.

Time Registration

  • Registra fichajes y control horario de los empleados.

Absences, Vacation, Sick Leave

  • Gestión de ausencias, vacaciones y bajas médicas.

5. Base de datos

  • Sistema: PostgreSQL
  • Tablas principales: employee, role, assignment, department, enterprise,
  • time_registration, sick_leave, vacation, absences, commission
  • Las relaciones entre tablas siguen normalización básica (1:N y N:M según corresponda).

Se pueden usar los scripts SQL del proyecto para crear y poblar la base de datos con datos de prueba.


6. Testing

  • Se utilizan JUnit 5 y Mockito para pruebas unitarias e integración.
  • Tests principales:
    • Servicios (lógica de negocio)
    • Controladores (endpoints)
    • Repositorios (consultas JPA)
  • Ejecutar tests:
mvn test

## 7. Cómo ejecutar la aplicación

Clonar el repositorio:

git clone git@github.com:AlexMajiA/ControlPersonalEnterprise.git


Configurar la base de datos PostgreSQL según application.properties.

Instalar dependencias:
Detalladas en el archivo Pom.xml

mvn clean install


Ejecutar la aplicación:
mvn spring-boot:run


Abrir navegador en:
http://localhost:8083

About

Proyecto de gestión de empleados con Java, Spring Boot y Spring Security, utilizando PostgreSQL. Permite gestionar datos de empleados, tareas, bajas, vacaciones, y fichajes con ubicación. Diseñado para ser escalable, con futuras funcionalidades como asignación de tareas tipo Jira y control de comisiones.

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE.txt

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors