Git Product home page Git Product logo

gobanks's Introduction

API

Exhaustive list of needed APIs.

method route status
GET /transactions DONE
POST /transactions DONE
PUT /transactions DONE
DELETE /transactions DONE
GET /accounts DONE
POST /accounts DONE
PUT /accounts DONE
DELETE /accounts DONE
GET /banks DONE
POST /banks DONE
PUT /banks DONE
DELETE /banks DONE
GET /categories DONE
POST /categories DONE
PUT /categories DONE
DELETE /categories DONE
GET /summary TODO
GET /report TODO
GET /report/debit TODO
GET /report/credit TODO
GET /report/categories TODO
GET /report/debit/categories TODO
GET /report/credit/categories TODO
GET /report/accounts TODO
GET /report/debit/accounts TODO
GET /report/credit/accounts TODO
GET /report/banks TODO
GET /report/debit/banks TODO
GET /report/credit/banks TODO

/report with the right filters ->

{
  "debit": 9242.30,
  "credit": 4300
}

/report/categories ->

[
  {
    "categoryId": 11,
    "debit": 242.30,
    "credit": 400.00
  },
  {
    "categoryId": 21,
    "debit": 242.30,
    "credit": 0.00
  }
]

/report/debit/categories ->

[
  {
    "categoryId": 11,
    "debit": 242.30
  },
  {
    "categoryId": 21,
    "debit": 242.30
  }
]

/report/credit/categories ->

[
  {
    "categoryId": 11,
    "credit": 400.00
  },
  {
    "categoryId": 21,
    "credit": 0.00
  }
]

/summary

{
  "total": 21324,
  "lastTransactionDate": 1224325543,
  "banks": [
    {
      "id": 2,
      "name": "My Bank x",
      "total": 21314,
      "accounts": [
        {
          "id": 2,
          "name": "account a",
          "total": 21300
        },
        {
          "id": 7,
          "name": "account b",
          "total": 14
        }
      ]
    },
    {
      "id": 3,
      "name": "My Bank y",
      "total": 10,
      "accounts": [
        {
          "id": 9,
          "name": "account g",
          "total": 10
        }
      ]
    }
  ],

  "categories": [
    {
      "id": 2,
      "name": "restaurant"
    },
    {
      "id": 9,
      "name": "technology"
    }
  ]
}

TODO

  • all sql_ methods take the userId (denormalize bdd to include id? or cache?)
  • add way to calculate the real total for each account (diff with transaction sum? / date + state at this date + transaction sum from date?)
  • add rest of the routes. First summary then report/categories then test then rest while frontin'
  • begin to program the front and webserver (!!)
  • add personal parsers for csv etc.
  • add autofilters to automatically set categories (front or back?)
  • nested categories
  • crypt transactions/banks/accounts/categories?
  • switch all code to elixir or something
  • simplify that monstruosity
  • README To explain every API
  • implement cache somewhere (over the rainbow?)
  • become richer than uncle scrooge
  • sleep

gobanks's People

Watchers

James Cloos avatar Paul Berberian avatar  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.