Федор Лаврентьев [fediq]
Федор Лаврентьев [fediq]На сайте 3 года и 7 месяцев (заходил 2 года 11 месяцев 8 дней назад)
0
113
|
Рейтинг113
113
|
Редактирование бюджета
12 Апреля 2018
Бюджет: 20 000 руб
Нужно сверстать интерфейс внутреннего сервиса для работы с большим реестром, а потом оживить его с помощью JS.
Вся работа с данными происходит на бекенде, на фронтенде нужно лишь отображать фильтры и превью, а также предоставить контролы для экспорта полных данных в другие системы. Сроки выполнения работы до недели. Стоимость обсуждается Ниже фрагмент из ТЗ, полное ТЗ по запросу. ### Этапы работ Задача разбита на четыре майлстоуна. * Верстка с примерами всех кейсов * Работоспособный JS с имитацией ответа бекенда, без декоративных элементов и косметической логики (см. ниже) * Отладка клиент-серверной логики на настоящем бекенде * Отладка косметической логики и декоративных элементов ### Общий вид интерфейса Вверху строка хедера. Логотип и название. Место под ссылки на другие страницы. Дальше блок фильтров, фильтры описаны ниже. Фильтров много, их можно отображать один за другим. Код HTML и JS для фильтров надо организовать так, чтобы было удобно добавлять новые фильтры по мере их разработки. После фильтров две кнопки "Предпросмотр" и "Экспорт". По нажатию на кнопку "Предпросмотр" отправлять AJAX-запрос с фильтрами к бекенду. Пока бекенд не ответил, блокировать фильтры и кнопки так, чтобы параметры запроса не изменялись, и отправить запрос повторно было нельзя. После ответа бекенда заполнить данными ответа таблицу для предпросмотра. По нажатию на кнопку "Экспорт" отправлять аналогичный AJAX-запрос к бекенду. Пока бекенд не ответил, аналогично блокировать контролы. После ответа отобразить всплювающее окно с форматированным результатом от бекенда. Дальше таблица для предпросмотра, описана ниже. Не изменяется пользователем. Изначально пустая. ### Технические требования * Должно получиться одностраничное не перегружаемое SPA. * Мобильная версия не требуется, только широкоформатный десктоп. * Кнопочки должны инициировать AJAX-запросы. * На время ожидания ответа контролы должны блокироваться и не позволять повторную отправку запроса. * В случае ошибки или таймаута на сервере надо выводить технический алерт, который пользователь сможет скопировать. * Верстку нужно собрать на Bootstrap, голый HTML, без изысков. В кастомных стилях нет необходимости. * В качестве JS-движка может использоваться любой популярный фреймворк, однако, код должен быть понятен для программистов без специализации на JS. * При изменении полей для фильтрации урл должен изменяться так, чтобы при открытии его урла в другом браузере условия фильтра были в точности восстановлены. * Около всех кнопок и фильтров предусмотреть иконки со всплывающей справкой. Текст справок будет подставлен позже, пока просто заполнить плейсхолдерами. * Для некоторых полей фильтров предусмотреть client-side саджест, подробнее в описании. * Для некоторых результатов в таблице предусмотреть спойлеры, подробнее в описании. ### Опциональные элементы Декоративные элементы и косметическая логика, которые не требуются на втором и третьем этапе: * Справочные ховеры * Спойлеры в таблице предпросмотра * Затемнение неиспользуемых фильтров * Саджесты (ожидается работа за время, не заметное для человека) * Динамическое формирование урла и наполнение фильтров из урла |