DEV Community

Gustavo felix
Gustavo felix

Posted on

From Tutorials to a Real Banking Platform: Inside Alvor Bank (.NET 10 + Angular 21 Nx Monorepo)

Most of us start our careers building small tutorial projects:

  • todo apps
  • basic CRUD APIs
  • simple dashboards

They’re great for learning syntax… but they don’t prepare you for production systems with:

  • authentication & authorization
  • domains like Customers, Accounts, Transactions
  • CI/CD pipelines
  • test coverage & quality gates
  • microservices boundaries
  • real frontend architecture

So I decided to build something closer to what I see in real work:

A full digital banking platform called Alvor Bank, using .NET 10 and Angular 21.

In this post I’m sharing a quick architecture & quality overview of the system. The same slides are what I use in my roadmap/slide deck.

You can use this as a reference for your own full-stack projects.


1. High-Level Architecture

At a high level, Alvor Bank is split into:

  • API Gateway (YARP)
  • IAM Service (auth, tenants, roles)
  • Customer Service
  • Account Service
  • Transaction Service
  • Notification Service
  • Angular frontends for Admin and Branch/Cashier portals
  • RabbitMQ for events
  • PostgreSQL databases per microservice

Alvor Bank Architecture

The idea is simple:

  • IAM owns identity & access
  • CustomerService owns customer data
  • AccountService owns account rules and balances
  • TransactionService owns money movement
  • NotificationService reacts to events and communicates with users

Each service changes for its own reasons, which keeps the boundaries clean.


2. Solution Structure & Clean Architecture

On the backend, each microservice follows the same structure:

  • *.Domain – entities, value objects, domain services
  • *.Application – use cases, DTOs, interfaces
  • *.Infrastructure – EF Core, repositories, external integrations
  • *.API – Minimal API / controllers, DI wiring, input/output models

This makes it easy to:

  • onboard new developers
  • navigate the codebase
  • apply the same patterns across services

Example slide (VS solution explorer):

Solution Structure

Even though each service has its own solution/projects, the structure is consistent, which pays off a lot as the system grows.


3. Test Coverage as a Quality Gate

One thing I didn’t want was “we’ll add tests later” (a lie we’ve all told ourselves).

So from the beginning:

  • there are unit tests for domain logic
  • integration tests for API + database
  • test projects are first-class citizens in the solution
  • the CI pipeline fails if coverage drops below a threshold

Example slide for this section:

Test Coverage & Quality Gates

This shifts tests from “nice to have” to an actual quality gate.


4. CI/CD Pipeline (GitHub Actions)

Every pull request triggers an automated pipeline that:

  1. Restores & builds the backend (all microservices)
  2. Restores & builds the frontend (Angular Nx)
  3. Runs all tests (unit + integration)
  4. Runs linters (backend + frontend)
  5. Builds Docker images (where applicable)

In later stages, this can be extended to:

  • push images to a registry
  • deploy to dev/staging environments

Example slide for CI/CD:

CI/CD Pipeline

CI/CD Pipeline

This way, “it works on my machine” is no longer the standard.


5. Security & IAM

For a banking system, security isn’t optional.

Alvor Bank uses:

  • a dedicated IAM Service (based on ASP.NET Identity)
  • JWT for authentication
  • roles & claims for authorization
  • tenant-aware flows for multi-tenant scenarios
  • secure APIs behind the gateway

Instead of sprinkling [Authorize] everywhere randomly, the goal is to design clear boundaries:

  • what each role can do
  • where trust is enforced

6. Final Scope: What the System Actually Does

Alvor Bank is not just architecture for architecture’s sake.

The planned scope includes:

  • Customer onboarding
  • Creating and managing accounts
  • Deposits, withdrawals, transfers
  • Viewing balances and transaction history
  • Admin features and branch/cashier workflows
  • Notifications triggered by business events
  • Angular portals integrated with all backend services

Cover Book


Why I’m Building This (and Where to Follow Along)

I’ve seen a lot of content about:

  • microservices
  • Angular
  • CI/CD
  • Docker

…but very little that connects everything into one real, end-to-end system.

So I’m building Alvor Bank in public and documenting the full journey in an early-access book:

📘 Modern Full-Stack Banking Microservices

A step-by-step guide to building a digital banking platform with .NET, Angular, microservices, Docker, RabbitMQ, PostgreSQL, and GitHub Actions CI/CD.

👉 You can check it out here:

The Book

New chapters and updates are being added as the system evolves.


If you’ve built something similar (fintech, banking, event-driven systems), I’d love to hear:

What’s one non-negotiable quality gate you enforce in your pipelines?

Top comments (0)