Giter VIP home page Giter VIP logo

carwash-api's Introduction

Sistema de Gerenciamento de Lava Jato

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.

Sumário

  1. Tecnologias
  2. Funcionalidades
  3. Estrutura do Projeto
  4. Requisitos
  5. Documentação da API
  6. Configuração do Banco de Dados
  7. Compilação e Execução
  8. Endpoints da API
  9. Contribuição
  10. Licença

Tecnologias

  • Java
  • Spring Boot
  • JPA
  • H2 Database
  • Swagger

Funcionalidades

  • Gerenciamento de Lavagens:

    • Adicionar carros.
    • Atualizar o status das lavagens (Esperando, Lavando, Secando, Pronto).
    • Listar lavagens por status.
  • Entidades:

    • Dono
    • Carro
    • Lavagem

Estrutura do Projeto

src
└── main
    ├── java
    │   └── com
    │       └── carwash
    │           ├── \controller 
    │           ├── \events
    │           ├── \listeners
    │           ├── \model
    │           ├── \repository
    │           ├── \request
    │           ├── \response
    │           ├── \service
    │           └── CarWashApplication.java
    └── resources
        ├── db
        │    └── migration
        └── application.properties

Requisitos

  • Java 11 ou superior
  • Maven 3.6.0 ou superior

Documentação da API

Este projeto utiliza o Springdoc OpenAPI para gerar a documentação dos endpoints da API.

Documentação Programática

A documentação da API está disponível nos seguintes formatos, sem a interface gráfica do Swagger UI:

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.

Configuração

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
}

Configuração do Banco de Dados

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

Compilação e Execução

  1. Clone o repositório:
git clone https://github.com/seu_usuario/seu_projeto.git
cd seu_projeto
  1. Compile o projeto com Maven:
mvn clean install
  1. Execute a aplicação
mvn spring-boot:run

A aplicação estará disponível em http://localhost:8080.

Endpoints da API

Dono

  • Adicionar um Novo Dono
POST /api/owners
{
  "name": "Jonh Doe",
  "phoneNumber" : "123456789"
}

Carros

  • 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
}

Lavagens

  • 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
}

Contribuição

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/nova-feature)
  3. Faça commit das suas mudanças (git commit -am 'Adiciona nova feature')
  4. Faça push para a branch (git push origin feature/nova-feature)
  5. Abra um Pull Request

Licença

Distribuído sob a licença MIT. Veja LICENSE para mais informações.


Desenvolvido por Lucas Alves

carwash-api's People

Contributors

lucasgpalves avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.