Files
finwise/doc

Finance Tracking App - Overview

Project Description

A comprehensive finance planning and tracking application built with Tauri for cross-platform support (iOS, Android, and Web). The app focuses on expense tracking, receipt recognition, multi-currency support, and financial goal management.

Target Platforms

  • iOS (Primary)
  • Android (Primary)
  • Web (via Tauri Web target)

Core Value Propositions

  1. Precision Financial Tracking: 8-decimal precision using rust_decimal
  2. Multi-Account Management: Track multiple accounts (bank, cash, digital wallets)
  3. Smart Automation: Scheduled transactions, auto-contributions to goals
  4. Receipt Intelligence: OCR-based receipt data extraction
  5. Goal-Oriented: Visual goal tracking with automatic contributions
  6. Multi-Currency: Full support for international transactions
  7. Offline-First: Works without internet, sync-ready for future cloud features

User Personas

Primary: Hong Kong Professional

  • Manages multiple bank accounts (HSBC, Hang Seng, etc.)
  • Uses digital wallets (PayMe, AlipayHK, Octopus)
  • Travels frequently (multi-currency needs)
  • Wants to track spending and save for goals
  • Prefers English or Traditional Chinese interface

Secondary: Multi-Account User

  • Has checking, savings, credit cards, and cash
  • Wants combined view of all finances
  • Needs budget tracking across accounts
  • Wants to track loans and liabilities

Success Metrics

  • Complete transaction entry in < 30 seconds
  • Receipt processing accuracy > 90%
  • App launch time < 3 seconds
  • Works offline 100%

Document Structure

This documentation is organized into:

  1. architecture.md - System architecture and data flow
  2. database.md - Complete database schema (SeaORM)
  3. features.md - Feature specifications and workflows
  4. ui-design.md - UI/UX design guidelines
  5. technical-specs.md - Technical implementation details
  6. api-reference.md - Tauri commands and data structures
  7. validation.md - Input validation (validator crate + Zod)

Key Design Decisions

Precision

  • All financial amounts stored with 8 decimal precision
  • Use rust_decimal for accurate calculations
  • Never use floating-point for money

Time Handling

  • All datetimes stored in UTC
  • Display in user's local timezone
  • User-adjustable timezone in settings

Categories

  • Flat tag-based system (no hierarchy)
  • Multiple tags per transaction
  • Budgets based on tag combinations

Scheduled Transactions

  • Auto-insert on due date at configurable time (default 00:00)
  • Marked as "needs review" when auto-inserted
  • Support for complex recurrence patterns

Goals

  • Real-time auto-contribution when transactions added
  • Contribution rules based on transaction tags
  • Visual progress tracking

Multi-Device Ready

  • UUID-based identifiers
  • Version tracking for conflict resolution
  • Soft deletes for sync compatibility

Future Roadmap (Post-MVP)

  1. Cloud sync across devices
  2. Bank import integration (HSBC, Hang Seng APIs)
  3. Investment account support
  4. Advanced analytics and reporting
  5. Shared accounts (family/partner)
  6. Bill reminders and notifications

Team Structure

2-Person Team:

  • Person A: Rust backend, database, business logic
  • Person B: React frontend, UI/UX, mobile optimization

Timeline

  • MVP Duration: 8-10 weeks
  • Phase 1 (Weeks 1-2): Foundation
  • Phase 2 (Weeks 3-4): Core Features
  • Phase 3 (Weeks 5-6): Advanced Features
  • Phase 4 (Weeks 7-8): Polish & Testing
  • Phase 5 (Weeks 9-10): Release

License

TBD - Internal use for now

Contact

TBD