A secure, feature-rich Flutter application for tracking and analyzing your financial data with bank-grade security and intelligent insights.
- PIN Authentication - Secure 4-6 digit PIN protection
- Biometric Authentication - Face ID, Fingerprint, and Iris support
- Local Data Storage - All data stored securely on device
- Encrypted Database - SQLite with encryption for sensitive data
- Auto-lockout Protection - Prevents brute force attacks
- Account Management - Multiple account support (checking, savings, credit)
- Transaction Tracking - Comprehensive transaction history
- Category System - Smart categorization with custom categories
- Balance Overview - Real-time balance tracking across accounts
- Sync Status - Track data synchronization state
- Adaptive Themes - Light, dark, and system-adaptive modes
- Premium Design - Clean, modern interface with smooth animations
- Responsive Layout - Optimized for various screen sizes
- Accessibility - Full accessibility support
- AI-Powered Insights - Spending pattern analysis
- Financial Summaries - Intelligent spending reports
- Smart Suggestions - Personalized financial recommendations
TrackFi follows Clean Architecture principles with a feature-driven folder structure:
lib/
βββ app/ # App configuration and theming
βββ core/ # Core business logic and infrastructure
β βββ config/ # Environment and app configuration
β βββ contracts/ # Interface definitions (repositories, services)
β βββ models/ # Core data models
β βββ providers/ # Riverpod providers for dependency injection
β βββ services/ # Core services (auth, database, storage)
β βββ theme/ # Design system and theming
β βββ router/ # Navigation and routing
βββ features/ # Feature modules
β βββ auth/ # Authentication flow
β βββ dashboard/ # Main dashboard
β βββ onboarding/ # User onboarding
βββ shared/ # Shared widgets and utilities
- State Management: Riverpod 2.6+ with code generation
- Database: SQLite with encrypted storage
- Security: Flutter Secure Storage + Biometric authentication
- UI: Material 3 with FlexColorScheme
- Navigation: GoRouter with declarative routing
- Animations: Flutter Animate for smooth transitions
- Flutter SDK 3.7.2 or higher
- Dart SDK 3.0+
- Android Studio / VS Code with Flutter extensions
- iOS development: Xcode 14+ (for iOS builds)
-
Clone the repository
git clone https://github.com/punkrock34/trackfi.git cd trackfi -
Install dependencies
flutter pub get
-
Set up environment configuration
# Copy the environment template cp lib/core/config/.env.development.ini lib/core/config/.env.ini -
Generate code (for Riverpod providers)
dart run build_runner build
-
Run the application
flutter run
- Welcome screen with feature highlights
- PIN setup (4-6 digits)
- Biometric authentication setup (optional)
- Theme customization
- Onboarding completion
- Biometric authentication (if enabled)
- PIN fallback with attempt limiting
- Auto-lockout protection after failed attempts
- Account balance overview
- Recent transactions
- Quick actions
- Spending insights
- Local-first approach - No cloud storage of sensitive data
- SQLite encryption - Database-level encryption
- Secure key storage - Platform-specific secure storage
- PIN hashing - Salted SHA-256 hashing
- Biometric integration - Native platform biometric APIs
- Failed attempt tracking - Progressive lockout system
- Session management - Automatic session expiration
- Background protection - App content hiding in app switcher
TrackFi implements a comprehensive design system with:
- Design Tokens - Consistent spacing, colors, and typography
- Component Library - Reusable UI components
- Adaptive Theming - Light/dark mode support
- Responsive Design - Mobile-first with tablet support
- Accessibility - WCAG 2.1 compliance
- Premium Black:
#0A0A0A- Primary brand color - Premium White:
#FAFAFA- Light theme background - Accent Gold:
#D4AF37- Premium accent color - Success Green:
#10B981- Success states - Error Red:
#EF4444- Error states
The app uses code generation for Riverpod providers:
# Watch for changes and regenerate code
dart run build_runner watch
# One-time generation
dart run build_runner build --delete-conflicting-outputsDifferent configurations for development and production:
lib/core/config/.env.development.ini- Development settingslib/core/config/.env.production.ini- Production settings
# Run all tests
flutter test
# Run tests with coverage
flutter test --coverage# Debug build
flutter build apk --debug
# Release build
flutter build apk --release
# App Bundle for Play Store
flutter build appbundle --release# Debug build
flutter build ios --debug
# Release build
flutter build ios --release- Beta Status: App is in active development
- Local Storage Only: No cloud synchronization yet
- Limited Banking Integration: Manual data entry required
- AI Features: Planned for future releases
- Bank API integrations (Open Banking)
- Export functionality (PDF, CSV)
- Advanced analytics and reporting
- Budget planning and tracking
- Machine learning spending insights
- Predictive financial modeling
- Personalized financial advice
- Smart transaction categorization
- Web application
- Desktop applications (Windows, macOS, Linux)
- Apple Watch companion app
This is currently a university project and not open for external contributions. However, feedback and suggestions are welcome!
If you encounter any bugs or have feature suggestions:
- Check existing issues first
- Provide detailed reproduction steps
- Include device/platform information
- Attach logs if relevant
This project is developed for educational purposes as part of a university course. All rights reserved.
Not licensed for commercial use or redistribution.
TrackFi is developed by Popus Razvan Adrian as part of a university mobile development course project.
- GitHub: @punkrock34
- Focus: Modern mobile architecture and secure financial applications
- University Project: Exploring Flutter development and mobile security
- Flutter Team - For the amazing framework
- Riverpod - For excellent state management
- Material Design - For design system inspiration
- Open Source Community - For the incredible packages and tools