A shared mobile platform for families to track expenses, plan budgets, and build financial transparency powered by real-time Firebase sync and a clean React Native experience.
- Overview
- Why FamilyMate?
- Features
- Tech Stack
- Project Architecture
- Getting Started
- Environment Setup
- Running the App
- Building APK
- Roadmap
- Contributing
- Author
- License
FamilyMate is a full-stack cross-platform mobile application that solves one of the most overlooked household challenges β shared family financial management. In most Pakistani households, financial responsibilities are divided among multiple members with no centralized visibility. Records are scattered, budgets are informal, and month-end spending is always a surprise.
FamilyMate creates a shared digital financial space where every member of the family can view, manage, and contribute to their collective budget in real time. With intelligent daily spending projections, live budget progress tracking, and multi-account support, FamilyMate transforms chaotic household finances into a clear, structured, and collaborative system.
Built for families who want financial clarity without financial complexity.
| Problem | FamilyMate Solution |
|---|---|
| Scattered expense records across members | Shared family space with centralized transaction history |
| No visibility into daily spending limits | Daily spending target auto-calculated from monthly budget |
| Hard to track if budget is on or off track | Live balance with "should have spent by today" calculation |
| No shared access for family members | Join family via unique code β all members see the same data |
| Data lost when offline | Local storage backup keeps data accessible without internet |
| No export or backup option | Excel export and full data backup built in |
- Create Family Space β Set up a shared family account with a unique invite code
- Join Family β Members join using the family code β no complex setup
- Family Members Screen β View all members, roles, and contribution overview
- Family Settings β Manage family name, invite code, and member permissions
- Add Expense β Log transactions with category, amount, notes, and date
- Transaction History β Full filterable and searchable transaction list
- Transaction Details β Deep-dive into any individual expense record
- Multi-Account Support β Manage multiple spending accounts in one place
- Monthly Budget Setup β Set a fixed monthly budget for the entire family
- Fixed Daily Plan β Auto-converts monthly budget into a precise daily spending target
- Smart Balance Display β Shows how much should have been spent by today vs actual
- Budget Limits Screen β Set category-specific spending caps
- Budget Progress Screen β Visual progress indicators for overall and category budgets
- Analytics Dashboard β Spending trends, category breakdowns, and monthly comparisons
- Visual Charts β Clear data visualization for income vs expense patterns
- Spending Insights β Understand where the family budget goes each month
- Currency Settings β Support for PKR and other currencies
- Language Settings β Localization-ready architecture
- Notification Settings β Budget alert and expense reminder controls
- Security Screen β Password management and account security
- Data Export β Export transaction history to Excel (
.xlsx) - Backup Screen β Cloud backup and restore for all family data
- Edit Profile β Update personal info, avatar, and display name
- Onboarding β Beautiful illustrated walkthrough for new users
| Technology | Purpose |
|---|---|
| React Native | Cross-platform mobile UI (Android + iOS) |
| Expo SDK | Build pipeline, OTA updates, and native module access |
| TypeScript | Full type-safe development across all screens and services |
| React Navigation | Stack, tab, and modal navigation |
| Technology | Purpose |
|---|---|
| Firebase Authentication | Secure email/password user auth |
| Cloud Firestore | Real-time NoSQL cloud database for shared family data |
| Local Storage | Offline-first budget planning data persistence |
| Technology | Purpose |
|---|---|
exportXlsx.ts |
Custom Excel export utility for transaction data |
accountStore.ts |
Zustand/local state management for active account |
| Expo EAS Build | Production APK and IPA generation |
FamilyMate follows a clean, modular structure keeping screens, navigation, business logic, and utilities clearly separated.
FamilyMate/
βββ app.json # Expo project configuration
βββ App.tsx # Root component and provider setup
βββ index.ts # App entry point
βββ eas.json # EAS Build profiles
βββ tsconfig.json # TypeScript configuration
βββ assets/
β βββ icon.png # App icon
β βββ splash-icon.png # Splash screen
β βββ adaptive-icon.png # Android adaptive icon
β βββ logo.png # FamilyMate brand logo
β βββ avatar-family.png # Default family avatar
β βββ branding/ # Brand assets
β βββ onboarding/ # Onboarding screen illustrations
β βββ family.jpg
β βββ budget.jpg
β βββ analytics.jpg
β βββ receipt.jpg
βββ src/
βββ components/
β βββ FloatingFooter.tsx # Persistent floating action footer
βββ lib/
β βββ firebase.ts # Firebase initialization and config
β βββ accountStore.ts # Active account state management
βββ navigation/
β βββ RootNavigator.tsx # Auth-aware root navigator
β βββ AuthNavigator.tsx # Login / Signup / Forgot Password flow
β βββ AppNavigator.tsx # Authenticated app flow
β βββ AppTabs.tsx # Bottom tab bar navigator
β βββ types.ts # TypeScript navigation param types
βββ screens/
β βββ OnboardingScreen.tsx # First-launch illustrated walkthrough
β βββ LoginScreen.tsx # Email/password login
β βββ SignupScreen.tsx # New user registration
β βββ ForgotPasswordScreen.tsx
β βββ HomeScreen.tsx # Dashboard β budget summary and quick actions
β βββ AddExpenseScreen.tsx # Log a new expense transaction
β βββ TransactionsScreen.tsx # Full transaction history with filters
β βββ TransactionDetailsScreen.tsx
β βββ BudgetScreen.tsx # Monthly budget overview
β βββ BudgetLimitsScreen.tsx # Category-level spending limits
β βββ FixedDailyPlanScreen.tsx # Daily target calculator
β βββ AnalyticsScreen.tsx # Charts and spending insights
β βββ CreateFamilyScreen.tsx # Create a new family space
β βββ JoinFamilyScreen.tsx # Join via invite code
β βββ FamilyMembersScreen.tsx # Member list and roles
β βββ FamilySettingsScreen.tsx
β βββ ManageAccountsScreen.tsx
β βββ EditProfileScreen.tsx
β βββ SettingsScreen.tsx
β βββ CurrencySettingsScreen.tsx
β βββ LanguageSettingsScreen.tsx
β βββ NotificationSettingsScreen.tsx
β βββ NotificationsScreen.tsx
β βββ SecurityScreen.tsx
β βββ DataExportScreen.tsx # Excel export
β βββ BackupScreen.tsx # Cloud backup and restore
β βββ SupportScreen.tsx
β βββ AboutAppScreen.tsx
βββ theme/
β βββ index.ts # Colors, typography, and spacing tokens
βββ utils/
βββ exportXlsx.ts # Excel file generation utility
- Node.js v18 or later β Download
- npm or yarn
- Expo CLI β
npm install -g expo-cli - EAS CLI β
npm install -g eas-cli - Android Studio with emulator or physical device with USB debugging
- A Firebase project with Authentication and Firestore enabled
git clone https://github.com/izharahmaad/familymate.git
cd familymatenpm installAdd your Firebase project credentials to src/lib/firebase.ts:
// src/lib/firebase.ts
const firebaseConfig = {
apiKey: 'YOUR_API_KEY',
authDomain: 'YOUR_AUTH_DOMAIN',
projectId: 'YOUR_PROJECT_ID',
storageBucket: 'YOUR_STORAGE_BUCKET',
messagingSenderId: 'YOUR_SENDER_ID',
appId: 'YOUR_APP_ID',
};
β οΈ Never commit your real Firebase credentials. Addsrc/lib/firebase.tsto.gitignore.
# Start Expo development server
npx expo start
# Run on Android
npx expo run:android
# Run on physical device β scan QR in Expo Go# Configure EAS
eas build:configure
# Preview APK (installable)
eas build --platform android --profile preview
# Production build
eas build --platform android --profile production- Receipt Scanner β OCR-based expense logging by scanning receipts
- Recurring Expenses β Auto-log fixed monthly bills (rent, utilities)
- Spending Alerts β Push notifications when category limits are approaching
- Income Tracking β Log multiple income sources alongside expenses
- Bill Splitting β Split shared expenses among specific family members
- Monthly Reports β Auto-generated PDF summaries via email
- Urdu Language Support β Full RTL Urdu interface
- JazzCash / EasyPaisa Integration β Link mobile wallets for auto-import
- AI Spending Advisor β ML-based insights and savings suggestions
- Web Dashboard β Browser-based companion for desktop access
- Fork the repository
- Create a feature branch:
git checkout -b feat/your-feature - Commit using Conventional Commits:
git commit -m "feat: add receipt scanner" - Push and open a Pull Request
Izhar Ahmad
Full-Stack Developer | React Native | Firebase | TypeScript | Clean Architecture | Problem Solver
"Building tools that solve real problems for real people."
Licensed under the MIT License β see LICENSE for details.
β Star this repo if FamilyMate helped or inspired you!