Money-Metriz: Your Personal Finance Assistant

Money Metriz: Appwrite Hashnode Hackathon

Team Details: Prashanth Reddy Munagala

Description of Project:

An expense tracker is an application that helps users keep track of their spending habits and manage their finances.

The app typically allows users to input their expenses and categorize them based on their types, such as food, transportation, or entertainment.

Users can also set budgets. The app offers features such as charts and graphs to help users visualize their expenses and identify areas where they can cut back.

An expense tracker can be a useful tool for anyone looking to improve their financial management skills, save money, or simply gain a better understanding of their spending habits.

Tech Stack: Flutter, AppWrite(SDK)

Challenges We Faced: At the beginning of the project, I encountered difficulty in comprehending how Appwrite works. However, I was able to improve my understanding of Appwrite by referring to the Appwrite documentation.

Public Code Repo: https://github.com/Iamprashanth-1/Money-Metriz

Project Data:

Project Flow:

How did It start?

  • Initially Developed a Similar Application(MoneyMetriz) that finds bank transaction data from an SMS from our mobile messages. Currently Available in Playstore But Obseved one thing users are unable to trust the app because they are thinking their data was stored somewhere online but the rod reality is it doesn't store any data in any Cloud. It stores data in their device itself and even the app works without the Internet as well I have Intimated all those things in Onboarding Screen but didn't gain user trust, so giving another shot Manual process i.e. users explicitly need to enter all expenses.

  • The UI Looks Somehow similar to the existing app i.e MoneyMetriz(available on Playstore)

What are the Features Available?

  • Login

  • SignUp

  • Users Can Add Expenses

  • Expense Analytics

  • Edit/Update Monthly Budget

  • View Transactions

What TechStack Used?

  • Frontend Flutter

  • Backend/Storage AppWrite

Features Of Current Application:

  • Onboarding: It aims to provide a seamless and user-friendly experience by introducing users to the app's features and guiding them through the initial setup.

  • Login: The user Needs to Enter their Email and Password if already signed up else user needs to sign up and then login back. Currently Forgot Password because an external URL need to be created to authenticate of forgot password this goes under the TODO section. Whenever users enter their email and password app sends a request to appwrite if 200 they proceed to Home Screen else the user gets an error message stating Invalid Email or Password. when the status was 200 I am storing userId in shared preferences every time a user opens the app I will check user-id is present in shared prefs if exists then move to HomeScreen else Loginscreen. If any session got expired from appwrite then the user will be redirected to the login screen.

  • SignUp: Users can Signup By giving their Name, Email, and Password after signup user will be redirected to Login Screen.

  • HomeScreen:

    • Add Transactions:

      • Add Expense-related Data i.e. Amount, Description, Category, and Date of Transaction.

    • Filters:

      • User Can Select Month And Year. Data will be displayed only for selected years and months.

  • Home Tab:
      • If the User Didn't add Budget For the Current Month User Will get a Popup to add Budget Note Budget Must be Float or INT. After the user Enters the Budget just hit refresh the budget gets updated.

        • Users can add transactions by clicking the + Button users need to choose the type to transaction type of category amount and description and press ok. Just drag down to refresh user transactions.

        • Users can edit the current Month's Budget By clicking the edit Icon on Budget Card.

        • Users can choose Month and Year By clicking the filter Icon on AppBar So transactions will be displayed for only chosen month.

        • Users can see ALL Transactions on Your Transactions Card. Users can filter on a date basis. Filter Feature was added but getting some Index related issues from Appwrite.

          • Analytics Tab:
        • In This Screen, Users can see charts that contain monthly level data.

        • Users Get data every year. In the selected year how the user transactions were done on the month of every month may be credit/debit analysis.

        • Users Can see range-wise transactions made. example within Rs 1-100 How Many transactions were made? Users can see Both CREDIT/DEBIT wise counts.

        • Users Can see How many transactions were done on day to day basis.

    • Profile Tab:

      • Users can update their Email, Password, and Name.
  • Users can Logout By clicking the Logout button. on-click the user will be redirected to Login Screen.

  • Users Can Add/Update their Profile Picture.

TODO:

  • If Index is issue fixed will add a date filter to Your Transactions card in Homscreen.

  • Need to Add Forgot Password Feature After creating URL.

  • Edit Transactions.

Pros and Cons of Using AppWrite Flutter SDK:

  • Pros:

    • Built-In Authentication in SDK

      Single Code line used to access Databases(CRUD Operations)

      Single Code Line used to Aceess Storage(CRUD Operations)

      Simplified Backend Integration

  • Cons:

    • First Time users who are looking into Flutter SDK will take some time to implement.

      Documentation is not up to date I am not able to find response-related data documentation.

      Regarding Indexing, this might be Bug Even though I am creating indexes for attributes still I get exceptions as no Index is found

APK Link: https://github.com/Iamprashanth-1/Money-Metriz/blob/master/outputs/app-arm64-v8a-release.apk

#appwrite #AppwriteHackathon

10
Subscribe to my newsletter

Read articles from Prashanth Reddy Munagala directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Prashanth Reddy Munagala
Prashanth Reddy Munagala