Skip to content

nexus-x6/AMS-App

Repository files navigation

Asset Management System

A comprehensive and user-friendly financial management application for tracking your assets, expenses, and income across multiple wallets.

Flutter Firebase Version License


πŸ“‹ Table of Contents


🎯 Overview

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.


✨ Features

πŸ’° Wallet Management

  • 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

πŸ“Š Transaction Tracking

  • 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

🏷️ Tag System

  • 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)

πŸ” Authentication & Security

  • 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

🎨 User Experience

  • 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

πŸ“± Cross-Platform Support

  • Android
  • iOS
  • Web
  • Windows
  • macOS
  • Linux

πŸ› οΈ Technology Stack

Frontend Framework

  • Flutter (SDK >=2.17.3 <3.0.0) - Cross-platform UI toolkit
  • Dart - Programming language

Backend Services

  • Firebase Authentication - User authentication and authorization
  • Firebase Realtime Database - Real-time data synchronization
  • Cloud Firestore - Document database for structured data

Key Dependencies

  • 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

Development Tools

  • Flutter Launcher Icons - App icon generation
  • Flutter Native Splash - Splash screen creation
  • Flutter Lints - Code quality and style enforcement

πŸ“ Project Structure

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

πŸ“‹ Prerequisites

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

Platform-Specific Requirements

Android:

  • Android SDK
  • Java Development Kit (JDK)

iOS:

  • Xcode 12.0 or higher
  • CocoaPods
  • macOS (required for iOS development)

Web:

  • Chrome browser for debugging

πŸš€ Installation

1. Clone the Repository

git clone https://github.com/nexus-x6/AMS-App.git
cd AMS-App

2. Install Dependencies

flutter pub get

3. Verify Flutter Installation

flutter doctor

Resolve any issues reported by Flutter Doctor before proceeding.


βš™οΈ Configuration

Firebase Setup

  1. Create a Firebase Project:

  2. Enable Firebase Services:

    • Enable Authentication (Email/Password provider)
    • Enable Realtime Database
    • Enable Cloud Firestore (if needed)
  3. Add Firebase Configuration:

    For Android:

    • Download google-services.json from Firebase Console
    • Place it in android/app/

    For iOS:

    • Download GoogleService-Info.plist from 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.dart with your Firebase configuration
  4. Configure Firebase Realtime Database Rules:

{
  "rules": {
    "accounts": {
      "$uid": {
        ".read": "auth != null && auth.uid == $uid",
        ".write": "auth != null && auth.uid == $uid"
      }
    }
  }
}

Google Mobile Ads Setup (Optional)

If you want to enable ads:

  1. Create an AdMob account
  2. Update lib/ad_options.dart with your Ad Unit IDs
  3. Add AdMob App IDs to platform-specific configuration files

πŸ”¨ Building

Run in Debug Mode

# Run on connected device/emulator
flutter run

# Run on specific device
flutter run -d <device_id>

# Run on Chrome (web)
flutter run -d chrome

Build for Production

Android (APK):

flutter build apk --release

Android (App Bundle):

flutter build appbundle --release

iOS:

flutter build ios --release

Web:

flutter build web --release

Windows:

flutter build windows --release

macOS:

flutter build macos --release

Linux:

flutter build linux --release

Generate App Icons

flutter pub run flutter_launcher_icons:main

Generate Splash Screen

flutter pub run flutter_native_splash:create

πŸ“± Screenshots

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5


πŸ“„ License

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

MIT License GPLv3 License


🀝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.


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

Made with ❀️ using Flutter


πŸ“ž Support

If you have any questions or need help, please open an issue in the repository.


Happy Financial Management! πŸ’°πŸ“Š

About

ASSET MANAGEMENT SYSTEM - Fast and easy to use money management app that keeps track of you.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published