App Demo
Watch the app in action
About the Project
EquiPay is a premium expense-splitting mobile app built with React Native 0.84, TypeScript, and a fully offline SQLite backend. It simplifies group expense management by letting users create groups, log shared expenses with flexible split modes, and automatically calculate optimised settlement paths using a Min Cash Flow algorithm — reducing the number of transactions needed to settle all debts by up to 70%.
The architecture follows a clean feature-layered pattern with unidirectional data flow: screens → Zustand stores → DB helpers → SQLite. A singleton connection manager with WAL mode powers the data layer, and a useDatabase initialisation hook gates navigation render until the DB is ready. Collision-resistant, human-readable IDs are generated on-device using a custom timestamp + base36 scheme.
The app ships with three split modes (equal, unequal, percentage) with a real-time split preview that validates that the total matches the expense amount. A circular SVG debt graph visualises pairwise debts across group members with animated directional arrows whose thickness scales with debt magnitude. Users can switch active perspective to view the app as any member — every balance, settlement, and list updates accordingly.
Built around a dark-only premium theme with centralised design tokens (colors, spacing, typography, radii), native-feel animations via react-native-reanimated, full safe-area handling, and empty states across every list. Demo data is seeded on first launch for a frictionless first-run experience.
Key Highlights
Technical Breakdown
Feature areas & implementation details