ynabsync

Version, currently master branch1 version
  • master branchlatestAug 12, 2018

github.com/theodorton/ynabsync

No description declared in shard.yml.

0 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  ynabsync:
    github: theodorton/ynabsync
    branch: master

master is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
0.25.1
License
MIT
Author
Theodor Tonum
Targets
  • scheduler from src/ynabsync/scheduler.cr
  • sidekiq-ui from src/sidekiq-ui.cr
  • sidekiq-worker from src/sidekiq-worker.cr

Dependencies

Runtime Dependencies

  • kemal*github: kemalcr/kemal, branch: master
  • sidekiq*github: mperham/sidekiq.cr, branch: master
  • kemal-basic-auth*github: kemalcr/kemal-basic-auth, branch: master

README

ynabsync

Tool to sync SBanken accounts with YNAB.

The application consists of 4 parts:

  1. Scheduler - enqueues sidekiq jobs at a specified interval
  2. Worker - consumes sidekiq jobs and performs the heavy lifting
  3. Web UI - to debug the jobs
  4. Redis

Installation

You need direnv, docker and docker-compose to run the application.

Copy .envrc.example to .envrc and setup the environment variables:

Environment variableDescription
SBANKEN_APP_IDThe client ID from SBanken Developer Portal
SBANKEN_SECRETThe secret key/password from SBanken Developer Portal (please note that this key must be rotated every 3 months)
CUSTOMER_IDYour personal number (personnummer) for identification with the SBanken API
ACCOUNT_IDThe account ID from SBanken API for the account you'd like to monitor.
YNAB_ACCESS_TOKENPersonal YNAB access token (generated here)
YNAB_BUDGET_IDThe budget ID from YNAB
YNAB_ACCOUNT_IDThe account ID from YNAB
KEMAL_PASSWORDPassword to access the web ui

Usage

  1. Run docker-compose up
  2. Open http://localhost:3000/ to see the queue status

Development

TODO: Write development instructions here

Contributing

  1. Fork it (https://github.com/theodorton/ynabsync/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors