API de ponto de venda para restaurante, construida com Quarkus, PostgreSQL, Hibernate ORM Panache e Liquibase.
O front-end da aplicacao e desenvolvido em Angular 21.
Repositorio: github.com/daniel-abrahao/app-restaurante-front
- Docker e Docker Compose
- JDK configurado no
JAVA_HOME - Maven Wrapper do projeto (
mvnw/mvnw.cmd)
Para subir o ambiente local completo, primeiro gere o pacote da aplicacao:
./mvnw packageDepois, suba os containers:
docker compose up -dEsse comando sobe o banco de dados e o adminer. O servico db cria um PostgreSQL local com as credenciais usadas pela aplicacao:
- Banco:
restaurante_pos - Usuario:
restaurante_user - Senha:
restaurante_pass - Porta:
5432
Se quiser subir somente o banco, use:
docker compose up -d dbDepois que o banco estiver saudavel, rode a aplicacao em modo desenvolvimento.
No Windows:
.\mvnw.cmd quarkus:devNo Linux/macOS:
./mvnw quarkus:devA API ficara disponivel em:
http://localhost:8080
O Quarkus Dev UI fica disponivel em:
http://localhost:8080/q/dev/
A documentacao da API fica disponivel pelo Swagger UI em:
http://localhost:8080/q/swagger-ui
O documento OpenAPI em JSON/YAML fica disponivel em:
http://localhost:8080/q/openapi
O projeto usa a extensao quarkus-smallrye-openapi. A API esta mapeada com metadados no application.properties e com anotacoes OpenAPI no controller de usuario.
O arquivo docker-compose.yml tambem possui o servico adminer. Atencao: o Adminer esta configurado na porta 8080, que e a mesma porta da aplicacao Quarkus. Para desenvolver a API localmente, prefira subir apenas o banco com docker compose up -d db.
As migrations Liquibase rodam automaticamente ao iniciar a aplicacao:
quarkus.liquibase.migrate-at-start=trueO changelog principal esta em:
src/main/resources/db/db.changelog-master.sql
As tabelas sao criadas a partir de:
src/main/resources/db/migrations/create-database.sql
Login de usuario:
POST /usuario/login
Content-Type: application/jsonExemplo de corpo:
{
"user": "admin",
"password": "admin"
}Rodar testes:
.\mvnw.cmd testGerar pacote da aplicacao:
.\mvnw.cmd packageParar os containers:
docker compose down