Skip to content

Commit b2c50df

Browse files
authored
docs: clarify and update requirements of the async-race task (#1765)
* docs: clarify and update requirements of the async-race task * docs: clarify and update requirements of the async-race task * docs: remove the mention of frameworks and correct the eslint rules example to the proper format
1 parent f57b9e5 commit b2c50df

File tree

1 file changed

+35
-5
lines changed

1 file changed

+35
-5
lines changed

stage2/tasks/async-race/non-functional-requirements.md

+35-5
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ Mentors will evaluate the "Async Race" Single Page Application (SPA) based on th
1818

1919
## 📦 Bundling and Tooling (20 points)
2020

21-
- **Use of Webpack or Similar (20 points):** Implement Webpack or another bundling tool to compile the project into a minimal set of files, ideally one HTML file, one JS file, and one CSS file.
21+
- **Use bundler (Vite/Webpack or similar) (20 points):** Implement bundling tool to compile the project into a minimal set of files, ideally one HTML file, one JS file, and one CSS file.
2222

2323
## ✅ Code Quality and Standards (15 points)
2424

25-
- **Eslint with Airbnb Style Guide (15 points):** Adhere to the Airbnb ESLint configuration to maintain code quality. Specific rules may be adjusted only with mentor approval, and there should be no ESLint errors or warnings.
25+
- **Eslint with Unicorn Style Guide (15 points):** Adhere to the Unicorn ESLint configuration to maintain code quality. There should be no ESLint errors or warnings
2626

2727
## 📏 Code Organization and Efficiency (15 points)
2828

@@ -32,15 +32,45 @@ Mentors will evaluate the "Async Race" Single Page Application (SPA) based on th
3232
## 🎨 Prettier and ESLint Configuration (10 points)
3333

3434
- **(5 points)** Prettier is correctly set up with two scripts in `package.json`: `format` for auto-formatting and `ci:format` for checking issues.
35-
- **(5 points)** ESLint is configured with the [Airbnb style guide](https://github.com/airbnb/javascript). A `lint` script in `package.json` runs ESLint checks.
35+
- **(5 points)** ESLint is configured with the [Unicorn](https://www.npmjs.com/package/eslint-plugin-unicorn). A `lint` script in `package.json` runs ESLint checks.
36+
Specific rules may be adjusted only with mentor approval, e.g.:
37+
38+
```json
39+
{
40+
"@typescript-eslint/consistent-type-definitions": ["error", "type"],
41+
"unicorn/no-array-callback-reference": "off",
42+
"unicorn/no-array-for-each": "off",
43+
"unicorn/no-array-reduce": "off",
44+
"unicorn/no-null": "off",
45+
"unicorn/number-literal-case": "off",
46+
"unicorn/numeric-separators-style": "off",
47+
"unicorn/prevent-abbreviations": [
48+
"error",
49+
{
50+
"allowList": {
51+
"acc": true,
52+
"env": true,
53+
"i": true,
54+
"j": true,
55+
"props": true,
56+
"Props": true
57+
}
58+
}
59+
]
60+
}
61+
```
3662

3763
## 🌟 Overall Code Quality (35 points)
3864

3965
- **(Up to 35 points)** Discretionary points awarded by the mentor based on overall code quality, readability
4066

4167
## 🔒 Mandatory Requirements
4268

43-
- **No Libraries/Frameworks (-100%):** The use of libraries or frameworks such as JQuery, React, Angular, Lodash, Material Design, etc., is strictly prohibited. Bootstrap CSS is permitted for styling purposes only.
44-
- **Typescript Usage (-100%):** The application must be developed using TypeScript. All method input and output parameters must be typed accurately, and the use of "any" type is not allowed.
69+
- **No Libraries/Frameworks (-100%):** The use of libraries or frameworks such as JQuery, React, Angular, Lodash, Material Design, etc., is strictly prohibited.
70+
71+
- Bootstrap CSS is permitted for **styling purposes** only.
72+
- CSS modules, CSS Preprocessors (`Sass`, `Less`, `Stylus`, `PostCSS`, etc.), CSS in JS libraries (`tailwindcss`, `jss`, `emotion/css`, etc.), `clsx/classnames` package are allowed.
73+
74+
- **Typescript Usage (-100%):** The application must be developed using TypeScript. All method input and output parameters must be typed accurately, and the use of explicit or implicit "any" type, type assertions (`foo as BarType`) and non-nullability assertions (`y!`) is not allowed.
4575

4676
These criteria emphasize the importance of clean code, proper architecture, and adherence to modern development practices. Mentors will use these guidelines to assess the technical execution and overall quality of the project.

0 commit comments

Comments
 (0)