A cross-platform debt management app built with Flutter & Firebase. Track loans, credit, and payments seamlessly across Android, iOS, and Web.
- 🔐 Secure authentication (Email/Google)
- 📝 Record debts with details (amount, date, witness)
- 🔍 Search & filter by person/status
- 📊 Monthly debt summaries
- 🎨 Dark/Light theme support
- 📄 Export transactions to PDF
- 🔔 Payment reminders
- Frontend: Flutter 3.16
- Backend: Firebase (Auth, Firestore)
- State Management: Provider
- PDF Generation:
pdfpackage - Notifications:
flutter_local_notifications
| Login Screen | Debt List | Add Transaction |
|---|---|---|
- Flutter SDK (>=3.16.0)
- Firebase account
- Android Studio/Xcode (for mobile builds)
git clone https://github.com/awais-124/khata_tracker.git
cd khata_trackerCreate a new Firebase project at console.firebase.google.com
Enable these services:
- Authentication (Email/Password + Google)
- Firestore Database (Start in test mode)
# Install FlutterFire CLI
dart pub global activate flutterfire_cli
# Run configuration (select platforms: Android, iOS, Web)
flutterfire configureflutter pub getWeb Development
flutter run -d chromeAndroid Build
flutter build apk --release
# APK location: build/app/outputs/flutter-apk/app-release.apkiOS Build (Mac Only)
flutter build ios
open ios/Runner.xcworkspacelib/
├── core/ # Business logic & utilities
│ ├── constants/ # App constants
│ ├── services/ # Firebase services
│ └── utils/ # Helper functions
├── features/ # Feature modules
│ ├── auth/ # Authentication
│ ├── debts/ # Debt management
│ └── settings/ # User settings
├── shared/ # Reusable components
│ ├── models/ # Data models
│ └── widgets/ # Custom widgets
└── main.dart # App entry point
Create .env file in root (add to .gitignore):
FIREBASE_API_KEY=your_api_key
FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
FIREBASE_PROJECT_ID=your_project_id# Ensure you've run:
flutterfire configureUpdate Firestore rules (for dev only):
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}- Fork the repository
- Create a new branch
git checkout -b feature/your-feature- Commit your changes
git commit -m "Add some feature"- Push to the branch
git push origin feature/your-feature- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Contact @awais-124 or open an issue in the repository.