En este repositorio se encuentra el Backend y Frontend de la aplicación web de MueblesStgo desarrollada utilizando Microservicios. La aplicación esta desarrollada principalmente en Java, utilizando SpringBoot y React JS.
Se utilizan las siguientes herramientas principales para desarrollar el proyecto:
- Java 18: La aplicación utiliza la Programación Orientada a Objetos y se desarrolla utilizando capas, compuestas por Servicios, Entidades, Controladores y Repositorios. Algunos Microservicios también utilizan RestTemplate.
- IntelliJ IDEA Ultimate 2022.2.2: IDE perfecto para trabajar con Java, SpringBoot y todo lo relacionado al Backend del proyecto. Tiene bastante buena compatibilidad con varios plugins y es perfecto para desarollar un proyecto monolítico.
- React JS: Se utiliza React JS para construir el Frontend de la aplicación. El frontend utiliza algunos React Hooks, como por ejemplo, Keycloak/Web para poder conectar Keycloak con el Frontend.
- Visual Studio Code: IDE con multiples compatibilidades que sirve como alternativa a IntelliJ y para editar archivos no provenientes de Java. También es el IDE principalmente utilizado para construir el Frontend de la aplicación.
- Docker / Docker-Compose / Docker Desktop: Se utiliza Docker junto con Docker-Compose para crear contenedores de Imágenes y asi poder levantar la aplicación en distintos PCs localmente. Las imágenes de Docker se descargan desde Docker Hub.
- Keycloak: Se utiliza Keycloak para construir una capa de seguridad para ciertas peticiones del Backend. Keycloak se conecta tanto con Frontend como Backend, por lo que algunas peticiones solo servirán para usuarios autorizados. (La aplicación incluye un login para realizar la autenticación).
- Prometheus: Se utiliza Prometheus junto con la dependencia Actuator de Spring Boot para poder obtener información sobre el Microservicio OficinaRRHH-Service, el cual calcula y obtiene la planilla de sueldos de los empleados.
- Grafana: Utilizado principalmente para poder visualizar de una manera más agradable la información obtenida por Prometheus.
Se tienen dos docker-compose. El primero es solamente para levantar Config-Service y Eureka-Service.
docker-compose -f docker-compose-config.yml up
El segundo docker-compose levantar el resto de los microservicios, junto con Keycloak y el Frontend de la aplicación.
docker-compose -f docker-compose-services.yml up