Skip to content

KirillShakhov/Web.Lab4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Web.Lab4

GitHub stars GitHub issues GitHub GitHub repo size GitHub last commit

Variant 28254

pic

Дополнительные требования к приложению:

  • Все результаты проверки должны сохраняться в базе данных под управлением СУБД PostgreSQL.
  • Для доступа к БД необходимо использовать Spring Data.

Переписать приложение из предыдущей лабораторной работы с использованием следующих технологий:

Уровень back-end должен быть основан на Spring. Уровень front-end должен быть построен на React + Redux (необходимо использовать ES6 и JSX) с использованием набора компонентов Belle Взаимодействие между уровнями back-end и front-end должно быть организовано посредством REST API. Приложение по-прежнему должно включать в себя 2 страницы - стартовую и основную страницу приложения. Обе страницы приложения должны быть адаптированы для отображения в 3 режимах:

"Десктопный" - для устройств, ширина экрана которых равна или превышает 1169 пикселей. "Планшетный" - для устройств, ширина экрана которых равна или превышает 749, но меньше 1169 пикселей. "Мобильный"- для устройств, ширина экрана которых меньше 749 пикселей. Стартовая страница должна содержать следующие элементы:

"Шапку", содержащую ФИО студента, номер группы и номер варианта. Форму для ввода логина и пароля. Информация о зарегистрированных в системе пользователях должна храниться в отдельной таблице БД (пароль должен храниться в виде хэш-суммы). Доступ неавторизованных пользователей к основной странице приложения должен быть запрещён. Основная страница приложения должна содержать следующие элементы:

Набор полей ввода для задания координат точки и радиуса области в соответствии с вариантом задания: Radio {'-5','-4','-3','-2','-1','0','1','2','3'} для координаты по оси X, Spinner (-5 ... 3) для координаты по оси Y, и Radio {'-5','-4','-3','-2','-1','0','1','2','3'} для задания радиуса области. Если поле ввода допускает ввод заведомо некорректных данных (таких, например, как буквы в координатах точки или отрицательный радиус), то приложение должно осуществлять их валидацию. Динамически обновляемую картинку, изображающую область на координатной плоскости в соответствии с номером варианта и точки, координаты которых были заданы пользователем. Клик по картинке должен инициировать сценарий, осуществляющий определение координат новой точки и отправку их на сервер для проверки её попадания в область. Цвет точек должен зависить от факта попадания / непопадания в область. Смена радиуса также должна инициировать перерисовку картинки. Таблицу со списком результатов предыдущих проверок. Кнопку, по которой аутентифицированный пользователь может закрыть свою сессию и вернуться на стартовую страницу приложения. Дополнительные требования к приложению:

Все результаты проверки должны сохраняться в базе данных под управлением СУБД PostgreSQL. Для доступа к БД необходимо использовать Spring Data.


Вопросы к защите лабораторной работы:

  1. Платформа Java EE. Спецификации и их реализации.
  2. Принципы IoC, CDI и Location Transpanency. Компоненты и контейнеры.
  3. Управление жизненным циклом компонентов. Дескрипторы развёртывания.
  4. Java EE API. Виды компонентов. Профили платформы Java EE.
  5. Компоненты EJB. Stateless & Stateful Session Beans. EJB Lite и EJB Full.
  6. Работа с электронной почтой в Java EE. JavaMail API.
  7. JMS. Реализация очередей сообщений. Способы доставки сообщений до клиента. Message-Driven Beans.
  8. Понятие транзакции. Управление транзакциями в Java EE. JTA.
  9. Веб-сервисы. Технологии JAX-RS и JAX-WS.
  10. Платформа Spring. Сходства и отличия с Java EE.
  11. Модули Spring. Архитектура Spring Runtime. Spring Security и Spring Data.
  12. Реализация IoC и CDI в Spring. Сходства и отличия с Java EE.
  13. Реализация REST API в Java EE и Spring.
  14. React JS. Архитектура и основные принципы разработки приложений.
  15. Компоненты React. State & props. "Умные" и "глупые" компоненты.
  16. Разметка страниц в React-приложениях. JSX.
  17. Навигация в React-приложениях. ReactRouter.
  18. Управление состоянием интерфейса. Redux.
  19. Angular: архитектура и основные принципы разработки приложений.
  20. Angular: модули, компоненты, сервисы и DI.
  21. Angular: шаблоны страниц, жизненный цикл компонентов, подключение CSS.
  22. Angular: клиент-серверное взаимодействие, создание, отправка и валидация данных форм.

Как задеплоить лабу?(WildFly)

  1. Установка WildFly
  2. Деплой лабы
  3. Проброс портов для гелиоса
  4. Запуск в фоновом режиме
  5. Установка вашего portbase
  6. Установка datasource

Как задеплоить лабу?(glassfish)

  1. Создаём домен для лабы: $ asadmin create-domain --domaindir ~/glass --portbase 41414 lab2 где:

    • ~/glass -- путь до каталога, где вы хотите разместить свою лабу;
    • 41414 - число, от которого будут отсчитываться номера портов созданного домена. Проявите фантазию в выборе, чтоб не пересечься с другими студентами;
    • lab2 - название католога для веб-приложения (лабы).

    Сервер будет сконфигурирован. Заскриньте терминал: эти данные вам ещё понадобятся. Примерный вывод:

Using port 41462 for Admin.
Using port 41494 for HTTP Instance.
Using port 41490 for JMS.
Using port 41451 for IIOP.
Using port 41495 for HTTP_SSL.
Using port 41452 for IIOP_SSL.
Using port 41453 for IIOP_MUTUALAUTH.
Using port 41500 for JMX_ADMIN.
Using port 41480 for OSGI_SHELL.
Using port 41423 for JAVA_DEBUGGER.
  1. Запускаем созданный домен: $ asadmin start-domain --domaindir ~/glass lab2 (проверить его статус можно командой: $ asadmin list-domains --domaindir ~/glass)
  2. Так-как домены Glassfish недоступны снаружи, то необходимо пробросить порты через SSH-туннель. Заходим в консоль с своей машины и вводим: ssh -fNL 41462:127.0.0.1:41462 имяПользователяр@se.ifmo.ru -p 2222 После этого заходим на [127.0.0.1:41462] в браузере - должна отобразиться страница с приветствием Glassfish.
  3. Логинимся, деплоим приложение на вкладке application и пробрасывет порт для него (повторить пункт 3 с портом HTTP Instance).

Другие команды: $ asadmin stop-domain --domaindir ~/glass lab2 - остановить домен $ asadmin delete-domain --domaindir ~/glass lab2 - удалить домен

About

Лабораторная работа №4 Вариант:28254

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •