Skip to content

phoebehala/web5_f-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Finance Tracker

Expense and budget tracker as well as keeping track on the stock market. Live demo here.

Table of Contents

General Information

Idea / Motivation

Expense tracker app is a kind of daily used app and I always wonder how it works. As per the experience of using this kind of app, I thought it would be great to have a budget warning or integrate some financial information in order to provide good user experience.

Purposes / Intentions

  • To use the latest version of mui(v5)
  • To learn how to display chart in react.js
  • To consolidate the usage of contextAPI, useReducer, useState, useRef
  • To use custom hooks
  • To work with API and handle the error
  • To practice CRUD
  • To try keeping my components small or making them reusable by separating files and creating util files

Technologies Used

react.js

  • contextAPI, binded with multiple contextAPI
  • useReducer(), useState(), useRef(), react events, , useEffect()
  • custom hooks
  • react-router-dom

styles

  • mui v5: custom theme (custom button), components, styles

others

  • worked with API, axios, error handling
  • Window localstorage

other libraries

  • chart.js
  • plotly.js

Features

transactions for income and expense

  • create / edit / delete
  • Used the same component (addTransaction.jsx) to switch created mode or edited mode
  • Created a popover with pure react to implement above actions
  • The cahrt reflect the changes immediately whenever the transactions updated

Search and Filter transactions

Budget Warning

  • a progress bar with pure react
  • The color of bar changs when it hits the warning amount

Total Balance Calculation

Prompt info. with snackbar

  • The success info prompted once transaction is successfully created / edited / deleted
  • The warning info prompted once failing to get data from stock API
  • Reusing the same snackbar component with contextAPI

API Source

  • alpha-vantage

Room for Improvement

To do:

  • To limit "note" words in addTransaction.jsx
  • Advanced search feature in TransactionList.jsx : intersection check