CoinStack is a cross-platform personal finance app focused on practical money management and long-term behavior change.
- Web: Blazor Server (
CoinStack) - Mobile: native .NET MAUI (
CoinStack.Mobile) - Data: EF Core + SQLite (current runtime)
It combines budgeting features with gamified feedback (score/streaks/reflections) to help users build consistent financial habits.
- Features
- Platforms
- Current Architecture
- Roadmap
- Repository Structure
- Getting Started
- Build and Run
- Testing
- Troubleshooting
- Known Gaps / Open Work
- License
- Dashboard
- Transactions
- Buckets/Budgets
- Goals
- Savings
- Subscriptions
- Debt
- Debt Simulator
- Reports
- Waitlist
- Settings
- Daily check-ins and streak progression
- Score event tracking for budget behaviors
- Reflection prompts for key triggers (over-budget, impulse spend, savings dip)
- Blazor web app: primary full-featured experience
- MAUI mobile app: native mobile shell with major module parity (actively iterated)
- .NET 10 solution with shared domain entities and data layer
- EF Core + SQLite persistence
- Service-oriented business logic (transactions, scoring, reflections, savings, debt, reporting)
- Deeper analytics and richer report filters
- Reminder/notification workflows
- More automation around goals/savings/debt planning
- Continued mobile UX and parity polish
- Shared backend API for Blazor + MAUI
- Server-hosted central database for sync-enabled users
- Dual data mode:
- Local-only (offline-first)
- Synced (API + server DB)
This allows users to choose between privacy/local control and cross-device sync convenience.
CoinStack/– Blazor Server appCoinStack.Mobile/– native MAUI appCoinStack.Mobile.Core/– shared mobile helper abstractionsCoinStack.Data/– EF Core DbContext, entities, migrationsCoinStack.Tests/– unit/integration test projectAspire.CoinStack/– Aspire app host/orchestration
- Git
- .NET 10 SDK
- Visual Studio 2022 (17.10+ recommended) with:
- .NET Multi-platform App UI development workload
- ASP.NET and web development workload
- (Optional) Desktop development with C++ if you need Android emulator acceleration support
-
Windows desktop target
- Windows 10 (19041+) or Windows 11
- Windows App SDK dependencies installed by Visual Studio workloads
-
Android target
- Android SDK + platform tools (installed via Visual Studio)
- At least one Android Emulator image (or a physical device with USB debugging enabled)
- Java SDK (managed by Visual Studio/Android tooling)
Restore dependencies:
dotnet restore CoinStack.slnxInstall MAUI workloads (only needed once per machine):
dotnet workload install mauiOptional, if mobile build/runtime dependencies drift:
dotnet workload restoreVerify installed SDKs/workloads:
dotnet --list-sdks
dotnet workload listTrust local HTTPS development certificate (for web app localhost HTTPS):
dotnet dev-certs https --trustgit clone https://github.com/<your-username>/coin-stack.git
cd coin-stackdotnet build CoinStack.slnx -c Releasedotnet run --project CoinStack/CoinStack.csprojThen open the URL shown in terminal (typically https://localhost:7xxx or http://localhost:5xxx).
dotnet build CoinStack.Mobile/CoinStack.Mobile.csproj -t:Run -f net10.0-windows10.0.19041.0dotnet build CoinStack.Mobile/CoinStack.Mobile.csproj -t:Run -f net10.0-androidThis requires an Android emulator/device running and visible to Visual Studio/ADB.
dotnet build CoinStack.Mobile/CoinStack.Mobile.csproj -c ReleaseRun tests:
dotnet test CoinStack.Tests/CoinStack.Tests.csprojRun:
dotnet workload install maui
dotnet workload restoreIf still failing, close Visual Studio/VS Code and rerun the commands in a fresh terminal.
- Start an emulator from Visual Studio's Android Device Manager first.
- For physical devices, enable Developer Options + USB Debugging.
- Verify ADB can see the device:
adb devicesRun:
dotnet dev-certs https --clean
dotnet dev-certs https --trustThen restart the browser and rerun the app.
- Confirm the terminal output URL and open that exact address.
- Check for port conflicts from other running apps.
- Try forcing a specific URL:
dotnet run --project CoinStack/CoinStack.csproj --urls "https://localhost:7043;http://localhost:5043"dotnet nuget locals all --clear
dotnet restore CoinStack.slnxdotnet clean CoinStack.slnx
dotnet build CoinStack.slnx -c Release- Reconnect UX still requires final manual scenario verification
- Shared API/server sync mode is planned but not yet production-integrated
- Mobile parity is strong but still under active QA and UX refinement
This project is licensed under CC BY-NC-SA 4.0.
You may copy, use, and modify the project with attribution, but you may not use it commercially.
See LICENSE for full details.