Networth is a personal financial aggregation application built with .NET Aspire. It allows users to track their net worth, view asset allocation, and sync accounts from various financial institutions using the GoCardless API.
- Dashboard: Real-time overview of Net Worth, Total Assets, Liabilities, and Cash Flow.
- Asset Allocation: Visual breakdown of assets (Cash, Crypto, Real Estate, Stocks).
- Account Sync: Integration with GoCardless to sync bank account balances and transactions.
- Trend Analysis: Historical view of net worth over time.
- Orchestration: .NET Aspire
- Backend: Azure Functions (.NET 10 Isolated Worker)
- Frontend: React (Vite + Tailwind CSS)
- Database: PostgreSQL (EF Core)
- Infrastructure: Azure Storage Queues (Azurite for local dev)
- .NET 10 SDK
- Docker Desktop
- Node.js (optional, for frontend development)
Run the complete application stack (PostgreSQL, Azure Functions, React frontend, Documentation):
dotnet run --project Networth.AppHostThis starts all services including:
- PostgreSQL with PgAdmin (port 5050)
- Azure Functions backend
- React frontend (port 3000)
- Docusaurus documentation (port 3001)
- Aspire Dashboard (https://localhost:17065)
Comprehensive architecture documentation is available in the Docusaurus site:
- Local: Run
dotnet run --project Networth.AppHostand navigate to http://localhost:3001 - Standalone: See Networth.Docs/README.md for running docs independently
The documentation includes:
- Architecture overview and design patterns
- Component documentation (Functions, Application, Infrastructure, Domain)
- Data flow diagrams
- API reference with Scalar integration
Set the following user secrets in the AppHost project using the .NET CLI:
dotnet user-secrets set "Gocardless:SecretId" "YOUR_SECRET_ID" --project Networth.AppHost
dotnet user-secrets set "Gocardless:SecretKey" "YOUR_SECRET_KEY" --project Networth.AppHostThe PostgreSQL password is configured in appsettings.json:
"Parameters": {
"postgres-password": "LocalDevPassword123!"
}System tests use Playwright for end-to-end testing. You must install the Playwright browsers before running these tests:
Install the required browsers:
pwsh Tests/Networth.Functions.System.Tests/bin/Debug/net10.0/playwright.ps1 installThis project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.
