A very easy-to-use income and expense ledger.
Ruby HTML CSS Shell JavaScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ansible
app
bin
config
db
docs/images
lib
log
public
spec
test
vendor/assets
.env.sample
.gitignore
.rspec
.ruby-version
Gemfile
Gemfile.lock
README.md
README.rdoc
Rakefile
Vagrantfile
config.ru

README.md

Pouchnote

Pouchnote is a really small accounting system; an income and expense ledger. It's a very simple way to keep track of your incomes and expenses. Pouchnote is good for quickly jotting down income and expense entries without thinking excel sheet cell computations and following formats.

Hashtags automatically categorizes expense and income entries.

Simple reports for date range summaries and tag breakdowns.

Invite other people into your own Pouchnote. Your wife/husband, officemate or anyone else.

Getting Started

Development Setup (vagrant)

Vagrant and Ansible is required to set up a local development environment

  1. Copy config/vagrant.yml.sample to config/vagrant.yml.
  2. In config/vagrant.yml, update box_url and ip params, as needed.
  3. Run vagrant up. This will ask for your host's password to be able to mount a shared directory.
  4. Run vagrant ssh and add your host's public key to ~/.ssh/authorized_keys.
  5. Exit the ssh session and run ansible-playbook ansible/development.yml -i ansible/hosts.

Prepare the development database

vagrant ssh
cd ~/pouchnote
bundle install --without production
cp config/database.yml.sample config/database.yml
rake db:setup

Setup credentials

cp config/secrets.yml.sample config/secrets.yml

Generate secret_token for the rails app, and replace it with the secret_key_base token

rake secret

Running Tests

Pouchnote uses RSpec, if you want to add more tests just send over a pull request

rspec spec

Deployment

  • Vagrant and Ansible is required to deploy Pouchnote.
  • Prepare a clean server
  1. Add the admin user of your target server in the username variable at the group_vars/all file
  2. Edit the app_hostname under the production.yml file to the location of the your machine. (i.e. 192.168.1.1, http://pouchnote.yourserver.com, etc.)
  3. Add your host's public key to ~/.ssh/authorized_keys.
  4. Run ansible-playbook ansible/production.yml -i ansible/hosts -vvvv.

Setup credentials

cp config/database.yml.sample config/database.yml
cp config/secrets.yml.sample config/secrets.yml

Setup your application credentials in the secrets.yml file and database.yml file if any

Deploy Pouchnote to the Production Server

Require Prepare your Production Server

  1. Copy deploy.rb.sample into deploy.rb and fill in your own repo links or use mine.
  2. Copy production.rb.sample into production.rb and fill in your server details
  3. Run bundle exec cap production deploy:copy_linked_files --trace
  4. Run bundle exec cap production deploy:starting --trace
  5. Run bundle exec cap production deploy --trace

Initiate first user

  1. Set up the first user through the config/secrets.yml file you created earlier
  2. Run bundle exec cap production deploy:seed --trace

License

Pouchnote is provided under the MIT License