GithubHelp home page GithubHelp logo

expensive's Introduction

Expensive

A bank statement manager / budget reporter. Imports CSV files from my bank, assigns categories to transactions, reports on monthly and yearly expenditures, and more.

I'm using this project to learn the Phoenix Web framework.

Application Notes

Models

  • Category categories

    • description:string
  • CategoryRegex category_regexes

    • category_id:references:categories
    • regex:string
  • Transaction transactions

    • year:integer
    • month:integer
    • day:integer
    • amount:integer
    • description:string
    • type:text
    • notes:text
    • category_id:references:categories
  • Check checks

    • transaction_id:references:transactions
    • description:text

Major Functionality

  • Import bank statements
    • Old statements, one-time import must handle older formats
    • New statements
  • Categories
    • Automatic assignment
    • Store regexes in database?
    • Edit them
  • Checks
    • Id is check number
    • Created manually or when txn is imported
  • Export tax info
  • Export/display monthly and yearly spend individually and by category

To Do

  • Upgrade Poison to 2.0.

  • Fatal flaw: if importing a check that does not yet have a transaction, the transaction that comes along later will never be linked to the check because the check table does not store the check number so we have no way of finding it.

Phoenix

To start your Phoenix app:

  1. Install dependencies with mix deps.get
  2. Create and migrate your database with mix ecto.create && mix ecto.migrate
  3. Start Phoenix endpoint with mix phoenix.server

Now you can visit localhost:4000 from your browser.

Ready to run in production? Please check our deployment guides.

Learn more

expensive's People

Stargazers

Alex Wachira avatar McGunn avatar Morgan avatar

Watchers

Jim Menard avatar James Cloos avatar  avatar

expensive's Issues

mix ecto.create fails

Hello, I'm trying to run setup the app but getting following error when executing mix ecto.create. web/router.ex is there but for some reason it
mix_ecto.create.txt
is not hooked up properly.

== Compilation error on file lib/expensive/endpoint.ex ==
** (UndefinedFunctionError) undefined function: Expensive.Router.init/1 (module Expensive.Router is not available)

Thanks.

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.