Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Gituser143/cryptgo

A terminal application to watch crypto prices!
https://github.com/Gituser143/cryptgo

bitcoin coin crypto crypto-price-tracker crypto-prices cryptocurrency cryptocurrency-exchanges ethereum go golang terminal-based tui

Last synced: 14 days ago
JSON representation

A terminal application to watch crypto prices!

Awesome Lists containing this project

README

        

cryptgo
=======

[![Go Build](https://github.com/Gituser143/cryptgo/actions/workflows/go.yml/badge.svg)](https://github.com/Gituser143/cryptgo/actions/workflows/go.yml) [![Go License Check](https://github.com/Gituser143/cryptgo/actions/workflows/license_check.yml/badge.svg)](https://github.com/Gituser143/cryptgo/actions/workflows/license_check.yml) [![Go Report Card](https://goreportcard.com/badge/github.com/gituser143/cryptgo)](https://goreportcard.com/report/github.com/gituser143/cryptgo) [![Go Reference](https://pkg.go.dev/badge/github.com/Gituser143/cryptgo.svg)](https://pkg.go.dev/github.com/Gituser143/cryptgo) ![Docker Image Version (latest semver)](https://img.shields.io/docker/v/bhargavsnv/cryptgo?label=Docker%20Version&logo=Docker&sort=semver) [![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go)

### Latest Stable Version: ![GitHub tag (latest SemVer)](https://img.shields.io/github/v/tag/gituser143/cryptgo?label=Version&sort=semver)

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

![logo](images/logo.png)

Installation
============

Using Go
--------

```bash
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.

```bash
# 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:

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

And run using:

```bash
cryptgo [flags]
# or
cryptgo [command]
```

### Building Image locally

```bash
# 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](https://golang.org) to be installed.

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

# Navigate into repository
cd cryptgo

# Build executable
make build
```

Make
--------
```bash
# 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](https://coincap.io/) and [CoinGecko](https://www.coingecko.com/en) to provide the required details!

Main Page
---------

![main-page](images/main-page.png)

- 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 ``
- **Table Navigation**
- `k` and ``: up
- `j` and ``: down
- ``: half page up
- ``: half page down
- ``: full page up
- ``: full page down
- `gg` and ``: jump to top
- `G` and ``: 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)**
- ``: Select Currency (from popular list)
- ``: Select Currency (from full list)
- `e`: Add/Edit coin to Portfolio
- `P`: View portfolio
- ``: Star, save to favourites
- ``: UnStar,remove from favourites
- ``: View Coin Information
- `%`: Select Duration for Percentage Change

Coin Page
---------

![coin-page](images/coin-page.png)

- 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 ``
- **Table Navigation**
- `k` and ``: up
- `j` and ``: down
- ``: half page up
- ``: half page down
- ``: full page up
- ``: full page down
- `gg` and ``: jump to top
- `G` and ``: jump to bottom
- `f`: focus favourites table
- `F`: focus interval table
- **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)**
- ``: Set Interval
- ``: Select Currency (from popular list)
- ``: Select Currency (from full list)

Portfolio Page
--------------

![portfolio-page](images/portfolio-page.png)

- 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 ``**
- **Table Navigation**
- `k` and ``: up
- `j` and ``: down
- ``: half page up
- ``: half page down
- ``: full page up
- ``: full page down
- `gg` and ``: jump to top
- `G` and ``: jump to bottom
- **Sorting**

- Use column number to sort ascending.
- Use `` 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
- ``: View Coin Information

### Mini Portfolio

![portfolio](images/portfolio.png)

- 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](images/portfolio-edit.png)

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](images/currency.png)

#### Full Currency Table

![currency-full](images/currency-full.png)

### 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](images/search.png)

### 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](images/change-duration.png)

### 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](images/history-duration.png)

---

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:

- [Grofer](https://github.com/pesos/grofer)

- [Gotop](https://github.com/cjbassi/gotop)

- [Termui](https://github.com/gizak/termui)

Do check them out!