JAlgoArena UI is frontent for JAlgoArena services.
- Introduction
- Components
- Continuous Delivery
- Infrastructure
- [Running Locally] (#running-locally)
- Notes
- 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)
- 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
- 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
There are two ways to run it - from sources or from binaries.
- Default port:
3000
- prerequisite if you plan to rebuild:
npm run installRequiredGlobalDependencies
- 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
- 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
- the recommended way to run JAlgoArena UI is to use PM2
- the command is
npm run pm2start