В рамках финального проекта нужно самостоятельно написать приложение, свое или предложенное ниже, с использованием React/Redux. Это должно быть SPA, т.е. все страницы должны быть реализованы с помощью React Router-a.
Приложение должно иметь как минимум 2 скрипта в package.json: start
для запуска дев окружения (webpack-dev-server) и прод сборку с минимизацией файлов - build
скрипт. Можно использовать create-react-app, но написание своего webpack конфига будет плюсом.
Сдать нужно ссылку на репозиторий, в которой финальная рабочая версия будет в ветке master. Если есть ньюансы запуска или сборки, их нужно описать в README. Если README не будет или будет пустым, проверяющая команда будет делать только npm install
и npm run build
/ npm start
При реализации своего проекта по сложности стоит ориентироваться на предложенный проект и подбирать функционал соответственно.
Нужно реализовать конструктор форм с последующей возможностью их заполнения. Приложению будут нужны следующие странички
- Список всех форм, с кол-вом полей внутри и кол-вом людей заполнивших эту форму. Здесь можно
- Создать новую форму (отдельная страничка - Конструктор)
- Отредактировать существующую форму, но только если ее еще никто не заполнял (отдельная страничка - Конструктор)
- Просмотреть все заполнения формы (отдельная страничка)
- Конструктор форм. Тут можно создать новую форму или отредактировать существующую (возможно это будут 2 разных странички). На фронте должно быть ограничение в 15 полей на форму. Пользователь должен иметь возможность в любом порядке добавлять поля в форму, удалять их и перемещать местами. В конце по нажатию на кнопку создания/сохранения нужно отправлять изменения на сервер.
- Просмотр заполнений форм. Тут в виде таблички нужно отображать список всех тех, кто заполнил форму. Учесть, что заполнений может может быть много и их придется подгружать динамически.
- Страница для заполнения формы. Здесь нужно отрисовать минимальный интерфейс, без возможности попасть в остальные части приложения (как если бы мы хотели отправить кому-то сылку для заполнения). В ссылке должен присутствовать айди формы, по которому мы и сможем подгрузить и отрисовать поля этой формы. После заполнения нужно показать модалку, о том, что данные успешно сохранены
Примеры запросов и ответов можно посмотреть в папке api. Все эти запросы следует делать на forms-app.brutgroot.com/[username], где username - ваш уникальный логин (например в телеграмме). Например, для получения списка всех форм (/forms/list) юзеру shpax стоит делать запрос на http://forms-app.brutgroot.com/shpax/forms/list. Также, в репе есть Postman-коллекция этих запросов
Чтобы не делать всю верстку самостоятельно, предлагаю использовать material-ui