Giter VIP home page Giter VIP logo

jonhealy1 / daytrading Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 163.03 MB

This was the final project for SENG462. Students were placed in teams to compete against each other using very strict guidelines. Our team ended up with a processing speed of nearly 5000 transactions per second which far exceeded what most of the other groups were able to achieve. We relied on Go and Redis primarily and developed our own sharding scheme to optimize performance. Teams were not allowed to use solutions like Docker Swarm or Kubernetes.

Dockerfile 0.16% Makefile 1.72% Go 81.15% CSS 0.50% HTML 9.63% JavaScript 6.83%

daytrading's Introduction

daytrading

SENG 468 Project

TODO Group

Docker

To build a Docker image

docker save [image_name] > [name].tar

To load a Docker image

docker load -i [name].tar

To run development environment with Docker Compose

docker-compose build

docker-compose up

To run production environment with Docker Compose

docker-compose build

docker-compose -f docker-compose.yml -f docker-compose.prod.yml up

Performance

Our system that has been optimized for performance is currently on our master branch. This is the branch that we used to run the final workload. We used Docker to save and load the images onto the lab machines and then used Docker Compose to run our services in Docker containers.

Testing

The test suite is on the tests branch within the Servers/transaction_server folder. It is named redis_commands_test.go.

To run the test suite:

  1. open a redis server at port 6380 using the command redis-server --port 6380
  2. build and run the mock quote server using the commands go build and ./quote_server inside Servers/quote_server
  3. go to Servers/transaction_server and run go test

UI and error handling

The version of our system that has been optimized for the user interface with error handling is located on the sep_error branch. Error handling is done within the transaction server while the web server handles the user interface.

daytrading's People

Contributors

grace-kang avatar jjingg avatar jonhealy1 avatar oliviazjj avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.