https://github.com/ronaldohard/fastfood-backend
https://github.com/ronaldohard/fastfood-backend
docker docker-compose java postgres spring-boot
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ronaldohard/fastfood-backend
- Owner: ronaldohard
- License: apache-2.0
- Created: 2025-05-07T04:20:41.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-26T12:29:34.000Z (11 months ago)
- Last Synced: 2025-08-24T16:12:14.955Z (10 months ago)
- Topics: docker, docker-compose, java, postgres, spring-boot
- Language: Java
- Homepage:
- Size: 4.04 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# π FastFood - Totem de Pedidos
Sistema acadΓͺmico de pedidos para lanchonete via totem.
---
### π¨βπ» Tecnologias utilizadas
- Java 22
- Maven (v3.9.9)
- Spring Boot 3 (v3.2.4)
- Spring Data
- Spring WebFlux (restclient)
- PostgreSQL (v15)
- Docker & Docker Compose
- MapStruct (v1.6.3)
- Lombok (v1.18.30)
- Mockito (v5.10.0)
- TestContainer (v1.19.1)
- Swagger (springdoc-openapi v2.1.0)
---
### π DDD
https://miro.com/app/board/uXjVIDhyBL0=/?share_link_id=759980337877
---
### π¦ Requisitos
- [Docker](https://www.docker.com/)
- [Docker Compose](https://docs.docker.com/compose/)
- (opcional sem docker) [Java 22+](https://openjdk.org/projects/jdk/22/) e [Maven](https://maven.apache.org/)
---
## π Como Rodar
```bash
# 1. Clone o projeto
git clone https://github.com/ronaldohard/fastfood-backend.git
# 2. Entre na pasta docker
cd fastfood-backend/docker
# 3. Gere as imagens e suba o container com as instancias de db, app e sonar
docker-compose up --build
```
## π Endpoints publicados
- API Swagger: [http://localhost:8080/swagger](http://localhost:8080/swagger)
### π οΈ ConfiguraΓ§Γ΅es da aplicaΓ§Γ£o (Banco de Dados)
As propriedades estΓ£o configuradas no `application.yml`:
```yaml
spring:
datasource:
url: jdbc:postgresql://localhost:5432/fastfood
username: postgres
password: postgres
```
- **Host:** `localhost`
- **Porta:** `5432`
- **UsuΓ‘rio:** `postgres`
- **Senha:** `postgres`
Os scripts SQL sΓ£o carregados automaticamente na inicializaΓ§Γ£o (pastas `docker/resources/db/init/01_schema.sql`
e `02_data.sql`).
---
#### π¬ ColeΓ§Γ£o Postman (opcional)
IncluΓmos um arquivo `/postman/SOAT11 - FastFood (Grupo 5).postman_collection.json`.
- Importe no [Postman](https://www.postman.com/)
- Teste endpoints do FLUXO:
- CriaΓ§Γ£o de Cliente
- Buscar cliente por CPF
- CRUD de Produtos
- Buscar Produtos por Categoria
- Fake Checkout QRCODE / ConfirmaΓ§Γ£o
- Listar os pedidos
---
### ποΈ Fluxo principal (Totem de Pedido)
1. Cliente escolhe itens por categoria (hambΓΊrguer, acompanhamento, bebida, sobremesa)
2. Visualiza resumo
3. Gera QR Code para pagamento
4. ApΓ³s confirmaΓ§Γ£o, pedido Γ© finalizado
---
### π Estrutura - Arquitetura Hexagonal
```
βββ backend/ # AplicaΓ§Γ£o Spring Boot
β βββ src/main/java/
β βββ br/com/fiap/postech/grupo5/fastfood/
β βββ adapter/
β β βββ inbound/web/
β β β βββ controller/
β β β βββ mappers/
β β βββ outbound/
β β βββ client/
β β βββ entity/
β β β βββ client/
β β β βββ ingredient/
β β β βββ order/
β β β βββ pagamento/
β β β βββ product/
β β β βββ enums/
β β βββ repositories/
β βββ application/
β β βββ dto/
β β βββ service/
β βββ infrastructure/
β βββ config/
β βββ handler/
β βββ FastFoodApplication.java
β βββ resources/
β βββ application.yml
β βββ json.mercadopago/
βββ docker/
β βββ docker-compose.yml
β βββ Dockerfile
β βββ resources/db/init/ # Scripts SQL
β βββ 01_schema.sql
β βββ 02_data.sql
βββ README.md
```
### β
Futuras melhorias (opcional)
- IntegraΓ§Γ£o real com Mercado Pago
- Painel administrativo para pedidos
- NotificaΓ§Γ΅es em tempo real via WebSocket
### π₯ Participantes do Grupo
| π€ Nome | π RM | π¬ Discord | π§ Email |
|---------------------------------|--------|--------------------|-------------------------------|
| Gabriel Giangiulio Cravo Zamana | 364225 | gabrielzamana | gabrielgiangiulio@outlook.com |
| Milenna Cristina Nogueira Costa | 363739 | mih_cnc00 | milennacosta16@outlook.com |
| Raquel Aparecida Teixeira | 363656 | raquelat | raquelteixeira507@gmail.com |
| Ronaldo Ferreira Prates | 363353 | twitch.tv/hard_aoe | ronaldohard@gmail.com |
| Samuel Videira dos Santos | 363405 | samuel.videira | samuel.videira@gmail.com |