java-backend/README.md

81 lines
3.5 KiB
Markdown
Raw Permalink Normal View History

2025-12-04 00:00:01 -03:00
<div>
2025-12-04 00:18:33 -03:00
<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>
2025-12-04 00:00:01 -03:00
</div>
2025-11-26 13:07:53 -03:00
2025-12-04 00:00:01 -03:00
<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).