Skip to content

Latest commit

 

History

History
419 lines (331 loc) · 18.2 KB

README.md

File metadata and controls

419 lines (331 loc) · 18.2 KB

Remind-Wallet

license last-commit repo-top-language repo-language-count build-status open-issues forks stars pull-requests contributors commit-activity code-size repo-size downloads release-version coverage security performance activity version

Constructed using the following tools and technologies:

Dart CMake Java HTML5 Kotlin C++ Swift C HTML Gradle

Project Overview

Remind-Wallet is an innovative expense-tracking and budget management tool designed to help users monitor their financial activities and achieve their savings goals. The project features a mobile-first interface for usability across various screen sizes, and supports categories like “to pay,” “to receive,” “expenses,” and “income,” along with account types such as "bank" and "wallet." Users can also create custom categories for more personalized tracking. Firebase is used for encrypted cloud storage, while Hive ensures offline updates through local storage. The project was built using Flutter, Firebase, Dart, and Hive for seamless and secure financial management.

Table of Content

Key Features

  1. Expense Tracking: Allows users to categorize and track their financial activities, including expenses, income, and pending transactions.

  2. Customizable Categories: Users can create custom categories such as “to pay,” “to receive,” “expenses,” and “income,” and can also define their own account types (e.g., “bank” and “wallet”).

  3. Mobile-First Interface: Designed with a mobile-first approach, ensuring a seamless and user-friendly experience on various screen sizes.

  4. Encrypted Cloud Storage: Uses Firebase for secure cloud storage, keeping user data safe with encryption.

  5. Offline Storage: Hive is integrated for local storage, enabling offline updates and ensuring data availability even without an internet connection.

  6. Savings Goal Tracking: Allows users to set and track savings goals, helping them stay on top of their financial objectives.

  7. Real-Time Updates: Automatically syncs financial data across devices when internet access is available, keeping everything up to date.

  8. User-Friendly Interface: Simple and intuitive design ensures ease of use for users of all technical backgrounds.

Folder Structure

Remind-Wallet/ 
├── README.md
├── assets/ 
│   ├── lottie/ 
│   │   ├── expense_tracker.json
│   │   ├── budget_tracker.json
│   │   └── wallet.json
│   ├── riv/ 
│   │   ├── dog-loader.riv
│   │   ├── money_phone.riv
│   │   └── dash_flutter_muscot.riv
│   ├── ScreenShots/ 
│   │   ├── 7.jpg
│   │   ├── 3.jpg
│   │   ├── GooglePixel2XL-14.png
│   │   ├── 5.jpg
│   │   ├── 1.jpg
│   │   ├── 4.jpg
│   │   ├── GooglePixel2XL-2.png
│   │   ├── GooglePixel2XL-12.png
│   │   ├── GooglePixel2XL-11.png
│   │   ├── GooglePixel2XL-9.png
│   │   ├── 8.jpg
│   │   ├── GooglePixel2XL-4.png
│   │   ├── 6.jpg
│   │   ├── GooglePixel2XL-8.png
│   │   ├── GooglePixel2XL-13.png
│   │   ├── GooglePixel2XL-1.png
│   │   ├── GooglePixel2XL-7.png
│   │   ├── GooglePixel2XL-5.png
│   │   ├── GooglePixel2XL-10.png
│   │   ├── 2.jpg
│   │   ├── GooglePixel2XL-3.png
│   │   └── GooglePixel2XL-6.png
│   ├── app_logo.png
│   ├── logo-white.png
│   └── Logo/ 
│       ├── eps/ 
│       │   ├── logo-color.eps
│       │   ├── logo-no-background.eps
│       │   ├── logo-white.eps
│       │   └── logo-black.eps
│       ├── png/ 
│       │   ├── logo-black.png
│       │   ├── logo-color.png
│       │   ├── logo-no-background.png
│       │   └── logo-white.png
│       ├── pdf/ 
│       │   ├── logo-no-background.pdf
│       │   ├── logo-white.pdf
│       │   ├── logo-color.pdf
│       │   └── logo-black.pdf
│       └── svg/ 
│           ├── logo-black.svg
│           ├── logo-white.svg
│           ├── logo-color.svg
│           └── logo-no-background.svg
├── web/ 
│   └── ....
├── test/ 
│   └── widget_test.dart
├── lib/ 
│   ├── API/ 
│   │   ├── database.dart
│   │   └── firebase_databse.dart
│   ├── notifications/ 
│   │   └── notification_manager.dart
│   ├── Pages/ 
│   │   ├── account_detail_page.dart
│   │   ├── authentication/ 
│   │   │   ├── forgot_password.dart
│   │   │   ├── add_user_data_entry_page.dart
│   │   │   └── signIn_signOut_page.dart
│   │   ├── web.html
│   │   ├── home_pages/ 
│   │   │   ├── dashboard.dart
│   │   │   ├── show_user_detail.dart
│   │   │   └── bottom_navigation_bar.dart
│   │   ├── add_account.dart
│   │   ├── transaction_detail_page.dart
│   │   ├── edit_account.dart
│   │   ├── add_transaction.dart
│   │   ├── show_to_receive_page.dart
│   │   ├── starting_pages/ 
│   │   │   ├── check_page.dart
│   │   │   ├── ask_permission_page.dart
│   │   │   └── splash_screen.dart
│   │   ├── show_income_page.dart
│   │   ├── edit_user_detail.dart
│   │   ├── introduction_pages/ 
│   │   │   ├── introduction_pages.dart
│   │   │   ├── pages_list.dart
│   │   │   └── terms_condition_page.dart
│   │   ├── show_expenses_page.dart
│   │   ├── edit_transaction.dart
│   │   └── show_to_pay_page.dart
│   ├── constant.dart
│   ├── Componet/ 
│   │   ├── input_filed.dart
│   │   ├── dropdown_button.dart
│   │   ├── date_Input_field.dart
│   │   ├── account_card.dart
│   │   ├── toggle_button.dart
│   │   ├── logo_viewer.dart
│   │   ├── custom_button.dart
│   │   ├── custom_drawer.dart
│   │   ├── balance_card.dart
│   │   ├── menu_clicked_action.dart
│   │   ├── custom_snackbar.dart
│   │   ├── custom_alert_dialog.dart
│   │   ├── Transaction.dart
│   │   ├── riv_animation.dart
│   │   └── check_internet_connection.dart
│   ├── firebase_options.dart
│   ├── main.dart
│   ├── extras/ 
│   │   ├── dummy_firebase.dart
│   │   ├── amount_list.dart
│   │   ├── transaction_list.dart
│   │   ├── loading.dart
│   │   ├── firebase_all_options.dart
│   │   └── account_api.dart
│   ├── Provider/ 
│   │   └── provider.dart
│   └── Encryption/ 
│       └── substitution.dart
├── pubspec.lock
├── windows/ 
│   └── .....
├── app-release.aab
├── .metadata
├── android/ 
│   └── ....
├── ios/ 
│   └── .....
├── macos/ 
│   └── .....
├── app-release.apk
├── .gitignore
├── pubspec.yaml
├── linux/ 
│   └── .....
└── analysis_options.yaml

80 directories, 237 files

Getting Started

Welcome to Remind-Wallet, a Flutter-based mobile application. This guide will walk you through the installation process for setting up and running the project locally.

Prerequisites

Before you begin, make sure you have the following installed:

Installation

  1. Clone the repository:

    git clone https://github.com/Eemayas/Remind-Wallet.git
    cd Remind-Wallet
  2. Install dependencies:

    Run the following command to install the necessary dependencies:

    flutter pub get
  3. Configure Firebase:

    • Go to the Firebase Console.
    • Create a new Firebase project.
    • Set up Firebase for your Flutter app (follow the official Firebase setup guide).
    • Download the google-services.json (Android) or GoogleService-Info.plist (iOS) and place it in the respective folder in your project (android/app for Android or ios/Runner for iOS).
  4. Set up Hive for local storage:

    Make sure the necessary Hive dependencies are included in your pubspec.yaml. The default setup should work, but verify it as per the Hive setup documentation.

  5. Install the APK (for Android users):

    If you prefer to install the app directly on your Android device, you can download the app-release.apk from the releases section on the GitHub repository. Once downloaded, enable Install from Unknown Sources in your device's settings and install the APK.

Running the Project

  1. Run on Android/iOS:

    Ensure your emulator or device is connected and running, then execute:

    flutter run
  2. Run on a Web Browser (Optional):

    You can also run the project in your web browser using:

    flutter run -d chrome
  3. Enjoy the app: Open the app on your device and start tracking your expenses!

Troubleshooting


Common issues that may arise during installation include:

  • Flutter not installed: Ensure you have Flutter installed on your machine. You can download it from https://flutter.dev/docs/get-started/install.
  • Dependencies not installed: Run flutter pub get to reinstall dependencies.
  • Environment variables not set: Create a new file named .env in the project root directory with the necessary environment variables.

If you encounter any issues during installation or running the project, refer to the official Flutter documentation for troubleshooting tips and solutions: https://flutter.dev/docs/troubleshoot

Demo and Screenshots

  • Login Page
    Login Page

  • Sign Up Page
    Sign Up Page

  • User Details (Entry Page)
    User Details (Entry Page)

  • Reset Password
    Reset Password

  • Dashboard Page - I
    Dashboard Page - I

  • Dashboard Page - II
    Dashboard Page - II

  • Dashboard Page - III
    Dashboard Page - III

  • Dashboard Page (Options)
    Dashboard Page (Options)

  • User Profile Page
    User Profile Page

  • Splash Screen - I
    Splash Screen - I

  • Splash Screen - II
    Splash Screen - II

  • Splash Screen - III
    Splash Screen - III

  • Splash Screen - IV
    Splash Screen - IV

  • Terms and Conditions
    Terms and Conditions

Contributing

Contributions are welcome! Here are several ways you can contribute:

Contributing Guidelines

  1. Fork the Repository:
    • Start by forking the project repository to your GitHub account.
  2. Clone the Repository:
    • Clone your forked repository to your local machine using the command:
    git clone https://github.com/your-username/Remind-Wallet.git
    • Replace your-username with your GitHub username.
  3. Create a New Branch:
    • Create a new branch for your changes using the command:
    git checkout -b your-branch-name
  4. Make Your Changes:
    • Edit, add, or delete files as needed. Ensure your changes align with the project's contribution guidelines.
  5. Commit Your Changes:
    • Stage your changes and commit them with a descriptive message:
      git add .
      git commit -m "Your descriptive message"
  6. Push Your Changes:
    • Push your branch to your forked repository:
      git push origin your-branch-name
  7. Create a Pull Request (PR):
    • Go to the original repository on GitHub and click “Compare & pull request.” Provide a clear description of the changes and submit the PR.

Once your PR is reviewed and approved, it will be merged into the main branch.

Contributors

Avatar Contributor GitHub Profile No of Contributions
Eemayas @Eemayas 53

License

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