🚧 PROJETO EM DESENVOLVIMENTO 🚧
API simplificada para controle de delivery de um restaurante.
Este projeto, originalmente desenvolvido por mim em Java, era parte de um processo seletivo para BackEnd.
Resolvi refazer em Kotlin alterando um pouco a stack e incrementando algumas funcionalidades como parte de meus estudos.
- Kotlin
- Spring Boot 3
- Spring (Security, Data, Web)
- Docker
- PostgresSQL
- Gradle
- OpenAPI 3.0 (Swagger)
- Permitir o cadastro de usuários e login com autenticação via token JWT. Os métodos das APIs abaixo só poderão ser executados caso o usuário esteja logado.
- Permitir o cadastro, alteração, deleção e consulta de clientes.
- Permitir o cadastro, alteração, deleção e consulta de pedidos. Um pedido obrigatoriamente precisa ter um cliente e um cliente pode ter vários pedidos.
- Permitir o cadastro, alteração, deleção e consulta de entregas. Uma entrega obrigatoriamente necessita estar vinculada a um pedido.
Ao deletar um usuário, verificações são feitas. Usuários e pedidos só podem ser deletados se não houver entrega em andamento.
Caso delete usuário, todos dados atrelados são deletados.
Caso delete pedido, entrega é deletada.
Caso delete entrega, pedido fica desassociado de uma entrega.
ℹ️Informações sobre autenticação jwt e login estarão disponíveis ao acessar o link do Swagger-UI da aplicaçãoℹ️
- Certifique-se de ter instalado em sua máquina: Java 19, PostgresSQL
- No PostgreSQL, crie um banco de dados para a aplicação.
- Clone este repositório em seu ambiente local.
- Configure as credenciais do banco de dados no arquivo application.yml.
- Execute o comando Maven
gradle bootRun
- (em desenvolvimento) A API estará disponível no seguinte endereço: http://localhost:8080/swagger-ui.html
😎dispensa configurações nos arquivos do projeto😎
- Certifique-se de ter instalado e em execução na sua máquina: Docker, Java 19
- Clone este repositório em seu ambiente local.
- Execute os seguintes comandos no terminal da IDE (na raiz do projeto):
- Gradle:
gradle build
(Gera o artefato) - Docker:
docker build -t delivery-api -f Dockerfile-dev .
(utiliza o arquivo DockerFile-dev para gerar a imagem docker) - Docker:
docker-compose up
(utiliza o arquivo Docker-Compose para configurar e executar a API e o PostgresSQL)
- (em desenvolvimento) A API estará disponível no seguinte endereço: http://localhost:8080/swagger-ui.html
- Melhor refinamento para tratar as exception devido as Validations, mostrando mensagem de erro mais coesa para o front-end
- Testes para os Controllers com mockMvc.
- criação de arquitetura para "Itens", substituindo uma descrição por um controle de estoque, com adição de itens, remoção, calculo de preço do pedido.
- Controle por Role para permitir um admin registrar itens no estoque.
- reestruturar arquitetura de branches e workflows do github actions