/cryptgo

A terminal application to watch crypto prices!

Primary LanguageGoApache License 2.0Apache-2.0

cryptgo

Go Build Go License Check Go Report Card Go Reference Docker Image Version (latest semver) Mentioned in Awesome Go

Latest Stable Version: GitHub tag (latest SemVer)

Crytpgo is a TUI based application written purely in Go to monitor and observe cryptocurrency prices in real time!

logo

Installation

Using Go

go get -u github.com/Gituser143/cryptgo

Using Docker

Running Image

Set VERSION to a specific version for stable builds. Omitting VERSION uses the latest stable version or setting main as version provides the latest (in development) version.

# Pull Image
make docker-pull

# Pull specific version of image
VERSION=v1.1.1 make docker-pull

# Run Image
make docker-run

# Run specific version of image
VERSION=v1.1.1 make docker-run

# Run image with portfolio command
ARG=portfolio make docker-run

# Run image with help command
ARG=help make docker-run

Optionally, an alias can be created for ease of use:

alias cryptgo='docker run -u $(id -u):$(id -g) -v "$HOME:/home/appuser/" --rm -it bhargavsnv/cryptgo'

And run using:

cryptgo [flags]
# or
cryptgo [command]

Building Image locally

# Clone the repository
git clone https://github.com/Gituser143/cryptgo

# Navigate into repository
cd cryptgo

# Build image
make docker-build

# Run image
make docker-run

From Source:

Building requires Go to be installed.

# Clone the repository
git clone https://github.com/Gituser143/cryptgo

# Navigate into repository
cd cryptgo

# Build executable
make build

Make

# See all make targets
make help

What does cryptgo do?

Cryptgo helps you look at cryptocurrency values, details and track your crypto portfolio straight from your terminal!

It makes use of the API provided by CoinCap.io and CoinGecko to provide the required details!

Main Page

main-page

  • Here, the top 3 currencies (as ranked by Market Cap) are displayed with their graphs on top.

  • A table is provided with relevant information about other currencies.

  • cryptgo allows you to keep track of your favourite currencies by adding them to the favourites table.

  • A selected coin (from either the coin table or favourites) can be further inspected in detail.

Key-Bindings

Key-bindings can be found by pressing ?. This displays the help prompt.

  • Quit: q or <C-c>
  • Table Navigation
    • k and <Up>: up
    • j and <Down>: down
    • <C-u>: half page up
    • <C-d>: half page down
    • <C-b>: full page up
    • <C-f>: full page down
    • gg and <Home>: jump to top
    • G and <End>: jump to bottom
    • f: focus favourites table
    • F: focus interval table
  • Searching/Filtering
    • /: Open search box
    • Esc: Clear filter text
  • Sorting
    • Use column number to sort ascending.
    • Use to sort descending.
    • Eg: 1 to sort ascending on 1st Col and F1 for descending
  • Actions (Interval Table)
    • <c>: Select Currency (from popular list)
    • <C>: Select Currency (from full list)
    • e: Add/Edit coin to Portfolio
    • P: View portfolio
    • <s>: Star, save to favourites
    • <S>: UnStar,remove from favourites
    • <Enter>: View Coin Information
    • %: Select Duration for Percentage Change

Coin Page

coin-page

  • The coin page give more in depth details of a particular coin.

  • It can be navigated to from either the favourites or coin table.

  • The price history is displayed on top and can be viewed through different intervals, as provided by the Graph Interval table on the bottom left.

  • A live price is streamed in the price box and additional details are described in the details table.

Key-Bindings

Key-bindings can be found by pressing ?. This displays the help prompt.

  • Quit: q or <C-c>
  • Table Navigation
    • k and <Up>: up
    • j and <Down>: down
    • <C-u>: half page up
    • <C-d>: half page down
    • <C-b>: full page up
    • <C-f>: full page down
    • gg and <Home>: jump to top
    • G and <End>: jump to bottom
    • f: focus favourites table
    • F: focus interval table
  • Sorting
    • Use column number to sort ascending.
    • Use <F-column number> to sort descending.
    • Eg: 1 to sort ascending on 1st Col and F1 for descending
  • Actions (Interval Table)
    • <Enter>: Set Interval
    • <c>: Select Currency (from popular list)
    • <C>: Select Currency (from full list)

Portfolio Page

portfolio-page

  • Cryptgo allows you to track your crypto portfolio through a separately defined page.

  • This page can be accessed with the command cryptgo portfolio.

Key-Bindings

  • Quit: q or <C-c>

  • Table Navigation

    • k and <Up>: up
    • j and <Down>: down
    • <C-u>: half page up
    • <C-d>: half page down
    • <C-b>: full page up
    • <C-f>: full page down
    • gg and <Home>: jump to top
    • G and <End>: jump to bottom
  • Sorting

    • Use column number to sort ascending.
    • Use <F-column number> to sort descending.
    • Eg: 1 to sort ascending on 1st Col and F1 for descending
  • Actions

    • c: Select Currency (from popular list)
    • C: Select Currency (from full list)
    • e: Add/Edit coin to Portfolio
    • <Enter>: View Coin Information

Mini Portfolio

portfolio

  • Cryptgo also allows you to view your holdings through a mini portfolio from other pages.

  • Coins can be added/modified/removed by pressing e on a coin in the main page. (Set Holding Amount as 0 to remove)

  • Holdings can be modified either through the main page or through the portfolio itself. The below image shows the edit box when modifying holdings.

edit-box

Utilities

Currency

Currency need not be fixed to USD $, other currencies can be selected from either the popular currency table (press c) or full currency table (press C).

Popular Currency Table

currency

Full Currency Table

currency-full

Search/Filtering

Coins can be filtered/searched based on an input substring. The search/filter box can be brought up on the main page (press /).

search

Change Percentage Interval

The Change Percentage on the main page can be modified too. A list of durations can be viewed and selected by pressing %, which brings up the below table.

change-duration

Change Graph Duration

The duration of the history graph on the coin page is modifiable. To list the possible durations and select one, press d in the coin page. that will bring up the following table.

history-duration


Contributing

Pull Requests and Issues are welcome!

Please check the issues page to see available issues to work on, or to even create some!


Credits

Multiple Design ideas, utilities, functions and practices have been adopted from:

Do check them out!