Skip to content

Repository files navigation

PayMate Logo

PayMate

Your Personal Finance Companion
Track expenses, manage dues, and get AI-powered financial insights — all in one beautiful app.

FeaturesScreenshotsInstallationContributingLicense

Flutter Dart Android License


✨ Features

📊 Dashboard

  • Real-time spending statistics (Total, Count, Average)
  • Interactive 7-day spending bar chart
  • Category breakdown pie chart
  • Recent transactions list

💸 Smart GPay Detection (Android)

  • Automatically detects Google Pay Closure to show overlay to add transactions
  • Native overlay for quick expense logging
  • Background service with minimal battery usage

📝 Dues Management

  • Track money you owe (To Pay) and money owed to you (To Receive)
  • Mark dues as settled with one tap
  • View complete settlement history

🤖 AI Financial Insights

  • Powered by Google Gemini API
  • Ask questions about your spending habits
  • Get personalized financial advice

🎨 Modern UI/UX

  • Beautiful dark theme with green accent
  • Smooth animations and transitions
  • Clean, minimalist design

📱 Screenshots

Dashboard Dues AI Chat
Dashboard Dues Chat

🚀 Installation

Prerequisites

Quick Start

# Clone the repository
git clone https://github.com/yourusername/paymate.git
cd paymate

# Install dependencies
flutter pub get

# Run the app
flutter run

Build Release APK

flutter build apk --release

The APK will be at: build/app/outputs/flutter-apk/app-release.apk


🏗️ Project Structure

lib/
├── main.dart                 # App entry point
├── theme/
│   └── app_theme.dart        # Dark theme configuration
├── models/
│   ├── transaction.dart      # Transaction model
│   ├── due.dart              # Dues model
│   └── category.dart         # Expense categories
├── services/
│   ├── storage_service.dart  # Hive local storage
│   ├── ai_service.dart       # Gemini API integration
│   └── gpay_detection_service.dart
├── providers/
│   ├── transaction_provider.dart
│   └── dues_provider.dart
├── screens/
│   ├── dashboard_screen.dart
│   ├── transactions_screen.dart
│   ├── dues_screen.dart
│   ├── chat_screen.dart
│   └── settings_screen.dart
└── widgets/
    ├── stat_card.dart
    ├── spending_chart.dart
    ├── category_chart.dart
    └── transaction_list.dart

android/
├── app/src/main/
│   ├── kotlin/.../
│   │   ├── MainActivity.kt
│   │   └── GPayAccessibilityService.kt
│   └── res/
│       └── layout/
│           └── overlay_transaction.xml

📦 Dependencies

Package Purpose
provider State management
hive_flutter Local data persistence
fl_chart Beautiful charts
google_fonts Inter font family
http API requests
url_launcher External links
intl Date formatting
uuid Unique IDs

🤝 Contributing

We welcome contributions! Here's how you can help:

Getting Started

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/YOUR_USERNAME/paymate.git
  3. Create a branch: git checkout -b feature/amazing-feature
  4. Make your changes
  5. Test thoroughly
  6. Commit: git commit -m 'Add amazing feature'
  7. Push: git push origin feature/amazing-feature
  8. Open a Pull Request

Contribution Guidelines

  • Follow Dart style guide
  • Write meaningful commit messages
  • Add comments for complex logic
  • Test on both emulator and physical device
  • Update documentation if needed

Areas for Contribution

  • 🐛 Bug fixes
  • ✨ New features
  • 📱 iOS support
  • 🌍 Internationalization (i18n)
  • 📚 Documentation
  • 🧪 Tests
  • 🎨 UI/UX improvements

🔧 Configuration

Gemini API Key

  1. Get an API key from Google AI Studio
  2. In the app, go to AI ChatSettings icon
  3. Enter your API key

GPay Detection (Android)

  1. Go to SettingsAccessibility
  2. Find PayMate and enable it
  3. Grant Usage Access permission

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License

Copyright (c) 2024 Shahid Anowar

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

👨‍💻 Developer

Shahid Anowar
🌐 Website💼 LinkedIn


Made with ❤️ and Flutter

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages