folley / JAlgoArena-UI

Front end implementation for JAlgoArena

Home Page:https://jalgoarena-ui.herokuapp.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JAlgoArena-UI Build Status GitHub release Codacy Badge Code Climate codecov

JAlgoArena UI is frontent for JAlgoArena services.

Introduction

  • JAlgoArena UI allows user to see existing problems, create account and using it submit solutions for existing problems, in one of two languages: Kotlin and Java. Every solution is limited by time and memory consumption and needs to pass all defined test cases. Problems itself are divided into three difficulty levels for each ones receiving different set of points. Additionally Kotlin language is promoted, giving you 150% of usual points in Java with same time.
  • Additionally there is module dedicated for Administrator, who can review submissions (any cheating, ticking on requirements, copy pasting), add new problems or update existing ones (the last one is still in progress)

Component Diagram

Components

Continuous Delivery

  • initially, developer push his changes to GitHub
  • in next stage, GitHub notifies Travis CI about changes
  • Travis CI runs whole continuous integration flow, running compilation, tests and generating reports
  • application is deployed into Heroku machine

Infrastructure

  • Heroku (PaaS)
  • npm, as build and running script, dependency management
  • Webpack to build JavaScript bundle script
  • ReactJS, Redux - for views and handling state
  • Bootstrap - for UI Styles
  • TravisCI - https://travis-ci.org/spolnik/JAlgoArena-UI

Running locally

There are two ways to run it - from sources or from binaries.

  • Default port: 3000
  • prerequisite if you plan to rebuild: npm run installRequiredGlobalDependencies

Running from binaries

  • go to releases page and download last app package (JAlgoArena-UI-[version_number].zip)
  • after unpacking it, go to folder and edit configuration: nano client/config/index.js - change there url to JAlgoArena API Gateway, title, region and team names
  • run with command: npm start

Running from sources

  • run git clone https://github.com/spolnik/JAlgoArena-UI to clone locally the sources
  • run npm install to install all dependencies
  • now, you can build and run project with command ./npm start
  • there is now some caveat - configuration is embedded into sources under config file. If you would like to change welcome message, name of teams or regions, url to EUREKA you are supposed to do that in this file. Once you do that, you should repeat above command to rebuild sources
  • in future that configuration/data will go to some other service and will be downloaded by UI on the start

Recommended way to run - PM2

  • the recommended way to run JAlgoArena UI is to use PM2
  • the command is npm run pm2start

Notes

Component Diagram

About

Front end implementation for JAlgoArena

https://jalgoarena-ui.herokuapp.com

License:Apache License 2.0


Languages

Language:JavaScript 97.3%Language:HTML 1.7%Language:CSS 1.0%