Este é um projeto RESTful API construído usando o Java como linguagem e a framework Spring para a construção da API. Semelhante ao ifood. Preparada para GMT -3. Preparada para Load Balance (Poor Man).
- Gerenciamento de Restaurantes
- Gerenciamento de Produtos
- Gerenciamento de Pedidos
- Gerenciamento de Usuários
- Gerenciamento de Formas de Pagamento
- Relatórios Estatísticos
- Gerenciamento de Permissões de Acessos
- Java 11
- Spring Boot
- Spring Data JPA
- Spring Data Redis
- Spring HATEOAS
- Spring Session
- PostgreSQL
- OAuth2 com JWT
- Springfox 3 - Swagger UI
- Flyway
- Lombok
- ModelMapper
- JasperReports
- Instale o Docker e o Docker Compose em seu ambiente.
- Clone este repositório em sua máquina local.
- Se estiver utilizando Windows, alterar o separador de linha do arquivo wait-for-it.sh na raiz do projeto para LF. Buildar a imagem apagando os caches caso tenha com o seguinte comando: docker build -t algafood --no-cache --build-arg JAR_FILE=algafood-api-0.0.1-SNAPSHOT.jar .
- Execute o comando ./mvnw clean package -Pdocker para buildar o projeto.
- Execute o comando docker-compose up na pasta raiz do projeto para construir o ambiente e iniciar a aplicação. OU o comando docker-compose up --scale algafood-api=[numero_de_containers] para escalar a aplicação com quantos containers desejar, pois o projeto está preparado para Load Balance (Poor man).
E o Root Entry Point: http://localhost/v1.
Obs: O usuário tem que estar devidamente autenticado. URL de autenticação usando Password Flow: http://localhost/oauth/token
Contribuições são sempre bem-vindas! Sinta-se livre para abrir uma issue ou enviar um pull request.Em caso de dúvidas, sinta-se a vontade a entrar em contato, me mande mensagem através do meu linkedin: https://www.linkedin.com/in/kievmaia/