Giter VIP home page Giter VIP logo

money-tracker's Introduction

Money Tracker

Finance tracker with no need for your bank passwords.

Although I like tracking my expenses so I know how much I blew on beer this month, I don't like giving away my username and password to third-party services that would ask my banks for statements on my behalf. Instead, I wanted to create a simple app that would allow me to put in the information myself.

The basic features I'm shooting for in v1 are:

  • Upload a .CSV from my credit card. Without this, it would be far too annoying to input each line item and I simply would not do it
  • Add / edit / remove line items
  • Show a list of line items that I can query by date
  • Show at least one pretty graph

Development

In the src directory, run npm run dev. The server and website will start up concurrently. The website is available at http://localhost:8080. Requests to the API are proxied to http://localhost:3000 via the Webpack dev server in the web project.

Basics

The package money-tracker contains the domain definition. The web project is a React app that communicates with the server project via HTTP. The system uses MySQL to make the system easy to run in a single docker image and make data backups easy.

Warning

The API does not have a restriction on the number of results returned. This is a design choice, but can cause some serious performance issues if this was used in a larger system.

Notes

Warning: The final argument passed to useEffect changed size between renders. The order and size of this array must remain constant.

This is a warning that React throws up when a user deletes a transaction. It is due to the way useEffect is being used. In order to only fire useEffect when a transaction changes, I chose to use the spread operator to force the useEffect function to watch each individual transaction instead of the transactions collection, aka "data" in the TransactionPieChart. Until I find a reasonable workaround, I'm going to take the hit of React throwing a warning into the console when in development mode.

money-tracker's People

Contributors

beeronbeard avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.