Code Monkey home page Code Monkey logo

bank-account-to-sheets's People

Contributors

cmenon12 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

bank-account-to-sheets's Issues

Fix losing transactions when the access token updates

Run this to find out what the changes look like (compare a JSON before & after from Plaid). If the IDs do change, need to be careful matching them up. Consider using a date cutoff to ensure that transactions aren't deleted.

Implement an object-oriented structure

Classes should be created for:

  • Transaction - this should be for a sheet transaction because this is what we use most. Include methods for:

    • Comparing with a Plaid transaction, need to be careful with this in case of two identical ones on the same day, include parameter for ID.
    • Importing a Plaid transaction.
    • Updating with a Plaid transaction, need to be careful with IDs & dates.
    • Exporting to a range (one row)
    • Static method to map attributes to header names.
  • Account - include totals reported by Plaid but not transactions.

  • SubCategory - a subcategory

  • ParentCategory - one of the top-level ones. Include methods to get and set subcategories.

Use JavaScript dates throughout. Need to include required getters and setters for objects. The 'last mile' of writing to the sheet should be handled procedurally, but these classes should prepare the data for it. Think carefully about headers.

Need to implement more IDs (pending and transaction) to maybe make updating more effective. Think carefully about dates, IDs, and updating with new transactions (need to look at how this is currently implemented). Fixing the broken updates when the access token changes is out of scope here (see #10).

Object classes should be defined in a separate file. Don't make any changes to the sheet (but do include additional fields that might be useful later). This should not change how it works for the end-user (we're not improving anything), merely the backend structure to make it more extendable and maintainable.

See https://github.com/cmenon12/contemporary-choir/blob/main/google-apps-scripts/the-new-ledger/ledger-checker-classes.gs for an example.

Add support for hidden pending transactions

Add total for pending transactions that are unaccounted for (i.e. where the difference between current balance and available balance isn't the same as the sum of the pending transactions).

Force subcategory to match category

Use the onEdit(e) trigger to update the data validation for the subcategory column dynamically, restricting the possible values to match the corresponding category. This will need to apply when the transactions are updated and when the category is changed.

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.