https://github.com/oluizeduardo/jfood
A microservice-based restaurant management system built with Java and Spring Boot.
https://github.com/oluizeduardo/jfood
docker flyway java keycloak maven microservices postgresql rabbitmq rest-api spring-boot
Last synced: 2 months ago
JSON representation
A microservice-based restaurant management system built with Java and Spring Boot.
- Host: GitHub
- URL: https://github.com/oluizeduardo/jfood
- Owner: oluizeduardo
- License: mit
- Created: 2025-03-28T00:04:09.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-11-15T18:06:44.000Z (7 months ago)
- Last Synced: 2025-11-15T20:22:37.163Z (7 months ago)
- Topics: docker, flyway, java, keycloak, maven, microservices, postgresql, rabbitmq, rest-api, spring-boot
- Language: Java
- Homepage:
- Size: 474 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# š JFood
O JFood é uma aplicação moderna desenvolvida em arquitetura de microserviços, focada no gerenciamento completo de restaurantes. Ele oferece funcionalidades essenciais para operações como cadastro e autenticação de usuÔrios, cadastro de produtos e controle de pedidos.
O sistema Ć© composto por um **API Gateway**, um **Service Registry** e diversos microserviƧos independentes. Alguns desses serviƧos comunicam-se de forma assĆncrona por meio de uma fila **RabbitMQ**, garantindo escalabilidade e desacoplamento entre os módulos.
A autenticação é realizada utilizando o **Keycloak**, com suporte à geração de tokens de acesso (OAuth2) e validação de roles para controle de permissões.
## š SumĆ”rio
- [𧩠Arquitetura da Solução](#arquitetura-da-solução)
- [š Tecnologias Utilizadas](#tecnologias-utilizadas)
- [š ļø Instalação e Execução](#instalação-e-execução)
- [š¬ Testes de API](#testes-de-api)
## Arquitetura da Solução

## Tecnologias Utilizadas











## Instalação e Execução
1. **Clone o repositório:**
```sh
git clone https://github.com/oluizeduardo/jfood.git
cd jfood
```
2. **Configure as variƔveis de ambiente:**
- Crie um arquivo `.env` com base no exemplo disponĆvel e edite-o com suas credenciais e configuraƧƵes desejadas:
```sh
cp .env.example .env
```
3. **Suba os serviƧos auxiliares com Docker Compose:**
```sh
docker-compose up -d
```
4. **Acesse os serviƧos auxiliares nos seguintes endereƧos:**
| ServiƧo | URL | UsuƔrio / Senha |
|-------------|-------------------------|-----------------------------|
| PostgreSQL | http://localhost:5432 | conforme `.env` |
| PgAdmin | http://localhost:7000 | conforme `.env` |
| Keycloak | http://localhost:7001 | conforme `.env` |
| SonarQube | http://localhost:7002 | admin / admin |
| Jenkins | http://localhost:7003 | senha gerada no container |
| RabbitMQ | http://localhost:7004 | `guest`/`guest` |
| Redis | http://localhost:6379 | |
**Para parar e remover os containers:**
```sh
docker-compose down
```
5. **Executando os serviƧos do JFood:**
Inicie os serviƧos principais do JFood seguindo a ordem abaixo:
- ms-service-registry (Eureka Server)
- api-gateway
- ms-users
- ms-products
- ms-notification
- ms-orders
> Importante: Os quatro últimos microserviços (ms-users, ms-products, ms-notification e ms-orders) podem ser iniciados em qualquer ordem, desde que o Service Registry e o API Gateway jÔ estejam ativos.
## Testes de API
Uma collection Postman estĆ” disponĆvel para facilitar o teste dos endpoints da aplicação:
- [Clique aqui para acessar a Collection](https://documenter.getpostman.com/view/2828428/2sB2cVg2vU)