All Projects → ShoshinNikita → budget-manager

ShoshinNikita / budget-manager

Licence: MIT license
Easy-to-use, lightweight and self-hosted solution to track your finances

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to budget-manager

defiprime
All things #DeFi - trustless and transparent financial products built on top of the blockchain.
Stars: ✭ 117 (+485%)
Mutual labels:  finance, finances, finance-management
bgfinancas
Personal Finance Manager / Gerenciador de Finanças Pessoais (JavaFX)
Stars: ✭ 40 (+100%)
Mutual labels:  finances, finance-management
cash
Home Bookkeeping on ExtJS 4, PHP 5, SQLite 3
Stars: ✭ 37 (+85%)
Mutual labels:  finance, budget
balance
A laravel finance application for everyday use
Stars: ✭ 23 (+15%)
Mutual labels:  finance, finance-management
investbook
Оценка эффективности инвестиций с учетом комиссий, налогов (удержанных и ожидающихся), дивидендов и купонов.
Stars: ✭ 83 (+315%)
Mutual labels:  finance, finance-management
budget-watch
Application for personal budget management
Stars: ✭ 70 (+250%)
Mutual labels:  finance, budget
finatr
helping you analyze your future cash flows
Stars: ✭ 18 (-10%)
Mutual labels:  finance, finance-management
dimeshift-desktop
DimeShift desktop application
Stars: ✭ 14 (-30%)
Mutual labels:  finance, budget
IEX CPP API
Unofficial C++ Lib for the IEXtrading API
Stars: ✭ 34 (+70%)
Mutual labels:  finance, finances
Akaunting
Free and Online Accounting Software
Stars: ✭ 4,599 (+22895%)
Mutual labels:  finance, budget
good-reads
List of inspiring articles, blogs, tutorials and books. Tech stuff.
Stars: ✭ 14 (-30%)
Mutual labels:  finance
cira
Cira algorithmic trading made easy. A Façade library for simpler interaction with alpaca-trade-API from Alpaca Markets.
Stars: ✭ 21 (+5%)
Mutual labels:  finance
Block Codes
This depository uses SEC EDGAR data in Schedule 13D and Schedule 13G data to find all positions above 5% in all US stocks between 1994 and 2018.
Stars: ✭ 55 (+175%)
Mutual labels:  finance
Multifractal-Model-of-Asset-Returns-MMAR-for-Thesis
I wrote a Master's in Finance thesis on Monte Carlo simulation of the Multifractal Model of Asset Returns. This is a model developed in the late 1990's by Benoît Mandelbrot and his two students, Laurent Calvet and Adlai Fisher. I had never programmed before and this was my first big coding project — so sorry if the code sucks! I did what I could :)
Stars: ✭ 29 (+45%)
Mutual labels:  finance
TheBankster
A personal finance tool in PHP
Stars: ✭ 15 (-25%)
Mutual labels:  finance
salaryconverter
Equivalent salary converter using PPP
Stars: ✭ 42 (+110%)
Mutual labels:  finance
edgar-crawler
Download financial reports from SEC's EDGAR. Extract clean textual data from specific item sections and bootstrap your financial NLP research. Software from the research paper published in ECONLP 2021.
Stars: ✭ 71 (+255%)
Mutual labels:  finance
urlpack
Pure JavaScript toolkit for data URLs (MessagePack, Base58 and Base62)
Stars: ✭ 51 (+155%)
Mutual labels:  pure-javascript
rRofex
R library to connect to Matba Rofex's Trading API. Functionality includes accessing account data and current holdings, retrieving investment quotes, placing and canceling orders, and getting reference data for instruments.
Stars: ✭ 21 (+5%)
Mutual labels:  finance
market risk gan tensorflow
Using Bidirectional Generative Adversarial Networks to estimate Value-at-Risk for Market Risk Management using TensorFlow.
Stars: ✭ 63 (+215%)
Mutual labels:  finance

Budget Manager Last version GitHub Workflow Status Go Report Card

Budger Manager is an easy-to-use, lightweight and self-hosted solution to track your finances

Month Page

It was inspired by Poor-Man's Budgeting Spreadsheet and You have less money than you think (rus). These projects have a fatal flaw: you can't add multiple spends in a single day. Budger Manager resolves that issue

Features:

  • Easy-to-use - simple and intuitive UI

  • Lightweight - backend is written in Go, HTML is prepared with Go templates. Vanilla JavaScript is used just to make frontend interactive. So, JS code is very primitive and lightweight: it won't devour all your CPU and RAM (even with Chrome 😉)

  • Self-hosted - you don't need to trust any proprietary software to store your financial information

You can find more screenshots here


Install

You need Docker and docker-compose (optional)

  1. Create docker-compose.yml with the following content (you can find more settings in Configuration section):

    version: "2.4"
    
    services:
      budget-manager:
        image: ghcr.io/shoshinnikita/budget-manager:latest
        container_name: budget-manager
        environment:
          DB_TYPE: postgres
          DB_PG_HOST: postgres
          DB_PG_PORT: 5432
          DB_PG_USER: postgres
          DB_PG_PASSWORD: <db password>
          DB_PG_DATABASE: postgres
          SERVER_AUTH_BASIC_CREDS: <your credentials> # more info in 'Configuration' section
        ports:
          - "8080:8080"
    
      postgres:
        image: postgres:12-alpine
        container_name: budget-manager_postgres
        environment:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: <db password>
          POSTGRES_DB: postgres
        volumes:
          # Store data in ./var/pg_data directory
          - type: bind
            source: ./var/pg_data
            target: /var/lib/postgresql/data
  2. Run docker-compose up -d

  3. Go to http://localhost:8080 (change the port if needed)

  4. Profit!

Configuration

Env Var Default value Description
LOGGER_MODE prod Logging format. dev or prod
LOGGER_LEVEL info Logging level. debug, info, warn, error, or fatal
DB_TYPE postgres Database type. postgres or sqlite
DB_PG_HOST localhost PostgreSQL host
DB_PG_PORT 5432 PostgreSQL port
DB_PG_USER postgres PostgreSQL username
DB_PG_PASSWORD PostgreSQL password
DB_PG_DATABASE postgres PostgreSQL database
DB_SQLITE_PATH ./var/budget-manager.db Path to the SQLite database
SERVER_PORT 8080
SERVER_USE_EMBED true Use the embedded templates and static files or read them from disk
SERVER_AUTH_DISABLE false Disable authentication
SERVER_AUTH_BASIC_CREDS List of comma separated login:password pairs. Passwords must be hashed using BCrypt (htpasswd -nB <user>)
SERVER_ENABLE_PROFILING false Enable pprof handlers. You can find handler urls here

Development

Commands

Run

# Run the app with installed Go and PostgreSQL in a Docker container
make

# Or run both the app and PostgreSQL in a Docker containers
make docker

Test

make test

More

You can find more commands in Makefile

Tools

Linter

golangci-lint can be used to lint the code. Just run make lint. Config can be found here

API documentation

swag is used to generate API documentation. You can find more information about API endpoints in section API

Endpoints

Pages

You can find screenshots of pages here

  • /months - Last 12 months
  • /months/month?year={year}&month={month} - Month info
  • /search/spends - Search for Spends

API

You can find Swagger 2.0 Documentation here. Use Swagger Editor to view it

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].