YoFi.V3 aims to be a modern personal finance tracking application that makes managing household money effortless through intelligent automation. We eliminate tedious manual categorization while providing the insights users need to make informed financial decisions.
Core Principles:
- Automation First - Minimize manual work through smart rules and pattern matching
- Multi-User Ready - Built for households and teams from day one
- Data Privacy - Your financial data stays under your control
- Clean UX - Simple workflows that don't overwhelm casual users
For detailed feature roadmap and release planning, see PRODUCT-ROADMAP.md.
- Nuxt 4 - Vue.js meta-framework
- Vue 3 - Progressive JavaScript framework
- Bootstrap 5 - CSS framework for responsive design
- @coliz/vue-base-controls - Reusable Vue+Bootstrap components
- TypeScript - Type-safe JavaScript
- .NET 10 - Cross-platform development framework
- ASP.NET Core - Web API framework
- Entity Framework Core - Object-relational mapper (ORM)
- .NET Aspire - Cloud-ready stack orchestration
- NUnit - Testing framework
- Playwright - End-to-end testing framework
- pnpm - Fast, disk space efficient package manager
- Azure Static Web Apps - Hosting for frontend application
- Azure App Service - Managed hosting for web applications
- Azure SQL Database - Managed relational database
- Azure Storage - Cloud object storage for documents and files
See ARCHITECTURE.md for detailed architecture documentation and Architecture Decision Records for key design decisions.
graph TB
User[User Browser]
subgraph "Frontend"
Nuxt[FrontEnd.Nuxt<br/>Vue 3 / Nuxt 4]
end
subgraph ".NET Backend"
Backend[BackEnd<br/>ASP.NET Core]
Controllers[Controllers<br/>HTTP API Layer]
Application[Application<br/>Business Logic]
Data[Data.Sqlite<br/>Entity Framework]
Entities[Entities<br/>Data Models & Interfaces]
Backend --> Controllers
Controllers --> Application
Application --> Data
Data --> Entities
end
subgraph "Development Tools"
AppHost[AppHost<br/>.NET Aspire]
WireAPI[WireApiHost<br/>TS Generator]
end
User <-->|HTTP| Nuxt
Nuxt <-->|REST API| Backend
WireAPI -.->|Generates| Nuxt
AppHost -.->|Orchestrates| Backend
AppHost -.->|Orchestrates| Nuxt
style Nuxt fill:#41b883
style Backend fill:#512bd4
style Application fill:#0078d4
style Data fill:#6db33f
- src/AppHost - .NET Aspire orchestration
- src/BackEnd - API host
- src/Controllers - HTTP API controllers
- src/Application - Business logic (Features)
- src/Data - Data access layer (Entity Framework)
- src/Entities - Data models and interfaces
- src/WireApiHost - TypeScript API client generator
- src/FrontEnd.Nuxt - Vue/Nuxt user interface
- tests/Unit - Unit tests for Application layer
- tests/Integration.Data - Integration tests for Data layer
- tests/Functional - Functional tests for end-to-end scenarios
For more details about the various environments where the app is built to run, please see ENVIRONMENTS.md.
Prerequisites: .NET 10.0 SDK, Node.js 24+, pnpm, Visual Studio 2022 or VS Code
Run the automated setup script after cloning:
.\scripts\Setup-Development.ps1This will verify tools, restore dependencies, build the solution, and run tests. Then start developing:
.\scripts\Start-LocalDev.ps1See CONTRIBUTING.md for detailed development guidelines and scripts/README.md for available automation scripts.
It's quick and easy to run the app:
- Clone the repository
- Ensure Docker is installed and running
- Build the containers
./scripts/Build-Container.ps1 - Run the containers
./scripts/Start-Container.ps1
This will open a browser window to the running app.