Вариант 2634
Переписать приложение из предыдущей лабораторной работы с использованием следующих технологий:
- Уровень
back-end
должен быть основан на Spring. - Уровень
front-end
должен быть построен на React + Redux (необходимо использовать ES6 и JSX) с использованием набора компонентов React Toolbox - Взаимодействие между уровнями
back-end
иfront-end
должно быть организовано посредством REST API.
Приложение по-прежнему должно включать в себя 2
страницы — стартовую и основную страницу приложения. Обе страницы
приложения должны быть адаптированы для отображения в 3
режимах:
"Десктопный"
- для устройств, ширина экрана которых равна или превышает1244
пикселей."Планшетный"
- для устройств, ширина экрана которых равна или превышает750
, но меньше1244
пикселей."Мобильный"
- для устройств, ширина экрана которых меньше750
пикселей.
Стартовая страница должна содержать следующие элементы:
- "Шапку", содержащую ФИО студента, номер группы и номер варианта.
- Форму для ввода логина и пароля. Информация о зарегистрированных в системе пользователях должна храниться в
отдельной таблице БД (пароль должен храниться в виде
хэш
-суммы). Доступ неавторизованных пользователей к основной странице приложения должен быть запрещён.
Основная страница приложения должна содержать следующие элементы:
- Набор полей ввода для задания координат точки и радиуса области в соответствии с вариантом задания:
Checkbox
{'-4','-3','-2','-1','0','1','2','3','4'} для координаты по осиX
,Input
(-5 ... 3) для координаты по осиY
,иCheckbox
{'-4','-3','-2','-1','0','1','2','3','4'} для задания радиуса областиR
. Если поле ввода допускает ввод заведомо некорректных данных (таких, например, как буквы в координатах точки или отрицательный радиус), то приложение должно осуществлять их валидацию. - Динамически обновляемую картинку, изображающую область на координатной плоскости в соответствии с номером варианта и точки, координаты которых были заданы пользователем. Клик по картинке должен инициировать сценарий, осуществляющий определение координат новой точки и отправку их на сервер для проверки её попадания в область. Цвет точек должен зависить от факта попадания/непопадания в область. Смена радиуса также должна инициировать перерисовку картинки.
- Таблицу со списком результатов предыдущих проверок.
- Кнопку, по которой аутентифицированный пользователь может закрыть свою сессию и вернуться на стартовую страницу приложения.
Дополнительные требования к приложению:
- Все результаты проверки должны сохраняться в базе данных под управлением СУБД Oracle.
- Для доступа к БД необходимо использовать Spring Data.
Вопросы к защите лабораторной работы:
- Платформа Java EE. Спецификации и их реализации.
- Принципы IoC, CDI и Location Transparency. Компоненты и контейнеры.
- Управление жизненным циклом компонентов. Дескрипторы развёртывания.
- Java EE API. Виды компонентов. Профили платформы Java EE.
- Компоненты EJB. Stateless & Stateful Session Beans. EJB Lite и EJB Full.
- Работа с электронной почтой в Java EE. JavaMail API.
- JMS. Реализация очередей сообщений. Способы доставки сообщений до клиента. Message-Driven Beans.
- Понятие транзакции. Управление транзакциями в Java EE. JTA.
- Веб-сервисы. Технологии JAX-RS и JAX-WS.
- Платформа Spring. Сходства и отличия с Java EE.
- Модули Spring. Архитектура Spring Runtime. Spring Security и Spring Data.
- Реализация IoC и CDI в Spring. Сходства и отличия с Java EE.
- Реализация REST API в Java EE и Spring.
- React JS. Архитектура и основные принципы разработки приложений.
- Компоненты React. State & props. "Умные" и "глупые" компоненты.
- Разметка страниц в React-приложениях. JSX.
- Навигация в React-приложениях. ReactRouter.
- Управление состоянием интерфейса. Redux.
- Angular: архитектура и основные принципы разработки приложений.
- Angular: модули, компоненты, сервисы и DI.
- Angular: шаблоны страниц, жизненный цикл компонентов, подключение CSS.
- Angular: клиент-серверное взаимодействие, создание, отправка и валидация данных форм.