Skip to content

obalunenko/georgia-tax-calculator

Repository files navigation

GitHub go.mod Go version GoDoc Latest release artifacts Go [lint, test] Lint & Test & Build & Release Go Report Card codecov Quality Gate Status coverbadger-tag-do-not-edit

georgia-tax-calculator

Calculates income taxes in Georgia.

  • Fetches official rates from the nbg.gov.ge for the date of income.
  • Converts income to GEL.
  • Calculate taxes amount according to specified Taxes Category.
  • Includes caching to reduce HTTP requests and improve performance.

Features

  • Tax Calculation: Calculate Georgian income taxes based on official rates
  • Currency Conversion: Convert between currencies using NBG official rates
  • Smart Caching: Automatic caching of currency rates to minimize API calls
  • Interactive CLI: User-friendly command-line interface
  • Multi-tax Categories: Support for different Georgian tax categories

Usage

  1. Download binary from Latest release artifacts

  2. Run ge-tax-calc run and follow instructions

All available flags, commands and usage:

NAME:
   ge-tax-calc - A command line tool helper for preparing tax declaration in Georgia 

USAGE:
   ge-tax-calc [global options] command [command options] [arguments...]

DESCRIPTION:
   Helper tool for preparing tax declarations in Georgia.
   It get income amount in received currency, converts it to GEL according to
   official rates on date of income and calculates tax amount
   according to selected taxes category.

AUTHOR:
   Oleg Balunenko <oleg.balunenko@gmail.com>

COMMANDS:
   run      Runs taxes calculations
   convert  Runs currency converter
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help (default: false)
   --version, -v  print the version (default: false)

Demo

Taxes calculations

asciicast

Cuurency conversion

asciicast

For Developers

NBG API Client with Caching

The application includes a caching layer for the National Bank of Georgia API client to improve performance:

// Basic usage with caching (1-hour TTL by default)
client := nbggovge.NewCached()

// Custom TTL
client := nbggovge.NewCachedWithTTL(time.Minute * 30)

// No expiration (cache until restart)
client := nbggovge.NewCachedWithTTL(0)

See pkg/nbggovge/README_CACHE.md for detailed documentation and examples.

About

Calculates income taxes in Georgia

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •