Skip to content

pedmrs/budget-tracker-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Budget Tracker API

API para gerenciar receitas e despesas pessoais. É possível categorizar transações, marcar despesas como essenciais ou não essenciais e visualizar resumos financeiros.

Arquitetura

src/
├── domain/            # Entidades e regras de negócio
│   ├── entities/      # Entidades de domínio (Transaction)
│   └── repositories/  # Interfaces de repositórios
├── application/       # Casos de uso e lógica de negócio
│   └── use_cases/     # Serviços da aplicação
├── infra/             # Camada de infraestrutura
│   ├── models.py      # Modelos SQLAlchemy
│   ├── db.py          # Configuração do banco de dados
│   └── repositories/  # Implementações de repositórios
├── api/               # Camada de API
│   ├── controllers/   # Controladores e validação
│   ├── routes/        # Rotas HTTP
│   └── docs/          # Documentação Swagger/OpenAPI
└── app.py             # Configuração e inicialização da aplicação

Pré-requisitos

  • Python 3.12+
  • uv package manager

Instalação

  1. Clonar o repositório

    git clone git@github.com:pedmrs/budget-tracker-api.git
    cd budget-tracker-api
  2. Instalar dependências

    uv sync
  3. Rodar a aplicação

    uv run python src/app.py
  4. Acessar a API

    • API disponível em: http://localhost:5000

Endpoints

Method Endpoint Description
GET / Informações da API e endpoints disponíveis
GET /transactions/ Listar todas as transações (com paginação)
POST /transactions/ Criar uma nova transação
GET /transactions/{id} Buscar uma transação específica
PUT /transactions/{id} Atualizar uma transação
DELETE /transactions/{id} Excluir uma transação
GET /transactions/summary Obter resumo financeiro

Como utilizar

A API conta com um Swagger UI para documentação e teste de endpoints. Acesse http://localhost:5000/apidocs para visualizar.

Transaction

A Transaction é a única entidade da API. Ela representa uma transação financeira, que pode ser uma receita ou uma despesa. O tipo de transação é determinado pelo campo transaction_type, que pode ser income (receita) ou expense (despesa). O campo essential_expense indica se a transação é essencial, ou seja, se é uma despesa que não pode ser omitida. O campo date é a data da transação, em Unix timestamp. Os campos created_at e updated_at são timestamps de criação e atualização do registro, respectivamente.

Field Type Required Description
id Integer Auto ID único
description String Sim Descrição da transação
amount Decimal Sim Valor da transação
category String Sim Categoria da transação
transaction_type Enum Sim income ou expense
essential_expense Boolean Sim Indica se é uma despesa essencial
date Integer Sim Data da transação (Unix timestamp)
created_at Integer Auto Timestamp de criação do registro
updated_at Integer Auto Timestamp da última atualização

Resetar o banco de dados

O projeto utiliza um banco de dados SQLite, que é armazenado no arquivo budget_tracker.db. Para resetar o banco de dados, basta deletar o arquivo budget_tracker.db.

rm instance/budget_tracker.db

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages