A comprehensive Flutter application designed for IT startup co-founders to manage shared expenses, track contributions, calculate settlements, and monitor spending patterns with real-time analytics, professional reporting, and real-time push notifications.
Ryse Two automates the complex process of expense splitting between multiple co-founders with support for both personal and company fund expenses. The system intelligently calculates individual balances, identifies settlement requirements, and provides detailed financial analytics for informed decision-making. All data changes are instantly notified to all team members via push notifications, even when the app is closed.
- Record expenses with detailed descriptions and categorization
- Distinguish between personal and company fund expenses
- Smart automatic equal splitting among specified contributors
- Support for 10 predefined expense categories
- Receipt attachment and notes for accountability
- Date tracking with comprehensive transaction history
- Create and manage team member profiles
- Store unique financial identifiers for each team member
- Customize avatar colors for visual identification
- Track roles and designations within the startup
- Store bank account details (bank name, account number, IFSC code)
- Set individual contribution targets for financial planning
- Automatic real-time balance calculation
- Intelligent settlement requirement identification
- Record payment settlements with notes
- Settlement status tracking and history
- Prevention of double-counting in settlements
- Dashboard overview with key financial metrics
- Total expense amount tracking
- Company fund vs personal expense breakdown
- Per-capita expense analysis
- Contribution analysis by team member
- Expense category breakdown with percentages
- Visual charts and progress indicators for all metrics
- Material Design 3 professional appearance
- Intuitive bottom navigation with five main sections
- Responsive layout for mobile and tablet devices
- Modern visual hierarchy and spacing
- Professional typography using Google Fonts
- Color-coded visualizations for quick insights
- Instant notifications for all data changes
- Works even when app is closed
- Expense updates (add, edit, delete)
- Cofounder updates (add, edit, remove)
- Settlement recordings
- Company fund changes
- Professional notification UI with sound and vibration
- Powered by Firebase Cloud Messaging API V1 (OAuth 2.0)
- Secure service account authentication
- No backend server required - uses Firebase + MongoDB only
- Flutter 3.9.2+ for cross-platform development
- Dart programming language
- Provider pattern for state management with ChangeNotifier
- SQLite database via sqflite for persistent local storage
- FL Charts library for professional data visualization
- Material Design 3 components
- Google Fonts for typography
- Intl package for internationalization and date handling
lib/
βββ main.dart # Application entry point
βββ models/ # Data models with serialization
β βββ cofounder.dart # Team member profiles with financial data
β βββ expense.dart # Transaction records with company fund tracking
β βββ settlement.dart # Account settlements
βββ database/ # Data persistence layer
β βββ database_helper.dart # SQLite CRUD operations
βββ providers/ # State management
β βββ expense_provider.dart # Central app state with ChangeNotifier
βββ theme/ # UI styling and branding
β βββ app_theme.dart # Material Design 3 theme with colors and typography
βββ constants/ # Application constants
β βββ app_constants.dart # Expense categories and static values
βββ screens/ # User interface screens
βββ home/
βββ home_screen.dart # Main dashboard with overview
βββ expense_screen.dart # Expense list and management
βββ cofounder_screen.dart # Team member management
βββ reports_screen.dart # Three-tab analytics dashboard
βββ settlements_screen.dart # Settlement tracking interface
βββ add_expense_dialog.dart # Expense recording form
βββ add_cofounder_dialog.dart # Team member creation form
assets/
βββ skyryse.jpg # Company logo used throughout app
βββ logo.svg # Vector logo for scalable displays
The application follows MVVM (Model-View-ViewModel) architecture with Provider pattern:
- Models - Define data structures (CoFounder, Expense, Settlement) with complete serialization/deserialization
- Database - DatabaseHelper singleton manages all SQLite operations
- State Management - ExpenseProvider uses ChangeNotifier for reactive updates
- Views - Flutter screens build UI based on provider state
- Theme - Centralized Material Design 3 styling
- Unique identifier (UUID)
- Name, email, phone number
- Role/designation within startup
- Bank account details (bank name, account number, IFSC code)
- Target contribution amount for financial planning
- Avatar color for visual identification
- Creation timestamp
- Active status flag
- Unique identifier (UUID)
- Description and detailed notes
- Amount and currency
- Category from predefined list
- Payer (CoFounder who paid)
- Contributors list (team members to split with)
- Company fund flag (true for company expenses, false for personal)
- Company name if company fund expense
- Date of transaction
- Optional receipt attachment
- Creation timestamp
- Unique identifier (UUID)
- From (debtor) CoFounder
- To (creditor) CoFounder
- Amount to settle
- Date of settlement
- Notes for reference
- Settlement status (pending/completed)
CREATE TABLE cofounder (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
email TEXT NOT NULL,
phone TEXT,
role TEXT,
avatarColor TEXT,
bankName TEXT,
bankAccountNumber TEXT,
bankIFSC TEXT,
targetContribution REAL,
createdAt TEXT,
isActive INTEGER DEFAULT 1
);
CREATE TABLE expense (
id TEXT PRIMARY KEY,
description TEXT NOT NULL,
category TEXT NOT NULL,
amount REAL NOT NULL,
paidById TEXT NOT NULL,
contributorIds TEXT NOT NULL,
isCompanyFund INTEGER DEFAULT 0,
companyName TEXT,
date TEXT NOT NULL,
notes TEXT,
receipt TEXT,
createdAt TEXT,
FOREIGN KEY (paidById) REFERENCES cofounder(id)
);
CREATE TABLE settlement (
id TEXT PRIMARY KEY,
fromId TEXT NOT NULL,
toId TEXT NOT NULL,
amount REAL NOT NULL,
date TEXT NOT NULL,
notes TEXT,
settled INTEGER DEFAULT 0,
FOREIGN KEY (fromId) REFERENCES cofounder(id),
FOREIGN KEY (toId) REFERENCES cofounder(id)
);- Flutter SDK 3.9.2 or higher
- Dart SDK (included with Flutter)
- Android SDK 21+ or Xcode 12.0+ for mobile deployment
- For Windows/Linux: appropriate development tools
- Clone the repository
git clone <repository-url>
cd ryse_two- Install dependencies
flutter pub get- Run the application
flutter runAndroid APK (Release)
flutter build apk --releaseOutput: build/app/outputs/flutter-apk/app-release.apk
Android App Bundle
flutter build appbundle --releaseOutput: build/app/outputs/bundle/release/app-release.aab
iOS App
flutter build ios --releaseWeb Application
flutter build web --releaseOutput: build/web/
Windows Application
flutter build windows --releaseLinux Application
flutter build linux --releasemacOS Application
flutter build macos --releaseThe app uses bottom navigation with five main sections:
-
Dashboard - Overview with key metrics and recent activity
- Total expenses display
- Company fund vs personal breakdown
- Real-time team member balances
- Team size and transaction counts
-
Expenses - Transaction management interface
- Complete list of all expenses
- Category-based filtering
- Company fund indicator
- Edit/delete capabilities
- Add new expense dialog
-
Co-founders - Team member management
- View all team members with profiles
- Display roles and designations
- Visual identification via avatar colors
- Quick access to bank details
- Add new team member dialog
-
Reports - Three-tab analytics dashboard
- Overview tab: Key metrics with charts
- By Person tab: Individual contributions and balances
- By Category tab: Spending breakdown by category
- Professional visualizations with pie and bar charts
-
Settlements - Account settlement tracking
- Identify required settlements
- Record completed payments
- Settlement history with dates
- Payment status tracking
- Add co-founders to establish the team
- Record expenses as they occur
- Specify who paid and who benefits from the expense
- System automatically calculates individual balances
- View settlement requirements in Settlements tab
- Record payments when transfers occur
- Monitor spending trends in Reports section
The system calculates individual balances using the following algorithm:
For each expense:
1. Identify payer and all contributors
2. Calculate per-person share: amount / contributor_count
3. Update payer balance: +amount (money received)
4. Update each contributor balance: -share (money owed)
5. Apply company fund flag appropriately
Final balance interpretation:
Positive: Team member should receive refund
Negative: Team member owes money to settle debts
Zero: Fully settled
- Office Supplies - Stationery, equipment, furniture
- Equipment - Hardware, machinery, devices
- Software & Tools - Licenses, subscriptions, software
- Marketing - Advertising, branding, promotions
- Travel - Flights, hotels, transportation
- Utilities - Internet, electricity, phone
- Rent/Space - Office rent, workspace fees
- Food & Beverage - Meals, catering, refreshments
- Professional Services - Consulting, legal, accounting
- Other - Miscellaneous expenses
- Efficient ListView.builder for large transaction lists
- Lazy loading on screen navigation
- Optimized database queries with proper indexing
- Minimal widget rebuilds through Provider architecture
- Asynchronous database operations prevent UI blocking
- Smart caching of calculated balances
All application data is stored locally in SQLite database:
- Android:
/data/data/com.skyryse.ryse_two/databases/ryse_two.db - iOS: Application Documents folder
- Web: Browser IndexedDB
- Windows/Linux/macOS: Application data directory
To backup data, backup the device or application directory. No cloud synchronization exists in the current version.
- Single database instance (no multi-company support)
- Local data only (no cloud synchronization)
- No multi-user authentication
- No recurring expense templates
- No budget tracking or spending alerts
- No receipt image storage in current version
- Single team setup per installation
- Cloud synchronization with Firebase
- User authentication across devices
- Multi-company support for diversified portfolios
- Recurring expense automation
- Advanced budget tracking and alerts
- Trend analysis and forecasting
- Expense categorization AI
- Receipt image OCR processing
- Export functionality (PDF, CSV, Excel)
- Web dashboard interface
- Mobile app store deployment
- Expense approval workflows
- Payment gateway integration
- Expense categories:
lib/constants/app_constants.dart - Color scheme:
lib/theme/app_theme.dart - Database name: DatabaseHelper.databaseName
- Avatar colors: AddCoFounderDialog._avatarColors
- App name: ryse_two (pubspec.yaml)
- App version: 1.0.0+1
- Minimum Android SDK: 21 (API Level 21)
- Target Android SDK: 33+
- iOS minimum deployment: 11.0
Database errors on startup:
- Delete app and reinstall to reset database
- Check SQLite version compatibility with sqflite
Icon not updating on Android:
- Clean build:
flutter clean && flutter pub get - Rebuild app to apply new icons from flutter_launcher_icons
UI performance issues:
- Reduce number of historical transactions displayed
- Check device storage space
- Review app permissions (Storage, Calendar, etc.)
Provider state not updating:
- Ensure ExpenseProvider is properly initialized in main.dart
- Check Consumer widgets are properly wrapped around state-dependent UI
This app includes real-time push notifications for all data changes. To enable notifications:
- Create Firebase project and add Android app
- Download
google-services.jsonβ place inandroid/app/ - Generate Service Account credentials from Firebase Console
- Create
.envfile with:FCM_PROJECT_ID=your-project-id FCM_PRIVATE_KEY=your-private-key FCM_CLIENT_EMAIL=your-client-email
- Run
flutter pub getand launch app
- π Full Setup Guide: FIREBASE_SETUP.md
- Uses FCM API V1 with OAuth 2.0 authentication
- β Expenses (add, update, delete)
- β Cofounders (add, update, delete)
- β Company Funds (add, deduct)
- β Settlements (record)
Notifications work even when app is closed! π―
v1.1.0 (Current - December 2025)
- β NEW: Real-time push notifications via Firebase FCM API V1
- β NEW: OAuth 2.0 authentication with service accounts
- β NEW: Background/foreground notification support
- β NEW: MongoDB-based device token management
- β NEW: Professional notification UI with sound & vibration
- Full expense tracking system
- Multi-member settlement calculations
- Advanced analytics and reporting
- Professional UI with Material Design 3
- MongoDB persistence layer
- Company fund tracking capability
- Co-founder profile management with financial details
- Cross-platform support (Android, iOS, Web, Windows, Linux, macOS)
v1.0.0 (Initial Release)
- Basic expense tracking and settlement system
- SQLite persistence (migrated to MongoDB in v1.1.0)
Proprietary software for Skyryse IT startup internal use only.
For issues, feature requests, or improvements, contact the development team.
Application: Ryse Two Version: 1.0.0 Last Updated: November 2025 Platform Support: Android, iOS, Web, Windows, Linux, macOS Status: Production Ready