80 lines
3.5 KiB
Markdown
80 lines
3.5 KiB
Markdown
<div>
|
|
<h1 align="center"> Create System Help Desk 2 <img src="https://github.com/ABSphreak/ABSphreak/blob/master/gifs/Hi.gif?raw=true" width="30px"></h2>
|
|
|
|
</div>
|
|
|
|
<p align="center">
|
|
<img width="908" alt="image" src="https://github.com/ValdirCezar/Formacao-Backend-Expert/assets/58149445/47fbd128-e28a-4dc0-8cd6-3d34dac2189b">
|
|
|
|
## 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).
|