Se tiene la necesidad de llevar el control de sus empleados, es decir, la hora de entrada y de salida, para esto, se solicita desarrollar los servicios back-end con los siguientes requisitos:
- El sistema dedealabe ser únicamente administrado por el encargado del personal de recursos humanos, esto significa que, en el sistema solo podrá iniciar sesión un usuario y un rol (USUARIO ADMIN).
- El sistema debe permitir al USUARIO ADMIN realizar un CRUD completo de los empleados.
- El sistema debe permitir al USUARIO ADMIN, registrar una entrada y una salida, estos registros estarán ligados a los empleados.
- El sistema debe permitir mostrar al front-end, un reporte de cuantas horas ha trabajado un empleado, en la semana y el mes.
La estructura del proyecto deberá estar conformada por los siguientes microservicios:
- Administración del USUARIO ADMIN y empleados.
- CRUD de empleados.
- Inicio de sesión del USUARIO ADMIN
- Registro de entrada y salidas de los empleados.
- Generación de data para los reportes que se detalla en los requisitos (inciso 4).
Los microservicios A y B, tendrán una base de datos independiente y los endpoint deberán estar englobados dentro de su respectivo microservicio y controladores.
Implementa una comunicación utilizando el Message Broker RabbitMQ, esta comunicación será utilizada por el Microservicio B, desde donde se enviará el identificador del empleado al cual se le va a registrar una entrada o salida, dicho identificador será recibido por el Microservicio A, el cual validará que el identificador recibido corresponda a un empleado registrado en su base de datos, el Microservicio A deberá responder afirmativa o negativamente dependiendo caso y dependiendo de esta respuesta, el Microservicio B registrará o no la entrada o salida.
$ git clone https://github.com/odmendoza/staffy-io-app.git
$ npm install
$ docker compose up --build -V
Applications were documented with Swagger. You can find them at:
http://localhost:3000/api/docs
- Employees CRUD
http://localhost:3030/api/docs
- Register a entry or exit employee
Responses
- Generate reports
Responses
- Author - Danilo Mendoza
- Email - danilo.mendozacapa@gmail.com