Skip to content
This repository has been archived by the owner on Aug 25, 2021. It is now read-only.

YOUR road to success in the stock market!

Notifications You must be signed in to change notification settings

fantasymarket/fantasymarket-api

Repository files navigation

Website Website netlify codecov Security Headers Mozilla HTTP Observatory Grade Maintainability

Table of Contents

Introduction

We are creating a stock market simulation, where the user can invest in-game currency in a simulated market completely separated from the real world. By providing custom events that pop up randomly and alter the course of our stocks, coupled with a market that never sleeps, we are presenting a fun and fast-paced introduction into the stock market. This is the repository for the backend, the corresponding frontend can be found here.

Structure

fantasymarket-app
├── api        # rest api service
├── database   # database service
├── game       # game service
└── utils      # utility functions

Installation

1. Install Requirements

  • go >=1.13
  • Task (optional)
  • Revive (optional) To install, you can also run $ task install-linter after installing task.
  • go-bindata (required for building a binary) - To install, you can also run $ task install-bindata after installing task.
  • Windows:
  • OSX:
    • You might need to install sqlite (should be installed already)
  • Linux:

NOTE: Due to some changes in gcc 10, you might see some warnings because of the sqlite bindings we use. This won't cause any issues.

2. Clone Repo

$ git clone https://github.com/fantasymarket/fantasymarket-app.git
$ cd fantasymarket-app

Development

Recommended Tools

VSCode with the official GO extension or goland

Testing

With Task installed:

$ task test # run tests
$ task lint # lint code

Alternative:

$ go test ./...

Impressions

Landing Page

Landing Page

Chart View

Chart View

Trading View

Trading View

Running the app:

After installing all the requirements, start the program by running $ go run main.go.
The console should output information about the status of the program:

INF successfully connected to the database
INF successfully started the game loop
INF successfully started the http server address=localhost:5000

It will then load the last tick from the Database before printing it and the ingame time:

DBG running tick date="2020-01-01 00:00:00 +0000 UTC" tick=2

After this setup, the program prints the indices from the two currently implemented stocks Google and Apple. This is done every 10 seconds, like this:

DBG updated stock index=60032 name=GOOG
DBG updated stock index=60024 name=APPL

The corresponding instructions for running the frontend can be found here.

About

YOUR road to success in the stock market!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •