Skip to content

gabrielcamposdeveloper/FinancialProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Š FinOps Core - Financial Management and Reconciliation System

.NET C%23 Angular Oracle Entity Framework Core Dapper Docker Kubernetes GitHub Actions License

Architecture DDD CQRS MediatR Result Pattern Unit of Work

Corporate application developed to demonstrate advanced architectural patterns, financial data integrity, and high-performance read operations using CQRS.


πŸ›οΈ Architecture

The solution follows Clean Architecture and Domain-Driven Design (DDD), keeping business rules completely isolated from infrastructure and frameworks.

To support scalability and high throughput, the application adopts CQRS (Command Query Responsibility Segregation).

✍️ Command Side (Write)

  • Entity Framework Core
  • Unit of Work
  • Rich Domain Model
  • Optimistic Concurrency
  • ACID Transactions
  • FluentValidation
  • MediatR

Business operations pass through the domain layer, ensuring consistency and protecting financial transactions.


πŸ“– Query Side (Read)

  • Dapper
  • Native SQL
  • Lightweight DTOs
  • Optimized Queries

Read operations bypass ORM tracking, delivering significantly faster dashboard and reporting performance.


🧩 Design Patterns

Pattern Purpose
βœ… Clean Architecture Separation of concerns
βœ… Domain-Driven Design Rich business domain
βœ… CQRS Read/Write segregation
βœ… Unit of Work Transaction management
βœ… Repository Pattern Persistence abstraction
βœ… MediatR Decoupled application layer
βœ… Result Pattern Business validation without exceptions
βœ… Dependency Injection Loose coupling
βœ… Idempotency Prevent duplicate financial requests

πŸš€ Tech Stack

Backend

Technology Description
.NET 8 Backend
C# Programming Language
Entity Framework Core Commands
Dapper High-performance Queries
MediatR CQRS
FluentValidation Validation
LINQ Data Manipulation
xUnit Unit Tests
Moq Mocking

Frontend

Technology Description
Angular SPA
TypeScript Language
SCSS Styling
RxJS Reactive Programming
HTTP Interceptors Authentication & Error Handling

Infrastructure

Technology Description
Oracle Database Relational Database
Docker Containers
Docker Compose Local Environment
Kubernetes Deployment
GitHub Actions CI/CD

πŸ“‚ Project Structure

src
β”œβ”€β”€ FinancialSystem.Domain
β”‚   β”œβ”€β”€ Entities
β”‚   β”œβ”€β”€ ValueObjects
β”‚   β”œβ”€β”€ Enums
β”‚   β”œβ”€β”€ Events
β”‚   └── Interfaces
β”‚
β”œβ”€β”€ FinancialSystem.Application
β”‚   β”œβ”€β”€ Commands
β”‚   β”œβ”€β”€ Queries
β”‚   β”œβ”€β”€ DTOs
β”‚   β”œβ”€β”€ Validators
β”‚   └── Behaviors
β”‚
β”œβ”€β”€ FinancialSystem.Infrastructure
β”‚   β”œβ”€β”€ Persistence
β”‚   β”œβ”€β”€ Dapper
β”‚   β”œβ”€β”€ Repositories
β”‚   └── Services
β”‚
└── FinancialSystem.API
    β”œβ”€β”€ Controllers
    β”œβ”€β”€ Middleware
    β”œβ”€β”€ Filters
    └── Configuration

frontend
└── financial-app

k8s
└── deployment

⚑ Running Locally

Requirements

  • Docker Desktop
  • .NET SDK 8
  • Node.js
  • Angular CLI

Clone Repository

git clone https://github.com/your-user/finops-core.git

cd finops-core

Start Oracle

docker compose up -d db

Apply Migrations

cd src/FinancialSystem.API

dotnet ef database update

dotnet run

Swagger

https://localhost:5001/swagger

Angular

cd frontend/financial-app

npm install

ng serve
http://localhost:4200

πŸ§ͺ Tests

cd src

dotnet test

πŸ“ˆ Main Features

  • Financial Reconciliation
  • Cash Flow Management
  • CQRS Architecture
  • Dashboard Queries
  • High Performance Reads
  • Rich Domain Validation
  • Transaction Management
  • Optimistic Concurrency
  • Idempotent Requests
  • Unit Testing

πŸ‘¨β€πŸ’» Author

Gabriel Campos

GitHub


πŸ“„ License

MIT

Licensed under the MIT License.

About

Enterprise application developed to demonstrate advanced architectural patterns, high-performance data querying, and financial data integrity.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages