All Projects → ivallesp → YNAB-reporter

ivallesp / YNAB-reporter

Licence: MIT license
Reporting system for You Need A Budget

Programming Languages

python
139335 projects - #7 most used programming language
TeX
3793 projects
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to YNAB-reporter

node-w3c-validator
Wrapper for The Nu Html Checker (v.Nu)
Stars: ✭ 28 (+7.69%)
Mutual labels:  reporting
avanza
A Python library for the unofficial Avanza API
Stars: ✭ 54 (+107.69%)
Mutual labels:  personal-finance
FastReport.Documentation
FastReport Open Source Documentation
Stars: ✭ 81 (+211.54%)
Mutual labels:  reporting
aterm
It records your terminal, then lets you upload to ASHIRT
Stars: ✭ 17 (-34.62%)
Mutual labels:  reporting
YDNYNAB
A native YNAB4 replacement for macOS. You don't need YNAB.
Stars: ✭ 25 (-3.85%)
Mutual labels:  ynab
testng-plugin-plugin
TestNG Reports Plugin for Jenkins
Stars: ✭ 56 (+115.38%)
Mutual labels:  reporting
site
RailroadPM.org 2.x Site
Stars: ✭ 18 (-30.77%)
Mutual labels:  reporting
monitor-ninja
Ninja is Now Just Awesome - a modern web GUI for Naemon
Stars: ✭ 27 (+3.85%)
Mutual labels:  reporting
Samples-JS-PHP
JavaScript and PHP samples for Stimulsoft Reports.PHP reporting tool.
Stars: ✭ 17 (-34.62%)
Mutual labels:  reporting
plaid2qif
Download financial transactions from Plaid as QIF files.
Stars: ✭ 70 (+169.23%)
Mutual labels:  personal-finance
finance
💰 Free open-source personal finance tracking web application.
Stars: ✭ 156 (+500%)
Mutual labels:  personal-finance
RDLCPrinter
Wpf ReportViewer control and RDLCPrinter work with SQL Server LocalReport. You can export your report to PDF, Word or PNG Image...
Stars: ✭ 26 (+0%)
Mutual labels:  reporting
jira-sprint-reporting
Reporting in a Google Sheet on a Sprint level using JIRA REST API
Stars: ✭ 25 (-3.85%)
Mutual labels:  reporting
E-commerceRetailerFYP
Android E-commerce Platform. Allow retailer to post product, manage order, chat and view report
Stars: ✭ 31 (+19.23%)
Mutual labels:  reporting
maven-confluence-plugin
Maven plugin that generates project's documentation directly to confluence allowing to keep in-sync project evolution with its documentation
Stars: ✭ 56 (+115.38%)
Mutual labels:  reporting
AppDynamics.DEXTER
Turn your APM data store into a Data Warehouse with advanced reporting, including entities, configuration, metrics, flowmaps, events, snapshots and call graph flame graphs
Stars: ✭ 79 (+203.85%)
Mutual labels:  reporting
PRISMA2020
Produce PRISMA-2020 compliant flow diagrams
Stars: ✭ 58 (+123.08%)
Mutual labels:  reporting
projektor
View and share your test reports quickly and easily with Projektor
Stars: ✭ 36 (+38.46%)
Mutual labels:  reporting
data-11ty
An open source 11ty theme designed for reporting & data-visualization
Stars: ✭ 19 (-26.92%)
Mutual labels:  reporting
slack-workflow-status
Github action for sending workflow run results to Slack
Stars: ✭ 63 (+142.31%)
Mutual labels:  reporting

YNAB reporter: a simple YNAB monthly reporting system

This repository implements a small system for generating reports summarising You Need A Budged monthly movements and historical positions. The data is obtained using the YNAB API and the reports are generated using LaTeX.

Changelog

July 4th, 2021

  • Feat: add example Dockerfile
  • Feat: add YoY column
  • Several minor bugfixes

December 3rd, 2020

  • Feat: add multi-budget functionality, with possibility of different currencies
  • Feat: add possibility to exclude categories of the calculations

Getting started

Follow the next steps to have the project running in your system:

  1. Install pyenv and poetry in your system following the linked official guides.
  2. Open a terminal, clone this repository and cd to the cloned folder.
  3. Run pyenv install $(cat .python-version) in your terminal for installing the required python. version.
  4. Configure poetry with poetry config virtualenvs.in-project true.
  5. Create the virtual environment with poetry install.
  6. Make sure you have LaTeX installed in your system (or install it with sudo apt-get install texlive-full) with the needed dependencies.
  7. Create the config/ynab.toml file following the example in the same folder and fill-in your budget name and API key.
  8. Do the same with the config/email.toml file. The example contained in this repository has the settings for gmail pre-filled in.
  9. Activate the environment with source .venv/bin/activate.
  10. Run python main.py -y <report-year> -m <report-month> to generate a report for the specified date.

It might be useful to set up a crontab to run the system every month. In my case, I run it the 5th day of every month, for calculating the report corresponding with the previous month. The crontab entry is shown below as an example.

0 9 5 * *     cd ~/projects/ynab-reporter && .venv/bin/python main.py -m `date +\%-m --date="1 month ago"` -y `date +\%Y --date="1 month ago"` -e [email protected] [email protected]

Example

The following image shows how the report looks like. Notice that all the data shown in it has been randomly generated.

Contribution

Pull requests and issues will be tackled upon availability.

License

This repository is licensed under MIT license. More info in the LICENSE file. Copyright (c) 2020 Iván Vallés Pérez

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].