FinanceManager

GitHub stars GitHub issues .NET 10 Blazor WASM Live App

FinanceManager

FinanceManager is an open-source personal finance tracker built with Blazor WebAssembly and ASP.NET Core. It lets you manage all your accounts — cash, stocks, and bonds — in one place, with a rich analytics dashboard, AI-powered insights, and real-time market data.

Live App


Screenshots

Dashboard

Get a complete picture of your finances at a glance — net worth, cash flow, asset allocation, and AI-generated insights all in one place.

Dashboard

Assets

View and manage all your financial accounts across multiple asset classes.

Assets

Account Details

Drill into individual accounts to inspect transactions, trends, and performance metrics.

Account Details


Features

Dashboard

The dashboard aggregates data across all your accounts and presents it through a collection of interactive cards:

Financial Accounts

Three account types are fully supported, each with dedicated views:

Account type What it tracks
Currency Cash balances and everyday transactions
Stock Equity holdings with live price updates
Bond Fixed-income securities, including inflation-linked bonds

Data Management

Real-Time Market Data

AI-Powered Features

User & Admin


Tech Stack

Layer Technology
Frontend Blazor WebAssembly, MudBlazor (Material Design), ApexCharts.js
Backend ASP.NET Core 10, SignalR, Entity Framework Core
Database PostgreSQL (SQL Server also supported)
AI / LLM OpenRouter, GitHub Models, Ollama, LM Studio
Market data Alpha Vantage API
Observability OpenTelemetry (OTLP export)
Local orchestration .NET Aspire
Testing xUnit, Moq, WebApplicationFactory, Coverlet

The solution follows a layered modular monolith architecture:

Blazor component → typed HttpClient → API controller → application service → domain service → repository

Key design decisions worth noting for reviewers:


Getting Started

Prerequisites

dotnet run --project code/AppHost

This starts a PostgreSQL container and the API automatically.

Run manually

# Restore and build
dotnet restore ./code
dotnet build ./code/FinanceManager.slnx

# Apply database migrations
dotnet ef database update -s code/FinanceManager.Api/FinanceManager.Api.csproj

# Start the API (also serves the Blazor WASM client)
dotnet run --project code/FinanceManager.Api

Then open https://localhost:5001 in your browser.

For production backup, restore, and rollback steps on Supabase, see RUNBOOK.md.

Run tests

# All tests
dotnet test ./code/FinanceManager.slnx

# Unit tests only
dotnet test ./code/FinanceManager.Tests.Unit/FinanceManager.Tests.Unit.csproj

# Integration tests (uses in-memory DB)
UseInMemoryDatabase=true dotnet test ./code/FinanceManager.Tests.Integration/FinanceManager.Tests.Integration.csproj

External API keys (optional)

Supply these via environment variables or .NET User Secrets — never commit them:

Variable Service
AlphaVantage__ApiKey Live stock prices
OpenRouter__ApiKey OpenRouter LLM
GitHubModels__Token GitHub Models LLM

Author