System Architecture

ExpenseMate follows a modern service-oriented architecture with five main components:
-
iOS App: Built with Swift and SwiftUI. It serves as the primary user interface, handling receipt scans, expense tracking, and group management. It communicates with Firebase for authentication, the Backend API for data operations, and receives push notifications via APNs.
-
Backend API: Developed with FastAPI and deployed on Google Cloud Run. It manages all business logic, receipt processing, data validation, and API requests from the iOS app. It validates Firebase tokens, sends push notifications via APNs, and interacts securely with the database.
-
Database: A PostgreSQL instance hosted on Google Cloud SQL. It stores all core application data including users, groups, expenses, receipts, and device tokens. It is only accessed by the Backend.
-
Firebase: Used for authentication and cloud messaging. It issues tokens to the iOS app, which the Backend validates. It also manages sessions and push notification tokens.
-
Marketing Website: A standalone Next.js application hosted on Vercel. It serves marketing content, links to the App Store, and hosts documentation. It has no direct interaction with the other systems.
Key Features
• Smart Bill Splitting: Automatically calculate each person's share based on custom rules and percentages.
• Receipt Scanning: Snap a photo and let ExpenseMate extract items and calculate splits automatically.
• Group Management: Create and organize multiple groups for different events or living situations.
• Expense Tracking: Monitor all expenses and settlements with a clear transaction history.
• Real-time Updates: Receive instant notifications when expenses are added or bills are settled.
• Debt Settlement: Streamline repayments with automated calculations and payment tracking.
Future Roadmap
• Android App: Full-featured Android version launching August 2025 with parity to iOS.
• Web Dashboard: Browser-based access for managing expenses, live by September 2025.
• PDF/CSV Export: Generate downloadable reports for documentation and sharing (Q4 2025).
• Offline Mode: Access and manage data without internet, ideal for travel (Q4 2025).
• Multi-language Support: Support for German, French, Spanish, and Portuguese by end of 2025.
• Personal Space: Track personal expenses separately with Excel import (Q1 2026).
• Work Space: Manage business expenses with reporting and personal/business toggles (Q3 2026).