Coder Social home page Coder Social logo

controle-despesas-spring-boot's Introduction

Controle de Despesas

Este é um projeto de Controle de Despesas desenvolvido com Java e Spring Boot. A aplicação permite registrar, categorizar despesas e gerar relatórios financeiros através de uma API RESTful.

Funcionalidades

  • Adicionar uma nova despesa
  • Listar todas as despesas
  • Atualizar uma despesa existente
  • Deletar uma despesa
  • Gerar relatórios por categoria
  • Calcular o total de despesas

Tecnologias Utilizadas

  • Java 11
  • Spring Boot 2.6
  • Spring Data JPA
  • H2 Database

Configuração do Projeto

Pré-requisitos

  • Java 11 ou superior instalado
  • Maven instalado

Passo a Passo

  1. Clone o repositório:

    git clone https://github.com/leoportogtr86/controle-despesas-spring-boot.git
    cd controle-despesas-spring-boot
  2. Configuração do banco de dados:

    O projeto está configurado para usar o banco de dados H2 em memória. A configuração pode ser encontrada no arquivo src/main/resources/application.properties:

    spring.datasource.url=jdbc:h2:mem:testdb
    spring.datasource.driverClassName=org.h2.Driver
    spring.datasource.username=sa
    spring.datasource.password=password
    spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
    spring.h2.console.enabled=true
    spring.jpa.hibernate.ddl-auto=update
  3. Execute a aplicação:

    mvn spring-boot:run
  4. Acesse o console do H2:

    O console do H2 pode ser acessado em http://localhost:8080/h2-console. Use as seguintes credenciais:

    • JDBC URL: jdbc:h2:mem:testdb
    • User Name: sa
    • Password: password

Endpoints da API

Listar todas as despesas

  • URL: /api/expenses

  • Método: GET

  • Resposta: Lista de despesas

    [
        {
            "id": 1,
            "description": "Compra de supermercado",
            "amount": 150.0,
            "category": "Alimentação",
            "date": "2024-07-01"
        },
        ...
    ]

Adicionar uma nova despesa

  • URL: /api/expenses

  • Método: POST

  • Corpo da Requisição:

    {
        "description": "Compra de supermercado",
        "amount": 150.0,
        "category": "Alimentação",
        "date": "2024-07-01"
    }
  • Resposta: Despesa criada

    {
        "id": 1,
        "description": "Compra de supermercado",
        "amount": 150.0,
        "category": "Alimentação",
        "date": "2024-07-01"
    }

Atualizar uma despesa existente

  • URL: /api/expenses/{id}

  • Método: PUT

  • Corpo da Requisição:

    {
        "description": "Compra de supermercado",
        "amount": 180.0,
        "category": "Alimentação",
        "date": "2024-07-01"
    }
  • Resposta: Despesa atualizada

    {
        "id": 1,
        "description": "Compra de supermercado",
        "amount": 180.0,
        "category": "Alimentação",
        "date": "2024-07-01"
    }

Deletar uma despesa

  • URL: /api/expenses/{id}
  • Método: DELETE
  • Resposta: Código de status 204 (No Content)

Relatórios por categoria

  • URL: /api/expenses/category/{category}

  • Método: GET

  • Resposta: Lista de despesas da categoria especificada

    [
        {
            "id": 1,
            "description": "Compra de supermercado",
            "amount": 150.0,
            "category": "Alimentação",
            "date": "2024-07-01"
        },
        ...
    ]

Total de despesas

  • URL: /api/expenses/total

  • Método: GET

  • Resposta: Total de despesas

    1500.0

Estrutura do Projeto

src
├── main
│   ├── java
│   │   └── com
│   │       └── example
│   │           └── expensemanager
│   │               ├── ExpenseManagerApplication.java
│   │               ├── controller
│   │               │   └── ExpenseController.java
│   │               ├── model
│   │               │   └── Expense.java
│   │               ├── repository
│   │               │   └── ExpenseRepository.java
│   │               └── service
│   │                   └── ExpenseService.java
│   └── resources
│       ├── application.properties
│       └── data.sql
└── test
    └── java
        └── com
            └── example
                └── expensemanager
                    └── ExpenseManagerApplicationTests.java

controle-despesas-spring-boot's People

Contributors

leoportogtr86 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.