Разработать приложение, которое осуществляет проверку попадания точки в заданную область на координатной плоскости.
Уровень back-end должен быть основан на Spring. Уровень front-end должен быть построен на Angular с использованием набора компонентов PrimeNG Взаимодействие между уровнями back-end и front-end должно быть организовано посредством REST API. Все результаты проверки должны сохраняться в базе данных под управлением СУБД PostgreSQL. Для доступа к БД необходимо использовать Spring Data. Приложение по-прежнему должно включать в себя 2 страницы - стартовую и основную страницу приложения.
Стартовая страница должна содержать следующие элементы: "Шапку", содержащую ФИО студента, номер группы и номер варианта. Форму для ввода логина и пароля. Информация о зарегистрированных в системе пользователях должна храниться в отдельной таблице БД (пароль должен храниться в виде хэш-суммы). Доступ неавторизованных пользователей к основной странице приложения должен быть запрещён.
Основная страница приложения должна содержать следующие элементы: Набор полей ввода для задания координат точки и радиуса области в соответствии с вариантом задания: RadioButton {'-3','-2','-1','0','1','2','3','4','5'} для координаты по оси X, Text (-5 ... 3) для координаты по оси Y, и RadioButton {'-3','-2','-1','0','1','2','3','4','5'} для задания радиуса области. Если поле ввода допускает ввод заведомо некорректных данных (таких, например, как буквы в координатах точки или отрицательный радиус), то приложение должно осуществлять их валидацию. Динамически обновляемую картинку, изображающую область на координатной плоскости в соответствии с номером варианта и точки, координаты которых были заданы пользователем. Клик по картинке должен инициировать сценарий, осуществляющий определение координат новой точки и отправку их на сервер для проверки её попадания в область. Цвет точек должен зависить от факта попадания / непопадания в область. Смена радиуса также должна инициировать перерисовку картинки. Таблицу со списком результатов предыдущих проверок. Ссылку, по которой аутентифицированный пользователь может закрыть свою сессию и вернуться на стартовую страницу приложения.