A fintech application for retirement planning !
Full Stack Personal Finance Web App
This is a personal finance application that allows users to link their bank account via the Plaid API. Current functionality includes basic authentication via JSON Web Token, and the addition, deletion, and refreshing of a bank account. The application will display the user's account balances and transactions. Note that this project is a work in progress - more features are planned to be implemented in the future.
PROBLEM STATEMENT
So, presently, do people plan their retirements considering all the factors ?To plan your retirement corpus, large number of factors must be considered, for eg: your current salary, expenses, current savings, your assets, liabilities, investments, etc. Apart from this, global factors such as inflation rates, location based expenses (cheap vs expensive city), stock market conditions, etc, should also be considered to evaluate what should be your retirement corpus.
But currently, there is no solution to provide complete picture of your retirement corpus / savings, that would be sufficient for you to live a comfortable retired life.
PROPOSED SOLUTION
Thus, my solution is to use technology (web, data analytics, etc) to create an application that takes into consideration user’s current financial status such as assets, liabilities, investments, etc, and global factors (inflation, location specific lifestyle, stock markets, etc) to model user’s future retirements needs and what, when, and how current savings can lead to future retirement corpus.Data points are collected through API’s and modelled to create an output and displayed in chart for easy understanding.
PPT is uploaded in the repo.
Setup
git clone https://github.com/jagodin/personal-finance-appcd personal-finance-appnpm installnpm run devto run the development environment.
Configure ./config/default.json
{
"mongoURI": "YOURMONGOURI",
"jwtSecret": "YOURSECRETTOKEN"
}
Technologies
- Node.js
- React
- Redux
- MongoDB
- Express.js
- Material UI
Packages
- Axios
- Express Validator
- JSON Web Token
- Redux Thunk
- Bcrypt.js
- Mongoose
- D3 JS
Screenshots
Login/Registration Page
Dashboard and Profile Menu
Linked Accounts and Balances
Transactions
Plaid Link
Responsive Dashboard
Future Enhancements
- Implement budgets and categorize transactions into appropriate budget.
- Add user settings (i.e. UI preferances).
- Give users the ability to report application issues via the Support page.
- Implement FAQ.
- Responsive UI enhancements.
- Implement cache to prevent user's from overloading the backend and Plaid API.
- Implement Google Firebase Authentication.
Disclaimer
Note that the application exposes the user's accesstokens and itemids to the client. For production releases, these must be securely persisted to your database and never exposed to the client.
From the Plaid API documentation:
accesstokens and itemids are the core identifiers that map your end-users to their financial institutions. You should persist these securely and associate them with users of your application. Make sure, however, that these identifiers are never exposed client-side. Keep in mind that one user can create multiple Items if they have accounts with multiple financial institutions.