Автор: Чайкин Вадим Константинович (aka @Vad1mChK), P3224
Вариант №: 412348
Переписать приложение из предыдущей лабораторной работы с использованием следующих технологий:
- Уровень back-end должен быть основан на Java EE (необходимо использовать EJB).
- Уровень front-end должен быть построен на React + Redux (необходимо использовать ES6 и JSX) с использованием набора компонентов Belle
- Взаимодействие между уровнями back-end и front-end должно быть организовано посредством REST API.
Приложение по-прежнему должно включать в себя 2 страницы - стартовую и основную страницу приложения. Обе страницы приложения должны быть адаптированы для отображения в 3 режимах:
- "Десктопный" - для устройств, ширина экрана которых равна или превышает 1195 пикселей.
- "Планшетный" - для устройств, ширина экрана которых равна или превышает 668, но меньше 1195 пикселей.
- "Мобильный"- для устройств, ширина экрана которых меньше 668 пикселей.
Стартовая страница должна содержать следующие элементы:
- "Шапку", содержащую ФИО студента, номер группы и номер варианта.
- Форму для ввода логина и пароля. Информация о зарегистрированных в системе пользователях должна храниться в отдельной таблице БД (пароль должен храниться в виде хэш-суммы). Доступ неавторизованных пользователей к основной странице приложения должен быть запрещён.
Основная страница приложения должна содержать следующие элементы:
- Набор полей ввода для задания координат точки и радиуса области в соответствии с вариантом
задания:
Spinner (-3 ... 5)
для координаты по оси X,Spinner (-5 ... 3)
для координаты по оси Y, иSpinner (-3 ... 5)
для задания радиуса области. - Если поле ввода допускает ввод заведомо некорректных данных (таких, например, как буквы в координатах точки или отрицательный радиус), то приложение должно осуществлять их валидацию.
- Динамически обновляемую картинку, изображающую область на координатной плоскости в соответствии с номером варианта и точки, координаты которых были заданы пользователем. Клик по картинке должен инициировать сценарий, осуществляющий определение координат новой точки и отправку их на сервер для проверки её попадания в область. Цвет точек должен зависеть от факта попадания / непопадания в область. Смена радиуса также должна инициировать перерисовку картинки.
- Таблицу со списком результатов предыдущих проверок.
- Кнопку, по которой аутентифицированный пользователь может закрыть свою сессию и вернуться на стартовую страницу приложения.
Дополнительные требования к приложению:
- Все результаты проверки должны сохраняться в базе данных под управлением СУБД
OraclePostgreSQL. - Для доступа к БД необходимо использовать JPA.
Из предыдущих лабораторных работ:
- Сервер отображает нужное время в зависимости от временной зоны на клиенте.
- Фильтрация методов запросов.
Front-end:
- HTML
- LESS
- TS + React + Redux + Belle
Back-end:
- Java 17
- Jakarta EE 10 💔 (блин, неудобно Kotlin использовать)
- Enterprise Java Beans
- Hibernate 🥰
- К счастью, в этой лабе нет JSF, который может пойти на фиг