Skip to content

A personal financial information aggregator and planning tool

License

Notifications You must be signed in to change notification settings

WattsUp/nummus

Repository files navigation

nummus

Unit Test Static Analysis Coverage

A personal financial information aggregator and planning tool. Collects and categorizes transactions, manages budgets, tracks investments, calculates net worth, and predicts future performance.


Environment

List of dependencies for package to run.

Required

  • nummus python modules
    • sqlalchemy
    • AutoDict
    • gevent
    • colorama
    • rapidfuzz
    • cryptography
    • flask-assets
    • pytailwindcss
    • jsmin
    • flask
    • typing-extensions
    • pdfplumber
    • yfinance
    • tqdm
    • argcomplete

Optional

  • Encryption extension to encrypt database file. Does not encrypt SSL or importers folders
    • sqlcipher3-binary
    • Cipher
    • pycryptodome

Installation / Build / Deployment

Install module

> python -m pip install .
> # For autocomplete, activate completion hook
> activate-global-python-argcomplete

Install module with encryption

> python -m pip install .[encrypt]

For development, install as a link to repository such that code changes are used. It is recommended to install pre-commit hooks

> python -m pip install -e .[dev]
> pre-commit install

Usage

Run web command to launch a website to interact with the module.

> nummus web

Running Tests

Does not test front-end at all and minimally tests web controllers. This is out of scope for the foreseeable future.

Unit tests

> python -m tests

Coverage report

> python -m coverage run && python -m coverage report

Development

Code development of this project adheres to Google Python Guide

Linters

> ruff .
> djlint .
> codespell .

Formatters

> isort .
> black .
> djlint . --reformat
> clang-format $EACH_JS_FILE

Tools

  • formatters.sh will run every formatter
  • linters.sh will run every linter
  • make_test_portfolio.py will create a portfolio with pseudorandom data
  • profile_web_call.py will send a request to an endpoint with vizviewer
  • run_tailwindcss.py will run tailwindcss with proper arguments, add -w to watch and rerun on save

Configuration

Most configuration is made per portfolio via the web interface

There is a global config file for common user options, found at ~/.nummus/.config.ini. Defaults are:

[nummus]
secure-icon = ⚿ # Icon to print on secure CLI prompts such as unlocking password

Versioning

Versioning of this projects adheres to Semantic Versioning and is implemented using git tags.

About

A personal financial information aggregator and planning tool

Resources

License

Stars

Watchers

Forks

Packages

No packages published