Code Monkey home page Code Monkey logo

silverstrike's People

Contributors

aso930 avatar exlum avatar luisfmelo avatar qedi-r avatar sheco avatar simhnna avatar wilt00 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

silverstrike's Issues

Style all relevant allauth pages

A couple of allauth pages have already been styled, others are still just simple html and should incorporate the styles used across SilverStrike.

Allow creating a recurrence from a transaction

You should be able to easily create a recurrence from a transaction. It would prefill everything except the recurrence field.

This would also be the way to create a recurrence when it would involve an account that has not been created yet.

Add ability to associate a transaction to a recurring transaction

It's currently not possible to associate an existing transaction to a recurring transaction without going to the split edit page.

I don't think it should be in the transaction edit page, but a separate view that can be opened from a transaction's detail page, where you can choose a recurring transaction to associate it with.

Display planned transactions in charts

The ultimate expected change doesn't tell the story behind the value.

That's why transactions with a future date along with upcoming recurrences should be displayed in the charts using a dotted/dashed line. That way people can quickly see what the expected changes look like and also see their timeline.

I guess the only charts I would include this info in are the account view and the index view.

I think it's overkill in the rest, this will also allow us to only implement the forecast for one month only

Add notion of household

  • A user can be part of any number of households.
  • A household can be accessible by a number of users. (Bonus read-only access)
  • All transactional data is owned by a household
  • Users can switch between households in the UI

Add ability to generate various reports

It should be possible to generate reports that people are interested in.

If you want to have a way to get a report on something specific please mention it in a comment here.

  • Monthly income/expense/savings

Recurring Transactions should have more options

Some transactions are regular but neither monthly nor yearly but each quarter or so.

It would be nice if recurrences can be scheduled by specifing the a number and timeunit. Supported units would be

  • Day
  • Week
  • Month
  • Year

That way transactions could occur biweekly or every quarter.

Bonus

  • It would be nice to have the ability to intelligently know when a transaction is due. In Europe transactions are usually only processed on week days, so if a transaction is due on a Saturday, it is actually booked on the following Monday.

Errors in Wiki page of Development Setup

The development setup wiki page has following errors.

  1. Packages through pip are being installed globally as virtual environment is not activated before installation.
python3 -m venv env
pip install Django django-widget-tweaks python-dateutil django-allauth
  1. Running python manage xxx commands give following error
~silverstrike/demo$ python manage migrate
python: can't open file 'manage': [Errno 2] No such file or directory

All such commands should be python manage.py xxx

  1. Version of packages are not mentioned in following command. We can create requirments.txt file and install packages with exact version using it.

Import from Emails Automatically with Interactive Slack Messages

I currently have a script I use to download emails from Chase and other banks to automatically add transactions to my database, which coincidentally was setup very similar to this program, and send slack messages which can modify the transactions.

Since finding this I've been running both concurrently with queries to copy the data between the databases. I have started working to incorporate the emails and slack into silverstrike but am fairly new to django.

My first question is should I create this as a separate django app within the project or use the existing app? Nothing I'm adding will affect the front-end with the exception of two fields in the account model (email address and bank). The rest of the scripts will need to run the background. Currently I use schedule and multiprocessing to accomplish this but don't think that would be within the best practices of django.

I also needed to create a new endpoint to get the requests from the slack messages. I did this by adding a new view that can capture the post request

Any pointers or suggestions would be greatly appreciated.

Improve split transactions

Currently the form to enter/edit them is rather hard to use.

  • The normal split form should only allow to split transactions using the same source and destination based on the category
  • You should only need to enter one part of the split, the other should be created automatically

Splitting transactions so more that two accounts can be used, should not be supported.
Transactions are always between exactly two parties. If more than two parties are involved, like tax reductions in paychecks need to be handled in some other way.

In that case you don't actually remove money from your personal account, rather your employer is forwarding the taxes to a third party. I'm not sure how this can be modeled, but it would be nice if silverstrike supported some sort of shadow entries that show that a certain transaction is hidden in the process

Add some notion of follow ups

It would be nice if one could create followups for certain transactions, with a reminder and a note. It might be interesting to keep these follow ups around even if they are resolved. So there should probably be a flag for that as well...

I think the model would include:

  • transaction
  • date of notification (optional)
  • notes (optional)
  • resolved (boolean, default=False)

Implement refunds

Evert now and then there is a transaction that's going to be refunded (partially).

If you split the check at a restaurant, but you pay for all with your credit card and the others repay you in cash or by a transfer.

If you have to pay something, that you'll be reimbursed for in the future (travel expenses, expenses covered by insurance, ...)

I guess a new model needs to be added, that can Link two transactions together along with a specifier for the type of link.

Allow editing multiple transactions

The way this should work is to allow custom queries (searchers) on transactions and allow people to manipulate the results.
Use cases:

  • Assigning categories, recurring transactions

Add ability to upload files to transactions

Should be pretty straight forward:

  • Add a model for transactionfiles with foreign key to a transaction
  • Add view to upload file
  • Add a button to add a file to a transaction
  • Add links in transaction detail view to the files including a delete form (if there are any associated)

Generic CSV disabled

Just spun up a fresh install of silverstrike via the docker image and Import optionGeneric CSV is disabled. If I try to manually go to the URL and upload a file, I get the following error:


Request Method: | POST
-- | --
https://silverstrike.example.com/import/generic/a6e727d9-ed22-4cfc-8673-f6a1fa2d90ad/
2.2
KeyError
'field_type'
/usr/lib/python3.6/site-packages/silverstrike/views/imports.py in <listcomp>, line 58
/usr/sbin/uwsgi
3.6.6
['.',  '',  '/usr/lib/python36.zip',  '/usr/lib/python3.6',  '/usr/lib/python3.6/lib-dynload',  '/usr/lib/python3.6/site-packages']
Wed, 17 Apr 2019 15:24:40 +0000

No zero-sum budget?

I'm surprised that you (coming from YNAB) have cloned this application and not implemented a zero based budgeting mechansim.

Any plans or reasoning why regular categories are supported?

Implement debts

There should be a way to manage debts.

I think they should be somehow associated with foreign accounts.
Interactions with debt should be normal transactions where withdrawal can increase debt and deposits decrease it. how much of a transaction is considered adding/removing debt has to be configurable so that you can interact with the same account but not affect the debt

Add search functionality

Silverstrike lacks a proper search functionality.

I'm thinking of something like the github way of searching through issues

  • Searching for categories by using category:<search-text>
  • Expenses, transfers and withdrawals by using is:transfer, ...
  • By account src:<search-text>
  • By date date:<some-date>
  • By amount amount:<some-number>

dates and amounts should also allow specifying ranges

If it makes things easier the django query notations could be used

Add tests

All relevant parts of the code should be covered. While I don't like to require a fixed percentage, I guess something around 90% would be nice to have though...

"Withdrawl" vs "Withdrawal"

Not to be a massive pedant, but if we're going to be pedantic anywhere, financial software is a great place for it. :D

The correct spelling of the word is "withdrawal", with an "a", not "withdrawl". At the very least, the UI should use this spelling, even if internal variables don't change.

Implement saving goals

The most logical place to add this, is budgets.
The reason behind it is that you want to save a certain amount of bash per month for a certain goal. Since budgets already track the monthly plan, savings should also be displayed there.

There won't be any spending or money left, but it will count towards the budget-able money.
Money available to budget would default to (monthly deposits * 1 + weekly deposits * 4) but should be changeable

Import bill information from Firefly

The bills from Firefly should be imported as recurring transactions. It will need some magic to determine the amount, title and recurrence options.
I guess they should be created with a disabled state, so the user has the chance to look at them.

The information about the link between these transactions would otherwise be lost...

Allow hiding categories

You should be able to create a category that is only used for a certain time but you want to keep the records around.
For instance a category for all university spendings. Once studies are finished, you don't need the category anymore, so you don't want it displayed across SilverStrike.
Steps:

  • Categories should get another attribute active to show there state. It should be true by default, and changeable in the Category edit form.
  • Make a view for hidden categories and link to it from the category index.
  • filter categories based on the active attribute in:
    • transaction forms
    • category index if there was no activity for the category in that month
    • budget index if there is no budget set and there was no activity in that month

Add badges with info to the recurrence overview

In the page listing all recurrences it would be nice to have a couple of badges in the top showing:

  • how much income / expenses occur in a given month
  • what amount is still outstanding for the given month.

the style of the badges should be similar to the ones here

There might be more info that is interesting, but that's what I can currently think of.

Allow creating new accounts in Recurrence form

When you create a new recurrence and have no previous transaction involving the accounts, you can't choose them, because they are currently select inputs.

The way to go is to add a "Create new account" button, that behaves like the django admin, in that it opens a new window where the user can create an account, which is then selected.

Allow recurring transactions to be split transactions

Since we can have split transactions, it would be nice if recurrences could also involve multiple splits.

I'm not sure how this should be modeled though. Using the existing Transaction and Split models will end in chaos, while copying the structures seems silly.

I currently can't think of a better solution...

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.