Skip to content

Microservicio Usuarios que hace parte al proyecto de parqueaderos

License

Notifications You must be signed in to change notification settings

JaiderMartinez/users-parking

Repository files navigation

Proyecto: Gestión de usuarios para parqueaderos

Proyecto Base Implementando Clean Architecture

Tecnologías:

  1. WebFlux
  2. Spring Security Reactive
  3. R2DBC PostgreSQL
  4. Docker
  5. Azure DevOps
  6. Zapier
  7. Google Chat

Descripción del Proyecto

Este proyecto tiene como objetivo gestionar a los usuarios para sistemas de parqueaderos. Hace uso de tecnologías reactivas para garantizar un rendimiento eficiente y escalabilidad.

Instrucciones de Despliegue

Docker
  1. Construir la imagen del contenedor Docker:

docker build --tag=nombre_imagen:version -f deployment/Dockerfile .

  1. Ejecutar el contenedor:

docker run nombre_imagen:version

Azure DevOps

Este proyecto utiliza Azure DevOps para administrar ramas y realizar el despliegue a través de un pipeline. Asegúrate de tener configurado tu entorno de Azure DevOps correctamente.

Integración con Zapier y Google Chat El proyecto cuenta con integraciones para notificar resultados de compilación y despliegue.

Antes de Iniciar

Empezaremos por explicar los diferentes componentes del proyectos y partiremos de los componentes externos, continuando con los componentes core de negocio (dominio) y por �ltimo el inicio y configuraci�n de la aplicaci�n.

Lee el art�culo Clean Architecture � Aislando los detalles

Arquitectura

Clean Architecture

Domain

Es el m�dulo m�s interno de la arquitectura, pertenece a la capa del dominio y encapsula la l�gica y reglas del negocio mediante modelos y entidades del dominio.

Usecases

Este m�dulo gradle perteneciente a la capa del dominio, implementa los casos de uso del sistema, define l�gica de aplicaci�n y reacciona a las invocaciones desde el m�dulo de entry points, orquestando los flujos hacia el m�dulo de entities.

Infrastructure

Helpers

En el apartado de helpers tendremos utilidades generales para los Driven Adapters y Entry Points.

Estas utilidades no est�n arraigadas a objetos concretos, se realiza el uso de generics para modelar comportamientos gen�ricos de los diferentes objetos de persistencia que puedan existir, este tipo de implementaciones se realizan basadas en el patr�n de dise�o Unit of Work y Repository

Estas clases no puede existir solas y debe heredarse su compartimiento en los Driven Adapters

Driven Adapters

Los driven adapter representan implementaciones externas a nuestro sistema, como lo son conexiones a servicios rest, soap, bases de datos, lectura de archivos planos, y en concreto cualquier origen y fuente de datos con la que debamos interactuar.

Entry Points

Los entry points representan los puntos de entrada de la aplicaci�n o el inicio de los flujos de negocio.

Application

Este m�dulo es el m�s externo de la arquitectura, es el encargado de ensamblar los distintos m�dulos, resolver las dependencias y crear los beans de los casos de use (UseCases) de forma autom�tica, inyectando en �stos instancias concretas de las dependencias declaradas. Adem�s inicia la aplicaci�n (es el �nico m�dulo del proyecto donde encontraremos la funci�n �public static void main(String[] args)�.

Los beans de los casos de uso se disponibilizan automaticamente gracias a un '@ComponentScan' ubicado en esta capa.