Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/devkayos/cashflow-api

API feita para fazer o controle de despesas, essa sera uma API desenvolvida utilizando C# e .NET feita para aprender e melhorar os conhecimentos de DDD e estrutura de projetos
https://github.com/devkayos/cashflow-api

ddd docker dotnet entity-framework mysql swagger test-automation

Last synced: about 2 hours ago
JSON representation

API feita para fazer o controle de despesas, essa sera uma API desenvolvida utilizando C# e .NET feita para aprender e melhorar os conhecimentos de DDD e estrutura de projetos

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

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 **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
- **RESTfull 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-rider]
![badge-arch-linux]
![badge-docker]
![badge-mysql]
![badge-swagger]

## Getting Started

Para obter uma copia local funcionando, siga estes passos simples.

### Requisitos

* Rider ou Visual Studio
* Windows 10+ ou Linux/MacOs com [.NET SDK][dot-net-sdk] instalado
* Docker

### installation

1. Clone o repositorio:
```sh
git clone https://github.com/DevKayoS/CashFlow-Api.git
```
3. Preencha as informacoes no arquivo `appsettings.Development.json`
4. Execute a API e aproveite o seu teste :)

[dot-net-sdk]: https://dotnet.microsoft.com/pt-br/download/dotnet/8.0

[badge-dot-net]: https://img.shields.io/badge/.NET-512BD4?logo=dotnet&logoColor=fff&style=for-the-badge
[badge-rider]: https://img.shields.io/badge/Rider-000?logo=rider&logoColor=fff&style=for-the-badge
[badge-arch-linux]: https://img.shields.io/badge/Arch%20Linux-1793D1?logo=archlinux&logoColor=fff&style=for-the-badge
[badge-docker]: https://img.shields.io/badge/Docker-2496ED?logo=docker&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