Лабораторная работа № 2 #
Проверяемые знания #
- Знание основ языка HTML.
 - Умение структурировать HTML-документы.
 - Знание основ языка CSS.
 - Умение применять классы CSS к HTML-элементам.
 - Умение подключать внешние CSS-файлы к HTML-документу.
 - Умение использовать CSS-стили фреймворка Foundation.
 - Знание основ маршрутизации HTTP-запросов с помощью библиотеки http4k.
 - Умение обрабатывать GET и POST-запросы с помощью библиотеки http4k.
 - Умение формировать динамические HTML-страницы с помощью шаблонов Pebble.
 - Умение корректно обрабатывать параметры, приходящие от пользователя:
- Через маршруты к документам.
 - Через параметры маршрута.
 - Через поля интерактивных HTML-форм.
 
 - Умение применять средства статического анализа кода Kotlin: ktlint и detekt.
 - Умение сохранять данные в постоянном объектном хранилище. Данные в хранилище должны сохраняться между перезапусками приложения.
 - Умение извлекать данные из постоянного объектного хранилища.
 - Умение оперировать связями между объектами из разных списков объектного хранилища.
 
Требования к лабораторной работе #
- Результат работы — исходные коды приложения без артефактов сборки приложения (без каталогов build и .gradle).
 - Приложение должно быть разработано с использованием языка программирования Kotlin.
 - Приложение должно использовать актуальную версию библиотеки http4k.
 - Просмотр документов должен осуществляться через обработку и отправку GET-запросов.
 - Операции по редактированию данных, в том числе по добавлению, должны осуществляться с помощью POST-запросов.
 - Операции по фильтрации данных, включая постраничный вывод, должны осуществляться с помощью GET-запросов.
 - Для стилизации элементов на странице необходимо использовать классы CSS-фреймворков, следует избегать ручного указания CSS-свойств внутри HTML-документов. Вместо этого необходимо описывать собственные CSS-классы.
 - Для формирования динамических HTML-документов необходимо использовать шаблонизатор Pebble.
 - Приложение должно корректно обрабатывать неправильные данные от пользователя:
- Всегда должны формироваться HTML-документы с корректным содержимым.
 - Приложение не должно показывать исключительные ситуации, стеки вызова и прочее пользователю.
 - В случае отсутствия искомого документа должна отображаться соответствующая страница.
 
 - Для проверки параметров от пользователя рекомендуется использовать механизм линз библиотеки http4k. Также допускается ручная проверка параметров или привлечение других библиотек.
 - Страницы со списками данных должны корректно обрабатывать ситуацию отсутствия данных. Вместо пустой страницы должно присутствовать информационное сообщение о том, что соответствующих данных нет.
 - Для хранения данных необходимо использовать подход с выделением слоя хранения данных.
 - Для уникальной идентификации объекта в хранилище рекомендуется использовать UUID.
 
Задача #
Разработать веб-приложение, решающее задачу по управлению данными в указанной тематике. Приложение должно:
- Отображать стартовую страницу с описанием предметной области.
 - Обеспечить управление несколькими (2 и более) связными списками данных. Для каждого отдельного списка необходимо:
- Отображать список на отдельной странице.
- Список должен быть отсортирован по дате добавления элемента, если не указано иначе.
 - Элементы списка на данной странице должны показывать минимальный объём информации.
 
 - На странице со списком реализовать постраничный вывод информации.
 - На странице со списком обеспечить фильтрацию данных минимум по двум параметрам.
 - Реализовать переход к странице с детальной информацией об элементе.
 
 - Отображать список на отдельной странице.
 - На странице с детальной информацией об элементе необходимо.
- Отображать все поля элемента в удобном для восприятия виде.
 - Реализовать переход к странице информации о связном элементе или списке элементов.
 
 - Приложение должно позволять добавлять новые элементы в каждый отображаемый список. Необходимо обеспечить:
- Проверку данных во всех полях ввода.
 - Указание связных объектов необходимо обеспечить с помощью выбора из выпадающего списка.
 
 - Приложение должно предоставлять страницу со статистической информацией, подсчитанной относительно двух списков.
 - На всех страницах должен присутствовать блок навигации, позволяющий переходить между стартовой страницей и страницами списков.
 
Распределение задач #
Описание задач можно найти в разделе «Лабораторные работы» → «Задачи».
ИВТ-21БО #
| Студент | Задача | 
|---|---|
| Бердар Александр Иванович | Зоопарк | 
| Варданян Армен Авагович | Приют для животных | 
| Васильев Иван Игоревич | Поиск специалиста | 
| Гиршон Марат Игоревич | Кулинарная книга | 
| Григорьева Ольга Леонидовна | Театральная касса | 
| Данишевский Данил Александрович | Форум | 
| Дрожженикова Алина Сергеевна | Совместное финансирование | 
| Казанов Иван Алексеевич | Зоопарк | 
| Карелина Ксения Викторовна | Продуктовый магазин | 
| Катков Андрей Сергеевич | Театральная касса | 
| Корегина Ангелина Алексеевна | Поиск специалиста | 
| Королёва Екатерина Сергеевна | Приют для животных | 
| Кузнецов Александр Васильевич | Продуктовый магазин | 
| Лопаткин Андрей Александрович | Поиск специалиста | 
| Лыкова Дарья Олеговна | Самиздат | 
| Маркина Екатерина Романовна | Ветеринарная клиника | 
| Нелеп Виктория Валентиновна | Поиск специалиста | 
| Парамонов Егор Сергеевич | Форум | 
| Попов Сергей Михайлович | Ветеринарная клиника | 
| Рыбакова Полина Александровна | Самиздат | 
| Сироджов Мехрофарид Ибодуллоевич | Зоопарк | 
| Тюменцев Дмитрий Евгеньевич | Совместное финансирование | 
| Фукин Иван Дмитриевич | Ветеринарная клиника | 
| Цыкарев Григорий Алексеевич | Продуктовый магазин | 
| Чайковский Сергей Станиславович | Самиздат | 
| Шихова Анна Павловна | Форум | 
ИВТ-22БО #
| Студент | Задача | 
|---|---|
| Бородин Илья Владимирович | Поиск специалиста | 
| Бурлова Виктория Александровна | Совместное финансирование | 
| Воронин Дмитрий Александрович | Ветеринарная клиника | 
| Голубков Кирилл Алексеевич | Кулинарная книга | 
| Докшин Захарий Евгеньевич | Совместное финансирование | 
| Еров Илья Алексеевич | Самиздат | 
| Жигалов Павел Алексеевич | Форум | 
| Карпунин Александр Олегович | Зоопарк | 
| Киселев Артём Александрович | Приют для животных | 
| Кочкин Владимир Александрович | Продуктовый магазин | 
| Курепнев Даниил Евгеньевич | Самиздат | 
| Лукьянов Александр Сергеевич | Театральная касса | 
| Мартынова Алена Олеговна | Продуктовый магазин | 
| Митраков Артем Юрьевич | Театральная касса | 
| Михайлов Вячеслав Андреевич | Кулинарная книга | 
| Михальченков Иван Сергеевич | Самиздат | 
| Назаров Данил Олегович | Кулинарная книга | 
| Орешников Евгений Дмитриевич | Приют для животных | 
| Пестряков Николай Юрьевич | Форум | 
| Печенкин Степан Дмитриевич | Кулинарная книга | 
| Пискунов Владимир Сергеевич | Театральная касса | 
| Роганин Егор Ильич | Приют для животных | 
| Тимофеева Александра Максимовна | Совместное финансирование | 
| Феклистов Андрей Дмитриевич | Зоопарк | 
| Фирсова Анастасия Сергеевна | Ветеринарная клиника |