FinCat | A new way to manage your financial.

Personal finance management is a crucial aspect of our lives, yet it's something that many people struggle with. Keeping track of our expenses and staying within our budget can be a daunting task, especially when we have multiple sources of income and various ways of making payments. That's where a personal finance management app comes in. In this article, we'll be discussing a Personal Money Management App that can help you manage your finances more effectively.

Type
Project
Stack
Next
Tailwind CSS
NodeJs
MongoDB
Source Code
fincat dashboard image
Product Purpose and Goal

The Personal Money Management App is designed to help you manage your personal finance through expense tracking. The app allows you to categorize your expenses and show your current balance in each category. This way, you can make better decisions about your personal finances.

How it's work

The Personal Money Management App (FinCat) operates on the principle of measuring and managing your expenses.

I start with a quote from a management guru Peter Drucker once said,

If you can't measure it, you can't manage it.
- Peter Drucker

In other words, we need to first measure our expenses before we can effectively manage them.

So, We divide the problem into Measuring and then Managing :

1. Measuring our expenses

To measure our expenses, we need to record every transaction or record of money we spend. In the past, people used pen and paper or Excel sheets to track their expenses. While Excel sheets are useful for tracking expenses, they can be time-consuming and require discipline. This is where digital tracking apps come in.

Digital tracking apps are a great way to track expenses because they eliminate the need for manual data entry, they can pickup data from your SMS and update the record. However, the problem with digital tracker is that there are many ways to do payments like online transactions, credit cards, debit cards, and cash payments and also more than one bank account. It can be hard to track every transaction from different payment methods.

Possible Solution for measuring

One solution is to use a credit card or prepaid card for all expenses. This way, you can track all your expenses in a single card and keep track of them easily. Another option is to use third-party cards like Slice or One Card, which provide a dashboard for tracking expenses. However, doing all our transaction through one card is very rare.

Another better possible solution for the online payments is to get an API from banks for accessing your transactions . Then we can use this API to store data in our database and categorize each transaction, This solution solves the issue of measuring transactions from different payment methods. Unfortunately, banks don't always provide APIs for accessing their transactions. This is where Open Banking APIs and other types of banks like Neo Banks come in. But, it's not accessible for every individual that's why I'm going into this.

Some app gives feature of Scanning your bills, and that app will take care of your tracking transaction manually, put expenses into right category just click a picture of your bills. It's also a good possible solution rather than entering manually if your all expenses comes in a recipt form. But, In my local market and shops they don't have their billing system. So, I have to find another way.

Also, We want reports from expense tracker app.

Queries from Expense Tracker

A good personal finance management app should be able to provide answers to common queries like :

- Show all transactions that I made this month and how much I spent on each category.

- Give spends amounts and percentage on different categories like foods, house rent, bills, savings, etc.

- Give me some reports regarding how much I saved or invested last month/year.

Summary of Solution

The solution to measuring expenses is to use credit cards/prepaid cards for tracking online transactions. Other than that, we need to put our expenses manually in our app. Over time, we can improve this process to make it more frictionless.( We can do sms reading, we any bank provide APIs for that, we can Integrate it)

1. Managing our expenses

What's wrong with our method of managing money, I think we are good at managing money by default, but there some circumstances or situation comes and then we overspend or impulse buys something that we got influenced by some product in a market place. At the time of buying stuff we directly see the main balance of our bank account, if bank balance is sufficient then we buy directly. However, that current balance is reserve for some other things also but we don't remember at the time of buying because we are in state of influence by that product.

Possible Solution

To solve this problem, we can manage our expenses through the Personal Money Management App with the help of a categorization process. In our app, we can categorize expenses and provide users with an abstracted view of their current balances of each category. When a user tries to spend on something, we can show them their current balance of that category.

This is not the best way to solve the issue, but it can work for most of the people. I also read a lot about personal finance there is a method called "Cash Stuffing " that work on a principle of categorization into an envelop and It's works for most of the people. so, our app can also works too.

If I can put this into diagram, It could look something like this :

fincat dashboard image
How we build it

Now, it's time for the fun part - we're going to start building it! Yeahh.

- Architecting our App

We start with a very basic three tier architecture, we have frontend with NextJs, backend with Node and for Database we have mongodb.we create a REST Api for all CRUD part and our frontend will consurme these APIs.

architecture image
- Data Modeling for our App

We can create a baisc data modeling for our app that includes User for storing details of user, UserAccount for storing total income and categories Id and last categories for storing array of Category that includes deatils of name, value in %age of total Income, current Balance,etc.

data model image
- User Flow Diagram

User Flow Diagram gives the idea how users interact to our app, first he goes to Login screen, If he not signed in then go to Sign Up page and register yourself. Then create an account through onboarding page and then go to dashboard.

user flow image
Let's start the demo

We can now see how our app look and feel in the following point.

- Sign Up and Sign In

We start our app with Sign In screen, If we don't Sign Up then we have to Sign Up first. Then, It will redirect to Dashboard.

signup image
- Dashboard page with No Account

We now see the Dashboard Page but we don't onboarded yet or we don't have account.

dashboard image
- On board page

In the onboarding page, we have to Input our total Income(25000) and we can create categorization with percent(%) of total income, here we create Needs, Wants and Savings & Investing with 50/30/20 rule.

onboard image
- Dashboard with Account and category balance

Now, after onboarding we get back to dashboard and each category has own current balance.

dashboard image
- Add Expenses

We now add expenses of 2000 in Needs category and 3000 in Saving & Investing category.

add expense image
- Dashboard After expenses

We now have current balance of each category after adding expenses.

dashboard after expense image
Conclusion

Thanks a lot if you are still reading, It's quite a long but I like to write details about how the app should work.

The app is still in experimenting phase, we can add more features on it. If you want to try the app you can go to the top of the page and click on "View Site". It may feel like buggy or some error may come.