Вам необходимо создать приложение - тренажер для подготовки к собеседованиям по JavaScript.
Для работы приложения подготовьте базу задач по JavaScript и распределите их по категориям, отвечающим часто встречающимся вопросам собеседований, например, типы данных, замыкания, асинхронность, event loop и т.д. Список таких вопросов можно посмотреть в поисковике или по ссылкам:
- https://github.com/rolling-scopes-school/tasks/blob/2018-Q3/tasks/interview-corejs.md
- https://discordapp.com/channels/516715744646660106/665102735556739083/666993161456975883
Сложность задач подбирайте соответствующую собеседованию на позицию Junior JavaScript developer.
Ориентировочное количество категорий вопросов в вашем приложении - 10-12. Каждая категория содержит 10-15 задач.
Список категорий содержится в выдвигающемся боковом меню, которое размещается в левой части страницы.
Возле каждой категории указывается общее количество задач в ней и количество решённых задач.
Меню является многоуровневым. При клике по названию категории открывается список задач. Решённые и нерешённые задачи отличаются визуально.
При клике по названию задачи она отображается на странице приложения.
У каждой задача есть
- название
- условие
- правильный вариант решения
- дополнительная теория (или ссылка на неё).
Решение задачи предполагает написание кода. В приложении под условием задачи или сбоку от него находится окно, в котором можно набрать код решения (подсветка и автодополнение кода приветствуются).
Вам необходимо разработать механизм проверки правильности предложенного пользователем решения.
По клику на кнопку Run происходит проверка правильности решения и выводится уведомление о её результате.
Для проверки правильности решения вы можете использовать синтаксис "new Function" или другой механизм проверки. Использование с этой целью функции eval() нежелательно.
Под окном с кодом находится кнопка Save, при клике по которой сохраняется набранный код.
Если задача решена правильно, решение пользователя сохраняется автоматически.
Сохранённые решения доступны на вкладке История и располагаются там в хронологическом порядке. Возле решения есть ссылка на задачу, дата его сохранения, кнопка, позволяющая удалить данное решение из истории.
У пользователя есть возможность редактировать приложение, добавляя в него новые задачи и категории.
- работа приложения проверяется в браузере Google Chrome последней версии
- использование jQuery не допускается
- для быстрого прототипирования рекомендуется использовать Bootstrap
- необходимо использовать Angular/React/Vue
- можно использовать CSS preprocessors
- рабочее приложение должно быть размещено на
https://www.netlify.com/
Максимальный балл за задание - 500
-
Верстка, дизайн, UI - 30 баллов
- приложение правильно отображается и работает как на десктопе, так и на мобильных устройствах
- есть возможность переключения между тёмной и светлой темами
-
Подготовка базы задач - до 300 баллов
- по 2 балла за каждую задачу
-
Меню - 30 баллов
- меню плавно выдвигается и скрывается, по клику по категории открывается список задач
- возле названий категорий отображается количество решённых и нерешённых задач в них, в списке задач есть визуальное отличие между решёнными и нерешёнными задачами
- при клике по названию задачи в меню она отображается на странице приложения
-
Задача - 50 баллов
- при отображении задачи на странице приложения выводится её название и условие
- у окна для ввода кода решения есть подсветка и автодополнение кода
- под окном для ввода кода решения есть кнопка Run, позволяющая запустить код и проверить правильность решения, ссылки на дополнительную теорию и на правильный вариант решения
-
Сохранение истории - 40 баллов
- правильное решение сохраняется автоматически
- сохранить незаконченное решение можно кликом по кнопке Save под окном для ввода кода
- все решённые и сохранённые пользователем задачи доступны на вкладке История и располагаются там в хронологическом порядке.
- возле решения есть ссылка на задачу, дата сохранения, кнопка, позволяющая удалить данное решение из истории.
- Добавление новых задач и категорий - 80 баллов
- У пользователя есть возможность редактировать приложение, добавляя в него новые задачи и категории.
- Free themes for Bootstrap https://bootswatch.com/