I had a problem, so I thought to use Java.
Now I have a
ProblemFactory
| .docx | |
|---|---|
| report | report |
Переписать приложение из предыдущей лабораторной работы с использованием следующих технологий:
- Уровень back-end должен быть основан на Spring.
- Уровень front-end должен быть построен на Vue.js с использованием обычных полей ввода HTML
- Взаимодействие между уровнями back-end и front-end должно быть организовано посредством REST API.
Приложение по-прежнему должно включать в себя 2 страницы - стартовую и основную страницу приложения. Обе страницы приложения должны быть адаптированы для отображения в 3 режимах:
- "Десктопный" - для устройств, ширина экрана которых равна или превышает 1210 пикселей.
- "Планшетный" - для устройств, ширина экрана которых равна или превышает 773, но меньше 1210 пикселей.
- "Мобильный"- для устройств, ширина экрана которых меньше 773 пикселей.
- При регистрации и входе в аккаунт отправлять пользователю письмо на почту (JavaMail).
- Переписать REST сервис в SOAP сервис.
- "Шапку", содержащую ФИО студента, номер группы и номер варианта.
- Форму для ввода логина и пароля. Информация о зарегистрированных в системе пользователях должна храниться в отдельной таблице БД (пароль должен храниться в виде хэш-суммы). Доступ неавторизованных пользователей к основной странице приложения должен быть запрещён.
- Набор полей ввода для задания координат точки и радиуса области в соответствии с вариантом задания:
Radio {'-4','-3','-2','-1','0','1','2','3','4'}для координаты по оси X,Text (-5 ... 5)для координаты по оси Y, иRadio {'-4','-3','-2','-1','0','1','2','3','4'}для задания радиуса области. Если поле ввода допускает ввод заведомо некорректных данных (таких, например, как буквы в координатах точки или отрицательный радиус), то приложение должно осуществлять их валидацию. - Динамически обновляемую картинку, изображающую область на координатной плоскости в соответствии с номером варианта и точки, координаты которых были заданы пользователем. Клик по картинке должен инициировать сценарий, осуществляющий определение координат новой точки и отправку их на сервер для проверки её попадания в область. Цвет точек должен зависить от факта попадания / непопадания в область. Смена радиуса также должна инициировать перерисовку картинки.
- Таблицу со списком результатов предыдущих проверок.
- Ссылку, по которой аутентифицированный пользователь может закрыть свою сессию и вернуться на стартовую страницу приложения.
- Все результаты проверки должны сохраняться в базе данных под управлением СУБД
Oracle. - Для доступа к БД необходимо использовать
Spring Data.
- Платформа
Java EE. Спецификации и их реализации. - Принципы
IoC,CDIиLocation Transpanency. Компоненты и контейнеры. - Управление жизненным циклом компонентов. Дескрипторы развёртывания.
Java EE API. Виды компонентов. Профили платформыJava EE.- Компоненты
EJB.Stateless&StatefulSession 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: клиент-серверное взаимодействие, создание, отправка и валидация данных форм.
Экспорт переменных окружения:
export $(cat .env | xargs)
База данных:
docker compose up
Запуск back-end:
./gradlew genJaxb
./gradlew bootRun
Запуск front-end:
cd frontend
npm run dev
Проект доступен с открытым исходным кодом на условиях Лицензии MIT. Авторские права 2023 Max Barsukov
Поставьте звезду ⭐, если вы нашли этот проект полезным.

