agstrike / silverstrike Goto Github PK
View Code? Open in Web Editor NEWFinance Management Made Easy
Home Page: https://silverstrike.org
License: MIT License
Finance Management Made Easy
Home Page: https://silverstrike.org
License: MIT License
A couple of allauth pages have already been styled, others are still just simple html and should incorporate the styles used across SilverStrike.
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.
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.
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
The list can become overwhelming the more accounts are marked inactive.
They should be moved to a separate view with a link to them in the "normal" account index.
Cloning a transaction should open a createview with all data filled in from the other transaction.
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.
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
That way transactions could occur biweekly or every quarter.
The development setup wiki page has following errors.
python3 -m venv env
pip install Django django-widget-tweaks python-dateutil django-allauth
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
requirments.txt
file and install packages with exact version using it.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.
Create a yunohost package for SilverStrike.
If there is no data available in the chosen period, res is empty and subsequently results in a traceback.
Currently the form to enter/edit them is rather hard to use.
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
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:
Currently when accounts are merged in the admin, the recurrences are not updated.
Thinking about multiple users, we might want one system account per user/group to keep all records separate
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.
The way this should work is to allow custom queries (searchers) on transactions and allow people to manipulate the results.
Use cases:
Should be pretty straight forward:
Over time the list of disabled recurring transactions can grow,
I don't think it's feasible to show them in the "normal" view.
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
Weekly and biweekly are both pretty basic options for recurring transaction intervals. There are likely more recurrence options needed but these two are simple to add and fundamental.
Currently they are created one after the other. It should however be created atomically. Either all instances are saved or none. We don't want inconsistencies in the db
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?
At a high level, I see the back end here is Python and Firefly's back end is PHP. What are the other current and planned differences?
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
Have you considered building a docker image for it?
I am looking at doing so for my own server (everything running on my server is docker), but don't want to duplicate efforts.
If you do it yourself, here's a nice starting point I found:
https://www.caktusgroup.com/blog/2017/03/14/production-ready-dockerfile-your-python-django-app/
Silverstrike lacks a proper search functionality.
I'm thinking of something like the github way of searching through issues
category:<search-text>
is:transfer
, ...src:<search-text>
date:<some-date>
amount:<some-number>
dates and amounts should also allow specifying ranges
If it makes things easier the django query notations could be used
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...
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.
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
If an account is going to drop below zero because of some scheduled transactions, warn about it.
It should account for upcoming transactions and scheduled recurrences
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...
For People who have used moneyplex, moneypenny quicken etc. there should be an import of .csv transaction lists - that would spread the user base a lot.
Currently charts are just empty if no data is available.
I think we should show a note instead saying that not enough data is available to render the chart.
Current display of number is really hard to read.
For example this screenshot below.
Please format the output number in a better way (add comma, or word,...) some thing like this: https://docs.djangoproject.com/en/2.0/ref/contrib/humanize/
The account view is capable of showing any daterange, but this is not accessible over the UI yet.
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:
active
to show there state. It should be true by default, and changeable in the Category edit form.active
attribute in:
In the page listing all recurrences it would be nice to have a couple of badges in the top showing:
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.
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.
Instead of deleting a recurring transaction, the transaction should be disabled, so the information about it is still available, but not used in notifications and such.
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...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.