https://github.com/davisllv/cashflow
Esta API, feita em .NET 8 com princípios de Domain-Driven Design (DDD), gerencia despesas pessoais armazenando-as em um banco de dados MySQL de forma segura. Utiliza arquitetura REST e tem documentação Swagger para facilitar testes. Inclui mapeamento de objetos com AutoMapper, testes de unidade com FluentAssertions, validações com FluentValidation
https://github.com/davisllv/cashflow
csharp ddd-architecture entity-framework-core jwt netcore solid-principles
Last synced: about 1 month ago
JSON representation
Esta API, feita em .NET 8 com princípios de Domain-Driven Design (DDD), gerencia despesas pessoais armazenando-as em um banco de dados MySQL de forma segura. Utiliza arquitetura REST e tem documentação Swagger para facilitar testes. Inclui mapeamento de objetos com AutoMapper, testes de unidade com FluentAssertions, validações com FluentValidation
- Host: GitHub
- URL: https://github.com/davisllv/cashflow
- Owner: davisllv
- Created: 2024-12-11T15:23:47.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-17T00:50:20.000Z (over 1 year ago)
- Last Synced: 2025-03-04T12:53:30.658Z (over 1 year ago)
- Topics: csharp, ddd-architecture, entity-framework-core, jwt, netcore, solid-principles
- Language: C#
- Homepage:
- Size: 1.03 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Sobre o projeto
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 objetivo principal é 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**.
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.
Dentre os **pacotes NuGet** utilizados, o **AutoMapper** é o responsável pelo mapeamento entre objetos de domínio e requisição/resposta, reduzindo a necessidade de código repetitivo e manual. O **Shoudly and 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, o **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 manter. Por fim, o ***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 despesas.
- **RESTful API com Documentação Swagger**: Interface documentada que facilita a integração e o teste por parte dos desenvolvedores.
## Construído com



## Getting Started
Para obter uma cópia local funcionando, siga estes passos simples.
### Requisitos
* Visual Studio versão 2022+ ou Visual Studio Code
* Windows 10+ ou Linux/MacOS com [.NET SDK][dot-net-sdk] instalado
* MySQL Server
## Instalação
1. Clone o repositório:
```sh
git clone https://github.com/davisllv/CashFlow.git
```
2. Preencha as informações no arquivo `appsettings.Development.json.`
Execute a API e aproveite o seu teste :)
[dot-net-sdk]: https://dotnet.microsoft.com/en-us/download/dotnet/8.0