A comprehensive and user-friendly financial management application for tracking your assets, expenses, and income across multiple wallets.
- Overview
- Features
- Technology Stack
- Project Structure
- Prerequisites
- Installation
- Configuration
- Building
- Screenshots
- License
Asset Management System (AMS) is a cross-platform financial management application built with Flutter. It provides users with a powerful yet intuitive interface to manage multiple wallets, track transactions, categorize expenses and income with custom tags, and monitor their financial health in real-time.
The application leverages Firebase services for authentication and real-time data synchronization, ensuring your financial data is secure and accessible across all your devices.
- Multiple Wallets: Create and manage unlimited wallets for different purposes
- Multi-Currency Support: Track assets in various currencies with real-time conversion
- Wallet Descriptions: Add custom descriptions to organize your wallets
- Income & Expense Recording: Log all financial transactions with ease
- Transaction History: View complete history with timestamps for each wallet
- Transaction Categories: Organize transactions with customizable colored tags
- Edit & Delete: Modify or remove transaction records as needed
- Custom Tags: Create personalized tags for categorizing transactions
- Color Coding: Visual identification with custom colors for each tag
- Action-Based Tags: Separate tags for income (gelir) and expenses (gider)
- Email/Password Authentication: Secure login with Firebase Authentication
- Email Verification: Verify user accounts for added security
- Account Management: Update email, change passwords, or delete accounts
- Data Privacy: All data stored securely in Firebase Realtime Database
- Dark/Light Theme: Toggle between themes for comfortable viewing
- Responsive Design: Optimized for various screen sizes
- Smooth Animations: Polished UI with native splash screen
- Offline Support: Firebase persistence for offline data access
- Custom Fonts: Beautiful typography with Proxima Nova and Exo2 fonts
- Android
- iOS
- Web
- Windows
- macOS
- Linux
- Flutter (SDK >=2.17.3 <3.0.0) - Cross-platform UI toolkit
- Dart - Programming language
- Firebase Authentication - User authentication and authorization
- Firebase Realtime Database - Real-time data synchronization
- Cloud Firestore - Document database for structured data
- Provider - State management
- RxDart - Reactive programming extensions
- SharedPreferences - Local data persistence
- Google Fonts - Custom typography
- Intl - Internationalization and date formatting
- Flutter SVG - SVG asset support
- Google Mobile Ads - Monetization integration
- Responsive Grid - Adaptive layouts
- Flutter Launcher Icons - App icon generation
- Flutter Native Splash - Splash screen creation
- Flutter Lints - Code quality and style enforcement
ams-app/
βββ lib/
β βββ models/ # Data models
β β βββ account.dart # User account model
β β βββ wallet.dart # Wallet model
β β βββ history_node.dart # Transaction model
β β βββ tag.dart # Tag model
β β βββ currency.dart # Currency model
β βββ services/ # Business logic services
β β βββ auth_service.dart # Authentication service
β β βββ database_service.dart # Database operations
β β βββ currency_service.dart # Currency management
β β βββ theme_service.dart # Theme management
β βββ pages/ # UI screens
β β βββ splash_page.dart
β β βββ login_page.dart
β β βββ email_verification_page.dart
β β βββ main_page.dart
β β βββ add_wallet_page.dart
β β βββ transaction_page.dart
β β βββ history_page.dart
β β βββ settings_page.dart
β β βββ tags_dialog.dart
β βββ widgets/ # Reusable UI components
β β βββ wallet_widget.dart
β β βββ current_wallet.dart
β β βββ history_node_widget.dart
β β βββ tag_widget.dart
β β βββ wallet_action_button.dart
β βββ constants.dart # App constants
β βββ functions.dart # Utility functions
β βββ firebase_options.dart # Firebase configuration
β βββ main.dart # Application entry point
βββ assets/ # Static assets
β βββ ams.svg
β βββ ams.png
β βββ ams-onlyicon.svg
β βββ curs.json # Currency data
βββ fonts/ # Custom fonts
β βββ proxima/
β βββ exo2/
β βββ MyFlutterApp.ttf
βββ android/ # Android platform code
βββ ios/ # iOS platform code
βββ web/ # Web platform code
βββ linux/ # Linux platform code
βββ macos/ # macOS platform code
βββ windows/ # Windows platform code
βββ pubspec.yaml # Project dependencies
βββ README.md
Before you begin, ensure you have the following installed:
- Flutter SDK (2.17.3 or higher)
- Dart SDK (comes with Flutter)
- Android Studio or Xcode (for mobile development)
- Firebase Account with a project set up
- Git for version control
Android:
- Android SDK
- Java Development Kit (JDK)
iOS:
- Xcode 12.0 or higher
- CocoaPods
- macOS (required for iOS development)
Web:
- Chrome browser for debugging
git clone https://github.com/nexus-x6/AMS-App.git
cd AMS-Appflutter pub getflutter doctorResolve any issues reported by Flutter Doctor before proceeding.
-
Create a Firebase Project:
- Go to Firebase Console
- Create a new project or use an existing one
-
Enable Firebase Services:
- Enable Authentication (Email/Password provider)
- Enable Realtime Database
- Enable Cloud Firestore (if needed)
-
Add Firebase Configuration:
For Android:
- Download
google-services.jsonfrom Firebase Console - Place it in
android/app/
For iOS:
- Download
GoogleService-Info.plistfrom Firebase Console - Add it to your iOS project in Xcode
For Web:
- Add Firebase SDK configuration to
web/index.html
For other platforms:
- Update
lib/firebase_options.dartwith your Firebase configuration
- Download
-
Configure Firebase Realtime Database Rules:
{
"rules": {
"accounts": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid"
}
}
}
}If you want to enable ads:
- Create an AdMob account
- Update
lib/ad_options.dartwith your Ad Unit IDs - Add AdMob App IDs to platform-specific configuration files
# Run on connected device/emulator
flutter run
# Run on specific device
flutter run -d <device_id>
# Run on Chrome (web)
flutter run -d chromeAndroid (APK):
flutter build apk --releaseAndroid (App Bundle):
flutter build appbundle --releaseiOS:
flutter build ios --releaseWeb:
flutter build web --releaseWindows:
flutter build windows --releasemacOS:
flutter build macos --releaseLinux:
flutter build linux --releaseflutter pub run flutter_launcher_icons:mainflutter pub run flutter_native_splash:createThis project is licensed under the GPL v3 License - see the LICENSE file for details.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
Made with β€οΈ using Flutter
If you have any questions or need help, please open an issue in the repository.
Happy Financial Management! π°π




