dotledger / dotledger Goto Github PK
View Code? Open in Web Editor NEWDot Ledger is a Free and Open Source personal finance management tool.
Home Page: https://www.dotledger.com/
License: Apache License 2.0
Dot Ledger is a Free and Open Source personal finance management tool.
Home Page: https://www.dotledger.com/
License: Apache License 2.0
Hi, great work!
Would if be possible to enhance the system to allow categories to be automatically set to transactions in bulk, based on the description or description criteria?
Thanks
The Demo does not work.
I really like Dot Ledger. It is nearly perfect for personal finance. However, there is a lack of one feature which is a show stopper for me IMHO.
The available really limited date filters are,
7 Days
14 Days
30 Days
90 Days
180 Days
Month-to-date
Year-to-date
This is not very useful at all. There needs to be a date range filter where the user can specify exact date range.
See an example in the demo copy of the application. If there are too many accounts to fit on the screen in the top menu dropdown, there is no way to get to the ones at the bottom of the list.
One easy solution might be to add a route in Backbone for /accounts
that will list all accounts available for the currently logged-in user account. We might also change the link "Accounts" at the top menu bar to go to that page and have a hover/focus event open the dropdown, mirroring the current functionality.
Making a fully-fledged page enumerating all of the accounts might also make it a bit more mobile-friendly, I'd imagine.
I've just come across this project and would love to use it, contribute, etc. But it seems like it has recently died, so to speak.
The last commit was in May 2018, over a year ago.
Does anyone have any better info on the status? Has the maintainer given it up?
Thanks!
Is it possible to add new Category Type (Essential, Flexible, Income, Transfer)?
As I see it will recompile assets each time we run docker image, would it be better to create image with precompiled assets?
Probably can separate dockerfile for development and for production (which being push to hub.docker.com)
I'm new to Ruby and I'm trying to run your app, so could you please add instructions on how to do it?
Thanks
Are there any instructions on how to set this up with Docker?
I only see a blank page when the rails server is execute in the production environment. Development and test environments work fine. Here is the full log
I, [2017-09-08T14:26:28.026554 #5056] INFO -- : Started GET "/" for 216.13.88.82 at 2016-09-08 14:26:28 -0400
I, [2016-09-08T14:26:28.043425 #5056] INFO -- : Processing by ApplicationController#boot as HTML
I, [2016-09-08T14:26:28.046395 #5056] INFO -- : Rendered application/boot.html.erb within layouts/application (0.3ms)
I, [2016-09-08T14:26:28.052548 #5056] INFO -- : Completed 200 OK in 9ms (Views: 8.8ms | ActiveRecord: 0.0ms)
I, [2016-09-08T14:26:28.135597 #5056] INFO -- : Started GET "/stylesheets/application.css" for 216.13.88.82 at 2016-09-08 14:26:28 -0400
I, [2016-09-08T14:26:28.136479 #5056] INFO -- : Processing by ApplicationController#boot as CSS
I, [2016-09-08T14:26:28.136514 #5056] INFO -- : Parameters: {"page"=>"stylesheets/application"}
I, [2016-09-08T14:26:28.137246 #5056] INFO -- : Completed 500 Internal Server Error in 1ms (ActiveRecord: 0.0ms)
F, [2016-09-08T14:26:28.138513 #5056] FATAL -- :
ActionView::MissingTemplate (Missing template application/boot with {:locale=>[:en], :formats=>[:css], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee]}. Searched in:
* "/home/sadman/dotledger/app/views"
* "/var/lib/gems/2.0.0/gems/kaminari-0.17.0/app/views"
):
actionview (4.2.7.1) lib/action_view/path_set.rb:46:in `find'
actionview (4.2.7.1) lib/action_view/lookup_context.rb:121:in `find'
actionview (4.2.7.1) lib/action_view/renderer/abstract_renderer.rb:18:in `find_template'
actionview (4.2.7.1) lib/action_view/renderer/template_renderer.rb:40:in `determine_template'
actionview (4.2.7.1) lib/action_view/renderer/template_renderer.rb:8:in `render'
actionview (4.2.7.1) lib/action_view/renderer/renderer.rb:46:in `render_template'
actionview (4.2.7.1) lib/action_view/renderer/renderer.rb:27:in `render'
actionview (4.2.7.1) lib/action_view/rendering.rb:100:in `_render_template'
actionpack (4.2.7.1) lib/action_controller/metal/streaming.rb:217:in `_render_template'
actionview (4.2.7.1) lib/action_view/rendering.rb:83:in `render_to_body'
actionpack (4.2.7.1) lib/action_controller/metal/rendering.rb:32:in `render_to_body'
actionpack (4.2.7.1) lib/action_controller/metal/renderers.rb:37:in `render_to_body'
actionpack (4.2.7.1) lib/abstract_controller/rendering.rb:25:in `render'
actionpack (4.2.7.1) lib/action_controller/metal/rendering.rb:16:in `render'
actionpack (4.2.7.1) lib/action_controller/metal/instrumentation.rb:44:in `block (2 levels) in render'
activesupport (4.2.7.1) lib/active_support/core_ext/benchmark.rb:12:in `block in ms'
/usr/lib/ruby/2.0.0/benchmark.rb:296:in `realtime'
activesupport (4.2.7.1) lib/active_support/core_ext/benchmark.rb:12:in `ms'
actionpack (4.2.7.1) lib/action_controller/metal/instrumentation.rb:44:in `block in render'
actionpack (4.2.7.1) lib/action_controller/metal/instrumentation.rb:87:in `cleanup_view_runtime'
activerecord (4.2.7.1) lib/active_record/railties/controller_runtime.rb:25:in `cleanup_view_runtime'
actionpack (4.2.7.1) lib/action_controller/metal/instrumentation.rb:43:in `render'
actionpack (4.2.7.1) lib/action_controller/metal/implicit_render.rb:10:in `default_render'
actionpack (4.2.7.1) lib/action_controller/metal/implicit_render.rb:5:in `send_action'
actionpack (4.2.7.1) lib/abstract_controller/base.rb:198:in `process_action'
actionpack (4.2.7.1) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.2.7.1) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
activesupport (4.2.7.1) lib/active_support/callbacks.rb:117:in `call'
activesupport (4.2.7.1) lib/active_support/callbacks.rb:117:in `call'
activesupport (4.2.7.1) lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
activesupport (4.2.7.1) lib/active_support/callbacks.rb:505:in `call'
activesupport (4.2.7.1) lib/active_support/callbacks.rb:505:in `call'
activesupport (4.2.7.1) lib/active_support/callbacks.rb:92:in `__run_callbacks__'
activesupport (4.2.7.1) lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks'
activesupport (4.2.7.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.7.1) lib/abstract_controller/callbacks.rb:19:in `process_action'
actionpack (4.2.7.1) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.2.7.1) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
activesupport (4.2.7.1) lib/active_support/notifications.rb:164:in `block in instrument'
activesupport (4.2.7.1) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.2.7.1) lib/active_support/notifications.rb:164:in `instrument'
actionpack (4.2.7.1) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.2.7.1) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
activerecord (4.2.7.1) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.2.7.1) lib/abstract_controller/base.rb:137:in `process'
actionview (4.2.7.1) lib/action_view/rendering.rb:30:in `process'
actionpack (4.2.7.1) lib/action_controller/metal.rb:196:in `dispatch'
actionpack (4.2.7.1) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.2.7.1) lib/action_controller/metal.rb:237:in `block in action'
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:74:in `call'
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:74:in `dispatch'
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:43:in `serve'
actionpack (4.2.7.1) lib/action_dispatch/journey/router.rb:43:in `block in serve'
actionpack (4.2.7.1) lib/action_dispatch/journey/router.rb:30:in `each'
actionpack (4.2.7.1) lib/action_dispatch/journey/router.rb:30:in `serve'
actionpack (4.2.7.1) lib/action_dispatch/routing/route_set.rb:817:in `call'
rack (1.6.4) lib/rack/etag.rb:24:in `call'
rack (1.6.4) lib/rack/conditionalget.rb:25:in `call'
rack (1.6.4) lib/rack/head.rb:13:in `call'
actionpack (4.2.7.1) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.2.7.1) lib/action_dispatch/middleware/flash.rb:260:in `call'
rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.2.7.1) lib/action_dispatch/middleware/cookies.rb:560:in `call'
activerecord (4.2.7.1) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.2.7.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call'
actionpack (4.2.7.1) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.2.7.1) lib/active_support/callbacks.rb:88:in `__run_callbacks__'
activesupport (4.2.7.1) lib/active_support/callbacks.rb:778:in `_run_call_callbacks'
activesupport (4.2.7.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.7.1) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.2.7.1) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
actionpack (4.2.7.1) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.2.7.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.2.7.1) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.2.7.1) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.2.7.1) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.2.7.1) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.2.7.1) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
rack (1.6.4) lib/rack/runtime.rb:18:in `call'
activesupport (4.2.7.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
railties (4.2.7.1) lib/rails/engine.rb:518:in `call'
railties (4.2.7.1) lib/rails/application.rb:165:in `call'
rack (1.6.4) lib/rack/lock.rb:17:in `call'
rack (1.6.4) lib/rack/content_length.rb:15:in `call'
rack (1.6.4) lib/rack/handler/webrick.rb:88:in `service'
/usr/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
/usr/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
/usr/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'
I, [2016-09-08T14:26:28.164598 #5056] INFO -- : Started GET "/javascripts/application.js" for 216.13.88.82 at 2016-09-08 14:26:28 -0400
I, [2016-09-08T14:26:28.165231 #5056] INFO -- : Processing by ApplicationController#boot as JS
I, [2016-09-08T14:26:28.165268 #5056] INFO -- : Parameters: {"page"=>"javascripts/application"}
I, [2016-09-08T14:26:28.166598 #5056] INFO -- : Rendered application/boot.html.erb (0.3ms)
I, [2016-09-08T14:26:28.166784 #5056] INFO -- : Completed 200 OK in 1ms (Views: 1.3ms | ActiveRecord: 0.0ms)
I'd love to be able to auto-stop a repeat expense after a certain date and/or N iterations.
For example, a payment I need to make only 8 times, once per month.
On Debian Stretch, Debian repositories used where possible.
Attempting to add a transaction doesn't seem to work right. Some transactions appear in the view, others do not. For example:
Name: my check
Type: receive
Amount: 2321
Category: Salary & Wages
Date: 2017-07-14
No error message, no new transaction in the web page. However, the database has committed the rows. Since I tried it a couple of different ways, there are a couple of different versions of the same transaction in the database. For example, only one of the rent transactions is rendered in the page, and no income is rendered.
below is "select * from payments"
id name category_id amount type schedule created_at updated_at
1 test rent schedule 16 900 Spend ---/n:start_time: 2017-07-01 00:00:00.000000000 -07:00/n:rrules:/n- :validations: {}/n :rule_type: IceCube::MonthlyRule/n :interval: 999/n:rtimes: []/n:extimes: []/n 2017-07-20 03:57:23.122123 2017-07-20 03:57:23.122123
2 test rent schedule 16 900 Spend ---/n:start_time: 2017-08-01 00:00:00.000000000 -07:00/n:rrules:/n- :validations: {}/n :rule_type: IceCube::MonthlyRule/n :interval: 44/n:rtimes: []/n:extimes: []/n 2017-07-20 03:58:57.785774 2017-07-20 03:58:57.785774
3 test expense schedule 27 833.33 Spend ---/n:start_time: 2017-07-18 00:00:00.000000000 -07:00/n:rrules:/n- :validations: {}/n :rule_type: IceCube::MonthlyRule/n :interval: 44/n:rtimes: []/n:extimes: []/n 2017-07-20 04:02:45.019783 2017-07-20 04:02:45.019783
4 test expense schedule 27 833.33 Spend ---/n:start_time: 2017-07-18 00:00:00.000000000 -07:00/n:rrules:/n- :validations: {}/n :rule_type: IceCube::MonthlyRule/n :interval: 44/n:rtimes: []/n:extimes: []/n 2017-07-20 04:03:42.890531 2017-07-20 04:03:42.890531
5 test expense schedule 27 788.88 Spend ---/n:start_time: 2017-07-18 00:00:00.000000000 -07:00/n:rrules:/n- :validations: {}/n :rule_type: IceCube::MonthlyRule/n :interval: 11/n:rtimes: []/n:extimes: []/n 2017-07-20 04:04:15.645165 2017-07-20 04:04:15.645165
6 test expense schedule 27 633 Spend ---/n:start_time: 2017-07-17 00:00:00.000000000 -07:00/n:rrules:/n- :validations: {}/n :rule_type: IceCube::MonthlyRule/n :interval: 44/n:rtimes: []/n:extimes: []/n 2017-07-20 04:27:28.753658 2017-07-20 04:27:28.753658
7 test expense schedule 27 633 Spend ---/n:start_time: 2017-07-19 21:28:33.000000000 -07:00/n:rrules:/n- :validations: {}/n :rule_type: IceCube::MonthlyRule/n :interval: 44/n:rtimes: []/n:extimes: []/n 2017-07-20 04:28:33.901146 2017-07-20 04:28:33.901146
8 test income schedule 23 2,321 Receive ---/n:start_time: 2017-07-14 00:00:00.000000000 -07:00/n:rrules:/n- :validations: {}/n :rule_type: IceCube::MonthlyRule/n :interval: 99/n:rtimes: []/n:extimes: []/n 2017-07-20 04:32:15.774019 2017-07-20 04:32:15.774019
9 test income schedule 23 2,321 Receive ---/n:start_time: 2017-07-14 00:00:00.000000000 -07:00/n:rrules:/n- :validations: {}/n :rule_type: IceCube::MonthlyRule/n :interval: 44/n:rtimes: []/n:extimes: []/n 2017-07-20 04:33:35.07448 2017-07-20 04:33:35.07448
10 test income schedule 23 2,321 Receive ---/n:start_time: 2017-07-14 00:00:00.000000000 -07:00/n:rrules:/n- :validations: {}/n :rule_type: IceCube::MonthlyRule/n :interval: 4/n:rtimes: []/n:extimes: []/n 2017-07-20 04:35:09.481792 2017-07-20 04:35:09.481792
11 test income schedule 23 2,312 Receive ---/n:start_time: 2017-07-14 00:00:00.000000000 -07:00/n:rrules: []/n:rtimes: []/n:extimes: []/n 2017-07-20 05:11:27.239339 2017-07-20 05:11:27.239339
12 test income schedule 23 2,320 Receive ---/n:start_time: 2017-07-14 00:00:00.000000000 -07:00/n:rrules: []/n:rtimes: []/n:extimes: []/n 2017-07-20 05:15:04.994602 2017-07-20 05:15:04.994602
Wishlist:
The payment gui needs a drop-down box that populates with the names of the accounts to associate where expenses are paid. Adding a column to expense table would not be expensive.
Totally my opinion, the "category" column needs to be the text value, not the ID from the category table. It would make that table very easy to read.
Having a little trouble uploading statements
TypeError: statement is null form.self.js:58:16
TypeError: this.ui.balanceGraph.bind is not a function balance_graph.self.js:77:0
I understand you are not actively developing this project but it would be awesome if you could fix this. Also what file formats are supported?
Hello, I have been trying to get this installed for the past few hours and no matter what I do I receive the following error for each of the databases when I run $bundle exec rake db:setup
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"dot_ledger_test", "pool"=>5, "username"=>"dot_ledger", "password"=>">redacted<"}
-- enable_extension("plpgsql")
rake aborted!
PG::ConnectionBad: FATAL: Peer authentication failed for user "dot_ledger"
I have ensured that the password that I have inserted into config/database.yml is the same password for the postgres user account as well. The entire dot_ledger directory is owned by postgres, which is the user that is calling the above command.
I am starting in docker, and I'm getting this error:
LoadError: Could not load 'active_record/connection_adapters/dpostgres_adapter'. Make sure that the adapter in config/database.yml is valid. If you use an adapter other than 'mysql', 'mysql2', 'postgresql' or 'sqlite3' add the necessary adapter gem to the Gemfile.
I am using Docker to run both postgres and dotledger
Postgres
docker create \
--name=dot_ledger_db \
--restart=always \
-e POSTGRES_PASSWORD=dot_ledger \
-e POSTGRES_USER=dot_ledger \
-e POSTGRES_DB=dot_ledger \
postgres:9.6
Dotledger
docker create \
--name=dot_ledger \
--restart=always \
--link dot_ledger_db:dot_ledger_db \
-e DATABASE_URL="postgres://dot_ledger:dot_ledger@dot_ledger_db/dot_ledger?sslmode=disable" \
-e RAILS_SERVE_STATIC_FILES=true \
-e RAILS_LOG_TO_STDOUT=true \
-p 3000:3000 \
dotledger/dotledger
During startup I get this message
rake aborted!
URI::InvalidURIError: the scheme postgres does not accept registry part: dot_ledger:dot_ledger@dot_ledger_db (or bad hostname?)
I am able to stand up an alpine container, install postgresql-client, and connect with the db url in the dotledger docker create, using this command: docker run -it --link dot_ledger_db:dot_ledger_db alpine:latest /bin/sh
Any help would be appreciated.
Hello,
I am currently testing your application on my server, I can create payments but none appear as transactions that i can sort out in the "my accounts" tab, could you help me please ?
I can't seem to be able to do that on the demo server either.
Hi,
Really good software. However, whether it supports the multi currency, for example, can I record expense and revenue in AUD / INR?
If not, I can contribute by adding docker file and adding multi currency support ?
I'm running CentOS7 from the offical centos:7
docker image, and am trying to install dotledger.
CentOS7 has the following ruby version:
# ruby --version
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]
# bundle --version
Bundler version 1.7.8
When running bundle install
, I get the following error:
Gem::InstallError: active_model_serializers requires Ruby version >= 2.1.
An error occurred while installing active_model_serializers (0.10.3), and Bundler cannot continue.
Make sure that `gem install active_model_serializers -v '0.10.3'` succeeds before bundling.
After installing ruby 2.1 (through rvm
), the above commands succeeds. Ruby version:
# ruby --version
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
# bundler --version
Bundler version 1.13.7
I have no experience with ruby gem install, and cannot contribute a solution except the ruby upgrade, but I think that we have two possibilities here:
active_model_serializers
version compatible to ruby 2.0Ruby (>= 2.0)
)I'd send a pull request for the second solution if you want.
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.