Skip to content

izharahmaad/FamilyMate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FamilyMate

πŸ’° FamilyMate

The Smart Family Finance Manager β€” Budget Together, Spend Wisely

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.

Β  Β 

πŸ“‹ Table of Contents


🎯 Overview

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.


πŸ’‘ Why FamilyMate?

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

✨ Features

🏠 Family Management

  • 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

πŸ’Έ Expense Tracking

  • 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

πŸ“Š Budget Planning

  • 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

  • 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

βš™οΈ Settings & Utilities

  • 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

πŸ› οΈ Tech Stack

Frontend

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

Backend & Services

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

Utilities

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

πŸ“ Project Architecture

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

πŸš€ Getting Started

Prerequisites

  • 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

βš™οΈ Environment Setup

1. Clone the Repository

git clone https://github.com/izharahmaad/familymate.git
cd familymate

2. Install Dependencies

npm install

3. Configure Firebase

Add 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. Add src/lib/firebase.ts to .gitignore.


▢️ Running the App

# Start Expo development server
npx expo start

# Run on Android
npx expo run:android

# Run on physical device β€” scan QR in Expo Go

πŸ“¦ Building APK

# Configure EAS
eas build:configure

# Preview APK (installable)
eas build --platform android --profile preview

# Production build
eas build --platform android --profile production

πŸ—ΊοΈ Roadmap

v1.1.0

  • 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

v1.2.0

  • 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

v2.0.0

  • 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

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feat/your-feature
  3. Commit using Conventional Commits: git commit -m "feat: add receipt scanner"
  4. Push and open a Pull Request

πŸ‘¨β€πŸ’» Author

Izhar Ahmad

Full-Stack Developer | React Native | Firebase | TypeScript | Clean Architecture | Problem Solver

"Building tools that solve real problems for real people."


πŸ“„ License

Licensed under the MIT License β€” see LICENSE for details.


⭐ Star this repo if FamilyMate helped or inspired you!

About

FamilyMate πŸ’° | Smart shared expense tracker for families β€” daily budget planning, real-time sync & analytics. Multi-account support, Excel export & offline mode. Built with React Native, TypeScript, Expo & Firebase.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors