GithubHelp home page GithubHelp logo

efekancalim1 / corepractical Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jamesljeffrey1995/corepractical

0.0 0.0 0.0 4.98 MB

A generator that randomly selects the stance and trick that the user should do

License: GNU General Public License v3.0

Shell 16.94% Python 73.60% Dockerfile 5.15% HTML 4.31%

corepractical's Introduction

S.K.A.T.E Trick generator

Contents

The brief

To create an application that creates 'Objects' that is made from a set of predefined rules. This will have to be accopmplished using the technologies and methodologies taught.

My application

My project is an application that generates a random skate trick and combining it with a stance. The steeze is dependent on what the stance and trick is.

Architecture

diagram

  • 1_server: Sends out a request to 4_SKATE, to return the full trick, that is diplayed on a HTML page.< /li>
  • 2_stance: This recieves a request from 4_SKATE, asking for a stance. A random number is generated which determines which ID is chose out of the stance table
  • 3_trick: This recieves a request from 4_SKATE, asking for a trick. A random number is generated which determines which ID is chose out of the trick table
  • 4_SKATE: This recieves a request from 1_server, so it then send out requests to 2_stance and 3_trick, to get the stance and trick. Once they have been retrieved, the steeze is then calculated, dependent of the stance and trick. Once this is done, these value are stored in a dict and jsonify'd.
  • NGINX: Is used as a reverse proxy, this is so the use does not have direct access to VM's
  • SQL DB: This has preset list within the stance and trick tables, these are queried and information is sent back to the relevant place

Entity Diagrams

ed

CI-pipeline

ci

The picture is below is the continuous integration pipeline. This allows for rapid and efficient development to deployment. Using webhooks, once the user pushes code to the master branch, the code is tested, if it pasts the tests, then ansible is installed on the machine and docker starts to build the images. This allows for there to me no down time during deployment.

Risk Assessment

risk

User Stories

user

To track the progress of the project and layout what was needed, Githubs project tracker was used to do this. I linked issues to certain pull-requests therefore slightly automating the kanban board. The board has several collumns, this allowed to keep tabs on the progress.

  • To do: This showed what was still needed to be completed
  • In progress: This shows what is currently being worked on
  • Completed: This shows all the issues that have been completed
  • User Stories: This shows all the user stories

Testing

Unit Testing

unit1

unit2

unit3

unit4

unit4a

High coverage was produced accross all services, unfortunately when implementing new features, I was un able to get high coverage of 4_SKATE. Testing is fully automated, so whenever someone pushes code to master branch, it is tested.

Known Issues

  • Due to the limited resources of GCP, after all images are uploaded and updated, sometimes it will revert to the old code, but only for a few seconds.

Future improvements

  • Allow for the user to store their trick< /li>
  • Higher coverage on 4_SKATE
  • Improve the front end, and make it more visually appealing

Authors

James Jeffrey

corepractical's People

Contributors

jamesljeffrey1995 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.