# Требования
Веб приложение которое позволяет составлять и проходить тесты.
Для UI можно подключить библиотеку react material и использовать компоненты оттуда.
**Опционально** можно сразу поддержать темы чтобы было легче кастомизировать все компоненты одновременно. https://v4.mui.com/ru/customization/theming/
## Страница со списком тестов
На этой странице в таблице отображаются доступные тесты. Таблицу можно взять отсюда https://v4.mui.com/ru/components/tables/
Колонки:
* id
* Название
* Составитель теста
* Количество вопросов
* Колонка с доступными действиями над тестом
* Пользователь может открыть тест на редактирование или удалить его
* Отображать действия можно в виде иконок (например https://codepen.io/cristinaconacel/pen/dgxqxj) или они будут доступны через контекстное меню (https://v4.mui.com/ru/components/menus/)
При клике на строку в таблице должен происходить переход на страницу с прохождением теста.
На странице должна быть кнопка "Составить новый", при клике на которую будет происходить переход на страницу создания. Где ее лучше расположить надо подумать, либо над таблицей где-то сбоку, либо где-то еще.
# План имплементации
1. Сделать скелет приложения, подключить нужные библиотеки.
2. Добавить шапку сайта. Можно взять https://v4.mui.com/ru/components/app-bar/ или другой подходящий компонент. Я думаю, что в шапке будут 2 ссылки: на страницу списка тестов и списка вопросов.
3. Страница списка тестов **/quizzes**
1. Добавить таблицу (без колонки с действиями) и кнопку создания нового теста.
2. Сделать модуль, который будет отвечать за отправку запросов на бэкенд. Либо можно посмотреть на популярную библиотеку react-query https://react-query.tanstack.com/ Для получения опыта конечно предпочтительнее первый вариант, то есть отправлять запросы с помощью, например, axios
3. Добавить загрузку данных в таблицу с бэкенда
4. Добавить колонку с действиями и поддержать удаление теста
4. Экран списка вопросов
1. Выглядеть должен идентично экрану списка тестов
5. Добавление вопроса
1. Есть 2 варианта: отдельная страница или диалог. Главное чтобы этот компонент можно было переиспользовать на странице создания теста. Юз кейс смотри ниже.
6. Экран создания теста
1. Отдельная страница с формой создания. Юзер может выбрать вопросы из существующих. То есть кликает на кнопку, открывается диалоговое окно внутри которого список вопросов, юзер чекает нужные и нажимает кнопку "добавить". На этом же экране должна быть возможность добавления нового вопроса. Надо выбрать вариант как лучше сделать: отдельным диалоговым окном или сделать в диалоге кнопку "добавить новый", при клике на которую контент внутри диалога будет подменяться на форму создания нового вопроса. Второй вариант кажется удобнее, но посложнее.