Create System Help Desk 2

image ## Visão Geral O projeto "Formação Backend Expert" tem como objetivo fornecer uma formação completa para desenvolvedores backend, focando em uma arquitetura de microsserviços utilizando tecnologias modernas e práticas avançadas de desenvolvimento. Este repositório contém o código-fonte e os componentes desenvolvidos durante o curso. ## Tecnologias Utilizadas - **Spring Boot**: Framework Java para criação de aplicações web e microsserviços. - **Spring Cloud**: Conjunto de ferramentas para construir sistemas distribuídos. - **Spring Security**: Framework de autenticação e autorização. - **JWT (JSON Web Tokens)**: Para autenticação e autorização segura. - **RabbitMQ**: Sistema de mensageria para comunicação assíncrona. - **MongoDB Atlas**: Serviço de banco de dados NoSQL gerenciado. - **Amazon RDS**: Serviço de banco de dados relacional gerenciado. - **Docker**: Plataforma para criação e gerenciamento de contêineres. - **GitHub**: Plataforma de hospedagem de código e controle de versão. ## Estrutura do Projeto ### Componentes Principais 1. **API Gateway**: Gerencia todas as requisições para os microsserviços. 2. **Config Server**: Armazena e distribui configurações centralizadas. 3. **Service Discovery**: Localiza e registra instâncias de serviço dinamicamente. 4. **Auth Service API**: Gerencia tokens de acesso e autenticação de usuários. 5. **Commons Lib**: Biblioteca compartilhada entre os microsserviços. 6. **Email Service**: Envia e-mails utilizando RabbitMQ para gerenciamento de filas. 7. **User Service API**: Gerencia informações de usuários. 8. **Order Service API**: Gerencia ordens de serviço. ## Funcionalidades - **Autenticação e Autorização**: Utilizando Spring Security e JWT. - **Balanceamento de Carga**: Distribuição automática de solicitações entre serviços. - **Configurações Centralizadas**: Atualização dinâmica de configurações em tempo de execução. - **Mensageria**: Comunicação assíncrona com RabbitMQ. - **Integração Contínua**: Utilizando GitHub e Docker para versionamento e implantação. ## Instalação ### Pré-requisitos - [Java 17 ou superior](https://www.oracle.com/java/technologies/javase-jdk17-downloads.html) - [Docker](https://www.docker.com/get-started) - [Maven](https://maven.apache.org/install.html) - [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) ### Iniciando o Projeto com Gradle 1. Clone este repositório. 2. Navegue até o diretório do projeto. 3. Execute `./gradlew build` para compilar o projeto. 4. Execute `./gradlew run` para iniciar o servidor. ### Importando a Coleção do Postman 1. Baixe a coleção do Postman. 2. Abra o aplicativo Postman. 3. Clique em "Importar". 4. Selecione o arquivo da coleção baixado. 5. Siga as instruções para importar a coleção. ## Contribuição 1. Fork o projeto. 2. Crie uma branch para sua feature (`git checkout -b feature/nova-feature`). 3. Commit suas mudanças (`git commit -am 'Adiciona nova feature'`). 4. Push para a branch (`git push origin feature/nova-feature`). 5. Abra um Pull Request. ## Licença Este projeto está licenciado sob a [MIT License](LICENSE).