Este é um sistema de gerenciamento para um lava jato, desenvolvido em Spring Boot com H2 Database(para testes). O sistema permite gerenciar a lavagens diárias, um sistema de Kanban para os carros (Esperando, Lavando, Secando, etc), gerar o faturamento do dia e calcular os ganhos dos funcionários com base em uma porcentagem diferente para cada um.
- Tecnologias
- Funcionalidades
- Estrutura do Projeto
- Requisitos
- Documentação da API
- Configuração do Banco de Dados
- Compilação e Execução
- Endpoints da API
- Contribuição
- Licença
- Java
- Spring Boot
- JPA
- H2 Database
- Swagger
-
Gerenciamento de Lavagens:
- Adicionar carros.
- Atualizar o status das lavagens (Esperando, Lavando, Secando, Pronto).
- Listar lavagens por status.
-
Entidades:
- Dono
- Carro
- Lavagem
src
└── main
├── java
│ └── com
│ └── carwash
│ ├── \controller
│ ├── \events
│ ├── \listeners
│ ├── \model
│ ├── \repository
│ ├── \request
│ ├── \response
│ ├── \service
│ └── CarWashApplication.java
└── resources
├── db
│ └── migration
└── application.properties
- Java 11 ou superior
- Maven 3.6.0 ou superior
Este projeto utiliza o Springdoc OpenAPI para gerar a documentação dos endpoints da API.
A documentação da API está disponível nos seguintes formatos, sem a interface gráfica do Swagger UI:
- OpenAPI JSON: http://localhost:8080/v3/api-docs
- OpenAPI YAML: http://localhost:8080/v3/api-docs.yaml
Esses endpoints geram automaticamente a especificação OpenAPI, que pode ser utilizada para gerar clientes da API, integração com ferramentas de teste, ou qualquer outra ferramenta que suporte OpenAPI.
A configuração do Springdoc é realizada através da classe OpenApiConfiguration
, localizada em src/main/java/com/mycompany/carwash/config/OpenApiConfiguration.java
. Nessa classe, são definidos os detalhes da API, como título, versão e descrição:
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.info.Info;
import org.springframework.context.annotation.Configuration;
@Configuration
@OpenAPIDefinition(
info = @Info(
title = "Carwash API",
version = "v1",
description = "Documentação da API do sistema de gerenciamento de lava jato"
)
)
public class OpenApiConfiguration {
// Configurações adicionais podem ser adicionadas aqui
}
Certifique-se de ter um banco de dados PostgreSQL em execução e crie um banco de dados para o projeto.
Atualize o arquivo application.properties
com as informações do seu banco de dados:
spring.datasource.url=jdbc:h2:mem:carwash
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.password=
spring.datasource.username=sa
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
- Clone o repositório:
git clone https://github.com/seu_usuario/seu_projeto.git
cd seu_projeto
- Compile o projeto com Maven:
mvn clean install
- Execute a aplicação
mvn spring-boot:run
A aplicação estará disponível em http://localhost:8080
.
- Adicionar um Novo Dono
POST /api/owners
{
"name": "Jonh Doe",
"phoneNumber" : "123456789"
}
- Listar Carros
GET /api/cars
- Adicionar um Novo Carro
POST /api/cars
Body para adicionar um novo Carro
{
"licensePlate": "AAA1A11",
"model": "Toyota Corolla",
"color": "Preto",
"ownerId": null
}
- Listar Carros
GET /api/cars
- Adicionar uma nova Lavangem
POST /api/cars
Body para adicionar uma Nova Lavangem
{
"carId": "Insira o Id do carro criado aqui",
"description": "Americana + Cera",
"amount": 70.00,
"status": "PENDING",
"isPaid": false
}
- Faça um fork do projeto
- Crie uma branch para sua feature (git checkout -b feature/nova-feature)
- Faça commit das suas mudanças (git commit -am 'Adiciona nova feature')
- Faça push para a branch (git push origin feature/nova-feature)
- Abra um Pull Request
Distribuído sob a licença MIT. Veja LICENSE
para mais informações.
Desenvolvido por Lucas Alves