https://github.com/brunoknop/cashflow
API em .NET 8 para gerenciamento de despesas pessoais com DDD, testes unitários, e relatórios em PDF/Excel. Armazena dados via MySQL
https://github.com/brunoknop/cashflow
ddd dotnet entity-framework mysql restful-api swagger unity-test
Last synced: 2 months ago
JSON representation
API em .NET 8 para gerenciamento de despesas pessoais com DDD, testes unitários, e relatórios em PDF/Excel. Armazena dados via MySQL
- Host: GitHub
- URL: https://github.com/brunoknop/cashflow
- Owner: brunoknop
- Created: 2024-09-11T13:26:42.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-10-03T18:49:42.000Z (8 months ago)
- Last Synced: 2025-03-16T01:12:19.512Z (2 months ago)
- Topics: ddd, dotnet, entity-framework, mysql, restful-api, swagger, unity-test
- Language: C#
- Homepage:
- Size: 1.02 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Sobre o CashFlow
Esta **API**, desenvolvida utilizando .NET 8, adota os princípios do **Domain-Driven Design (DDD)** para oferecer uma solução estruturada e eficaz no gerenciamento de despesas pessoais. O principal objetivo é permitir que os usuários registrem suas despesas, detalhando informações como título, data e hora, descrição, valor e tipo de pagamento, com os dados sendo armazenados de forma segura em um banco de dados **MySQL**.
## Arquitetura
A arquitetura da API baseia-se em **REST**, utilizando **métodos HTTP padrão** para uma comunicação eficiente e simplificada. Além disso, é complementada por uma documentação **Swagger**, que proporciona uma interface gráfica interativa para que os desenvolvedores possam explorar e testar os endpoints de maneira fácil.
## Pacotes NuGet utilizados
- #### `AutoMapper`
É o responsável pelo mapeamento entre os objetos de domínio e requisição/resposta, reduzindo a necessidade de código repetitivo e manual.
- #### `FluentAssertions`
É utilizado nos testes de unidade para tornar as verificações mais legíveis, ajudando a escrever testes claros e compreensíveis. Para as validações.
- #### `FluentValidation`
É usado para implementar regras de validação de forma simples e intuitiva nas classes de requisições, mantendo o código limpo e fácil de mander.
- #### `EntityFramework`
atua como um ORM (Object-Relational Mapper) que simplifica as interações com o banco de dados, permitindo o uso de objetos .NET para manipular dados diretamente, sem a necessidade de lidar com consultas SQL.## Features
- **Domain-Driven Design (DDD)**: Estrutura modular que facilita o entendimento e a manutenção do domínio da aplicação
- **Testes de unidade**: Testes abrangentes com FluentAssertions para garantir a funcionalidade e a qualidade.
- **Geração de Relatórios**: Capacidade de exportar relatórios detalhados para **PDF e Excel**, oferecendo uma análise visual e eficaz das despezas.
- **RESTful API com Documentação Swagger**: Interface documentada que facilita a integração e o teste por parte dos desenvolvedores.## Construido com
![badge-dot-net]
![badge-mysql]
![badge-swagger]
![bedge-rider]## Getting Started
Para obter uma cópia local funcionando, siga estes passos simples:
### Requisitos
- [Visual Studio][visual-studio] versão 2022+ ou [Rider 2024][rider]
- Windows 10+ ou Linux/MacOS com [.NET SDK][dot-net-sdk] instalado
- MySql Server### Instalação
1. Clone o repositório:
```sh
[email protected]:brunoknop/CashFlow.git
```2. Preencha as informações no arquivo `appsettings.Development.json`
3. Execute a API e aproveite o seu teste :)[dot-net-sdk]: https://dotnet.microsoft.com/en-us/download/dotnet/8.0
[rider]: https://www.jetbrains.com/rider/
[visual-studio]: https://visualstudio.microsoft.com/pt-br/vs/[badge-dot-net]: https://img.shields.io/badge/.NET-512BD4?logo=dotnet&logoColor=fff&style=for-the-badge
[badge-mysql]: https://img.shields.io/badge/MySQL-4479A1?logo=mysql&logoColor=fff&style=for-the-badge
[badge-swagger]: https://img.shields.io/badge/Swagger-85EA2D?logo=swagger&logoColor=000&style=for-the-badge
[bedge-rider]: https://img.shields.io/badge/Rider-854cff?style=for-the-badge&logo=rider&logoColor=white