API de controle de despesas pessoais desenvolvida em .NET 10, aplicando arquitetura DDD (Domain Driven Design), princípios SOLID, Entity Framework Core com MySQL e boas práticas modernas de desenvolvimento backend.
Projeto em desenvolvimento e aprendizado contínuo.
Este repositório faz parte da minha jornada de estudos em .NET 10 e arquitetura de software. O projeto ainda não está 100% finalizado, pois está sendo construído conforme avanço nas aulas e nas implementações práticas.
A proposta deste repositório é registrar minha evolução como desenvolvedor, aplicando aos poucos conceitos importantes como DDD, SOLID, injeção de dependência, persistência de dados, testes e geração de relatórios.
O CashFlow é uma aplicação backend para controle de despesas pessoais. Mais do que entregar uma aplicação pronta, este projeto tem como objetivo servir como base prática para consolidar conhecimentos em:
- Arquitetura em camadas
- Separação de responsabilidades
- Boas práticas com APIs REST
- Escrita de código limpo e manutenível
- Modelagem de domínio
- Integração com banco de dados
- Fundamentos do DDD (Domain Driven Design)
- Escrita de código limpo, seguro e orientado ao domínio
- Aplicação de validações com estruturas condicionais
- Tratamento de exceções com try/catch
- Gerenciamento de pacotes com NuGet
- Validações elegantes com Fluent Validation
- Criação de filtros personalizados de exceções
- Escrita de testes de unidade para garantir qualidade e confiabilidade
- Integração da aplicação .NET com MySQL
- Mapeamento de entidades com Entity Framework Core
- Configuração do DbContext
- Injeção de dependências com Dependency Injection
- Simplificação de transformações de dados com AutoMapper
- Consultas performáticas com AsNoTracking
- Programação assíncrona com métodos async/await
- Princípios SOLID aplicados na prática
- Geração de relatórios profissionais em PDF
- Exportação de dados para Excel
- Versionamento do projeto com GitHub
- Colaboração com outras pessoas desenvolvedoras
- Manutenção do histórico do código de forma segura e organizada
| Tecnologia | Finalidade |
|---|---|
| .NET 10 | Framework principal |
| ASP.NET Core | Criação da API REST |
| Entity Framework Core | ORM para acesso ao banco de dados |
| MySQL | Banco de dados relacional |
| Fluent Validation | Validação de dados |
| AutoMapper | Mapeamento entre objetos |
| xUnit | Testes de unidade |
| Swagger / Scalar | Documentação da API |
| GitHub | Controle de versão |
O projeto segue os princípios do Domain Driven Design (DDD), com separação clara de responsabilidades:
src/
├── CashFlow.API/ # Camada de apresentação (Controllers, Filters)
├── CashFlow.Application/ # Casos de uso e regras de aplicação
├── CashFlow.Domain/ # Entidades, interfaces e regras de domínio
└── CashFlow.Infrastructure/ # Repositórios, DbContext e serviços externos
# Clone o repositório
git clone https://github.com/martoxm/cashflow-api.git
# Acesse a pasta do projeto
cd cashflow-api
# Configure a string de conexão no appsettings.json
# Depois execute as migrations
dotnet ef database update
# Execute o projeto
dotnet run --project src/CashFlow.APIEste projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Desenvolvido por Gabriel Martorelli 🚀