No description
Find a file
2023-11-29 13:15:42 +00:00
deploy fix: pull from Code Flow's container registry 2023-11-28 14:16:58 +00:00
src chore: update project 2023-11-18 03:58:14 +00:00
.dockerignore chore: update project 2023-11-18 03:58:14 +00:00
.gitignore feat: add stock ticker app 2023-02-19 16:28:25 +00:00
go.mod chore: update project 2023-11-18 03:58:14 +00:00
README.asciidoc docs: convert README.md to README.asciidoc 2023-11-29 13:15:42 +00:00

Stock Ticker

Overview

$ curl http://stock-ticker.test/stockprice

Symbol: MSFT

Week       | Closing Price
==========================
2023-02-17 |   258.0600
2023-02-10 |   263.1000
2023-02-03 |   258.3500
2023-01-27 |   248.1600
2023-01-20 |   240.2200
2023-01-13 |   239.2300
2023-01-06 |   224.9300

This is a simple web service that prints the last 'N' weeks of closing stock prices for a particular stock. The data is retrieved from Alpha Vantages API.

The web service servers the following endpoints:

  • /healthcheck - Returns 200 if the server is up and running.

  • /stockprice - Prints the closing prices for the latest N weeks.

Alpha Vantage API Key

Before running the web service youll need to obtain an API key from Alpha Vantage. You can claim a free key from:

Required environment variables

Environment Variable Description Example

SYMBOL

The stocks symbol.

MSFT

NWEEKS

Display the closing price for the last N weeks.

7

APIKEY

Your API key from Alpha Vantage.

Command line arguments

Argument Description Default

address

The address that the web server will listen on.

0.0.0.0:8080

Running the docker image locally

The docker image is published to the container registry at Code Flow here. You can pull and run the docker image from the registry with the following command:

docker run --rm \
    -d \
    -e SYMBOL=MSFT \
    -e NWEEKS=3 \
    -e APIKEY=<YOUR_API_KEY> \
    --publish 8080:8080 \
    --name stock-ticker \
    codeflow.dananglin.me.uk/apollo/stock-ticker:v0.1.0

Alternatively you can build and run the docker image locally.

git clone https://codeflow.dananglin.me.uk/apollo/stock-ticker.git
cd stock-ticker
docker build -t stock-ticker -f deploy/Dockerfile .
docker run --rm \
    -d \
    -e SYMBOL=MSFT \
    -e NWEEKS=3 \
    -e APIKEY=<YOUR_API_KEY> \
    --publish 8080:8080 \
    --name stock-ticker \
    stock-ticker

Now you can go to http://localhost:8080/stockprice in your browser to view a table of the latest weekly closing stock prices for Microsoft (MSFT).

Deploying the web service on Minikube

The web service can be deployed on any distribution of Kubernetes but the below guide will focus on deployment onto a Minikube cluster. The Kubernetes manifest can viewed here and you can download and modify it as you wish.

  1. Follow these instructions to install and start a Minikube cluster.

  2. Set up ingress using either the Ingress DNS or Kong Ingress addon.

  3. Apply the Kubernetes manifest to your Minikube cluster.

    kubectl apply -f https://codeflow.dananglin.me.uk/apollo/stock-ticker/raw/branch/main/deploy/manifest.yaml
  4. Wait until the pods are running and in a 'Ready' state.

    $ kubectl -n stock-ticker get pods
    NAME                            READY   STATUS    RESTARTS   AGE
    stock-ticker-656859cf74-bb8w6   1/1     Running   0          29s
    stock-ticker-656859cf74-nvnbf   1/1     Running   0          29s
    stock-ticker-656859cf74-p6xzk   1/1     Running   0          29s
  5. Go to http://stock-ticker.<YOUR_TLD>/stockprice from your browser.