Author: Anastasiya Kozlova (shvedagon@gmail.com / Telegram: @N_Kozz)
Task: https://github.com/rolling-scopes-school/tasks/blob/master/epam/async-race.md
Important! The project will run properly only with the server running locally. Server may be found here: https://github.com/mikhama/async-race-api
DEMO: https://youtu.be/-vV2VpxD6Jg
Main goals:
- create SPA with native Javascript
- use Typescript, Eslint, Webpack
- train asyncronous programming
- (-100% for not fulfillment) It's forbidden to use any libraries or frameworks, like JQuery, React, Angular, Lodash, Material Design, etc. But you can use CSS from Bootstrap (CSS only!) if you wish.
- (-100% for not fulfillment) Typescript must be used. Types of input and output parameters of all the methods must be described. Using type "any" is strictly forbidden.
- (+40) Application is divided to logical modules / layers. Like working with api it's separate module, as well as working with UI rendering, or working with an application state, etc. Better discuss architecture with a mentor before implementing.
- (+30) All the HTML-content is generated by JavaScript (body contains only one tag script inside).
- (+25) Application is SPA.
- (+20) Webpack or another bundler should be used. There should be one HTML-file, JS-file, and one CSS-file (or it can be embedded right in the HTML-file).
- (+15) Eslint with Airbnb style guide should be used. Some particular eslint-rules can be disabled or changed only after agreement with a mentor. There shouldn't be any eslint errors or warnings.
- (+10) Code divided to small functions with a clear names and purposes. Each function should be less or equal to 40 lines.
- (+5) There are not unnecessary code duplications.
- (+5) Code shouldn't contain magical numbers or strings.