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
- Precision Financial Tracking: 8-decimal precision using rust_decimal
- Multi-Account Management: Track multiple accounts (bank, cash, digital wallets)
- Smart Automation: Scheduled transactions, auto-contributions to goals
- Receipt Intelligence: OCR-based receipt data extraction
- Goal-Oriented: Visual goal tracking with automatic contributions
- Multi-Currency: Full support for international transactions
- 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:
- architecture.md - System architecture and data flow
- database.md - Complete database schema (SeaORM)
- features.md - Feature specifications and workflows
- ui-design.md - UI/UX design guidelines
- technical-specs.md - Technical implementation details
- api-reference.md - Tauri commands and data structures
- 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)
- Cloud sync across devices
- Bank import integration (HSBC, Hang Seng APIs)
- Investment account support
- Advanced analytics and reporting
- Shared accounts (family/partner)
- 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