Skip to content

mohany203/Personal-Expense-Tracker

Repository files navigation

Aura Finance - Personal Expense Tracker

Aura Finance App Icon A beautifully designed, feature-rich Flutter application for tracking personal expenses with ease. Gain powerful insights into your spending habits through intuitive visualizations, detailed analytics, and customizable settings. Built with modern Flutter best practices, this app demonstrates scalable architecture, reactive state management, and seamless user experienceβ€”perfect for showcasing in a developer portfolio.

✨ Key Features

Aura Finance empowers users to manage finances effortlessly while providing deep insights. Here's what makes it stand out:

  • πŸ“Š Intuitive Dashboard & Expense Breakdown:

    • Instant overview of total expenses with a responsive, animated pie chart showing category-wise distribution.
    • Detailed legend with full category names, amounts, and percentagesβ€”no truncations for clarity.
    • Unique visual elements like gradient-filled sections and interactive insights (e.g., "Highest spending in Utilities – Consider reviewing!").
  • πŸ“ˆ Advanced Analytics & Trends:

    • Interactive bar chart for analyzing expenses over customizable periods: 1 Month, 3 Months, 6 Months, 1 Year, or All-Time.
    • Percentage change comparisons between periods for spotting trends (e.g., +20% spending increase).
    • Date range display and no-data handling for a polished experience.
  • ✍️ Seamless Expense Management:

    • Add, edit, or delete expenses via a persistent, user-friendly bottom sheet form with date picker, category selection, and notes.
    • Supports multiple categories (e.g., Subscriptions, Food, Transportation, Utilities) with color-coded icons for quick recognition.
    • Effortless tracking with real-time updates and animations for smooth interactions.
  • πŸ” Smart Search & Filtering:

    • Built-in search bar to instantly filter expenses by title or notes.
    • Category-specific views: Tap a category in the dashboard to drill down into filtered lists and analytics.
  • 🎨 Customization & Accessibility:

    • Theme switching: Light mode for a clean, vibrant look or Dark mode for low-light comfort.
    • Currency support: Switch between USD ($) and EGP (EΒ£) with real-time symbol and formatting updates.
    • Language localization: English and Arabic support using intl for date formatting and UI text.
    • Persistent settings saved via shared_preferences for a personalized experience across sessions.
  • πŸ›‘οΈ Data Persistence & Privacy:

    • All data stored locally using Hiveβ€”a fast, lightweight NoSQL databaseβ€”ensuring offline access and privacy (no cloud dependency).
    • Automatic backups and error handling for reliable data management.
  • πŸ“± User-Friendly Extras:

    • Splash screen with staggered animations and gradient background for a premium onboarding feel.
    • Feedback tools: In-app review request and email contact to the developer.
    • Responsive design: Adapts to different screen sizes with LayoutBuilder and MediaQuery for optimal viewing on mobile devices.

These features highlight the app's strengths: user-centric design, performance optimisation, and insightful analytics, making it more than just a trackerβ€”it's a tool for financial awareness.

πŸ“Έ Screenshots

Dashboard (Light)

Dashboard Light Mode

Dashboard (Dark)

Dashboard Dark Mode

Settings Screen

Settings Screen

Analytics Chart

Analytics Bar Chart

Add Expense Form

Expense Addition Form

Category Details

Category Details

Category Filtering

Category Details Filtering

Edit (Swipe Action)

Edit Expense Swipe

Delete (Swipe Action)

Delete Expense Swipe

Delete Confirmation

Delete Confirmation Dialog

After Deleting

View After Deleting

πŸŽ₯ App Walk-through

Full Application Demo

App Walk-through video

πŸ‘¨β€πŸ’» Technical Overview

This project exemplifies professional Flutter development, focusing on clean code, scalability, and best practices. It's ideal for a portfolio to demonstrate expertise in:

  • State Management: Reactive and efficient using GetX for controllers (e.g., ExpenseController for CRUD operations, SettingsController for theme/currency/language).
  • Data Storage: Persistent local storage with Hive (NoSQL database) and adapters for custom models like Expense and Category.
  • Data Visualization: Interactive charts via fl_chartβ€”pie for breakdowns (with gradients, animations, and custom painters) and bar for trends.
  • UI/UX Enhancements:
    • Custom themes (light/dark) defined in themes.dart for consistent styling.
    • Animations with flutter_staggered_animations for smooth transitions (e.g., slide/fade on load).
    • Responsive layouts using LayoutBuilder, MediaQuery, and Obx for reactive updates.
  • Internationalization: Date formatting with intl and basic language support (English/Arabic).
  • Additional Integrations:
    • flutter_native_splash and flutter_launcher_icons for branded launch experience.
    • in_app_review for user feedback and url_launcher for emailing the developer.
    • auto_size_text for adaptive text sizing in legends.
  • Architecture: Feature-based organization (models, controllers, widgets) promoting separation of concerns, testability, and maintainability.
  • Performance: Lightweight dependencies, efficient queries (e.g., filtered expense lists), and error handling (e.g., Hive init errors).
  • Dependencies Highlights: Core: Flutter, GetX, Hive. Utilities: uuid for IDs, path_provider for storage paths.

This setup showcases skills in full-stack mobile development, from UI design to data persistence, while keeping the app lightweight (under 10MB APK).

πŸš€ Getting Started

To run this project locally, follow these steps:

  1. Clone the repository:
    git clone https://github.com/mohany203/Personal-Expense-Tracker.git
  2. Navigate to the project directory:
    cd Personal-Expense-Tracker
  3. Install dependencies:
    flutter pub get
  4. Generate Hive adapters (required for data persistence):
    flutter packages pub run build_runner build --delete-conflicting-outputs
  5. Run the app:
    flutter run

πŸ“ Project Structure

The project follows a standard Flutter project structure, with the core logic located in the lib directory:

personal_expenses/
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ chart/       # Contains all chart widgets (pie, bar)
β”‚   β”œβ”€β”€ controllers/ # GetX controllers (business logic)
β”‚   β”œβ”€β”€ models/      # Data models (Expense, Category)
β”‚   β”œβ”€β”€ themes/      # Custom theme data
β”‚   β”œβ”€β”€ widgets/     # Reusable UI components and screens
β”‚   └── main.dart    # App entry point
β”œβ”€β”€ assets/          # App icons and images
β”œβ”€β”€ screenshots/     # Screenshots for README
└── pubspec.yaml     # Project dependencies and configuration

🀝 Contributing

Contributions are welcome! If you have any ideas, suggestions, or bug reports, please feel free to open an issue or submit a pull request.

πŸ“„ License

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

About

Personal Expenses App helps you manage and track your daily expenses with ease. Add, view, and categorize expenses effortlessly. Gain insights into your spending with detailed charts and breakdowns. Perfect for keeping your budget in check and analyzing financial habits.

Resources

Stars

1 star

Watchers

1 watching

Forks

Packages

 
 
 

Contributors