Giter VIP home page Giter VIP logo

organize2's Introduction

Code Climate Issue Count Deploy

Running

$ cp docker-compose.yml.sample docker-compose.yml

Edit docker-compose.yml according to your needs.

$ cp config/database.yml.sample config/database.yml
$ docker-compose build && docker-compose pull
$ docker-compose run --rm -u root web bash -c "mkdir -p /bundle/vendor && chown ruby /bundle/vendor"
$ docker-compose run --rm web bundle install
$ docker-compose run --rm web bundle exec rake db:create
$ docker-compose run --rm web bundle exec rake db:migrate

Deprecated notices

  • The table cards is deprecated
    • See #70 for more details
  • The column movements.chargeable_type is deprecated
    • Though it is deprecated this relation is still a fully functional polymorphic association
    • See #70 and #41 for more details

organize2's People

Contributors

dependabot[bot] avatar dmitryrck avatar rafaelrpbelo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

organize2's Issues

Repeat expenses

Add fields repeat_expense that receives a list of days in the format:

2021-01-01
2021-02-01
2021-03-01

In the creation form.

When at least one line is present it creates another Outgo.

Create CRUD of Goals

This is only the CRUD this is not the report.


CRUD with:

  • title - string
  • categories - list of categories split by ,
  • value - float
  • kind - Enumeration: weekly, monthly, yearly

Example

The goal here is to have something like:

I (user) want to limit my expenses with supermarket to 200 weekly

Which turns out to be:

  • title= "Weekly supermarket expenses"
  • categories= "supermarket"
  • value= 200
  • kind= weekly

Create report of goals in the dashboard

Work on this after #23


User should be able to see the Goals with details like:

  • title, example: "Supermarket (weekly)"
  • chart, the chart shows the percentage
  • current, the current amount paid for that category(ies)
  • max, the value set to that goal
  • overspent, the value overspent on that goal (if it is overspent)

Idea

20210328_083104

Notes

  • For the monthly expenses the query should be from day 1 to last day of the month of the current month
  • For the weekly expenses the query should be from last Monday to next Sunday of the current week
  • For the yearly expenses the query should be from the first day of the current year to the latest one
  • This has to filter only by date and kind="Outgo" (i. e., it does not matter if the Outgo is (un)paid or (un)expected_movement)

Merge cards and accounts table into wallets

  • Rename accounts to wallets
  • Migrate all cards to wallets (Using SQL and Rails migration) #70
  • Update movements table to use only wallets (chargeable โ†’ wallet)
    • Update data on movements #70
    • Drop the column chargeable_type
    • Rename chargeable_id to wallet_id
  • Drop cards table

Notes

  • There is a custom error message introduced by 7c512a0 , it is worth removing it and leaving only the ActiveAdmin way.
  • Be careful when updating movements table, remember that the id on accounts and cards both start with 1, it might be worth adding two temporary columns to help migrate on wallets. For example: card_id (can be null) and is_card (default false, when migrating cards to wallets set as true)
  • There is one feature for paying card debts in the app, make sure it is working after this migration

Create Calendar URL

Create calendar URL to subscribe using Google Calendar or macos Calendar.

ics file format: https://en.wikipedia.org/wiki/ICalendar .

Ideally this URL should be protected with a random hash, something like:

https://example.com/calendars/qgTrNgkr8kVlLGCWUClN9fL.ics

Ideas:

  • Create a CRUD to "export" calendars, in this CRUD we can choose the accounts
    • Within /admin/calendars it uses the regular serial id
    • But /calendar/XXX is only accessible with that random key
    • Fields: id, account_ids (postgres array of ids), access_key (random generated, users can change), active (boolean)
  • Export all calendars, but receive that random string from ENV var
    • Only export if that ENV var is set

Link to the Outgos in the categories#show view

Link to Outgos filtering the result by that month and tag.

Something like:

/admin/outgos?q%5Bdate_gteq%5D=2021-03-01&q%5Bdate_lteq%5D=2021-03-31&q%5Bcategory_equals%5D=supermarket&commit=Filter&order=date_desc

Create "index" of categories

Better to create a database view.

Current code to return all categories:

select distinct(category) from movements where kind = 'Outgo' order by category;

Update account_balances to only take active accounts into account

As for today the account_balances view sums the balance of all account.

Change that to only include active accounts:

      create or replace view account_balances as
        select currency, sum(balance) as value, cast(avg(precision) as integer) as precision
        from accounts
        where accounts.active = true
        group by currency;

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.