19. Система Периодические издания.
Администратор осуществляет ведение каталога периодических Изданий. Читатель может оформить Подписку, предварительно выбрав периодические Издания из списка. Система подсчитывает сумму для оплаты и регистрирует Платеж.
- На основе сущностей предметной области создать классы их описывающие.
- Классы и методы должны иметь отражающую их функциональность названия и должны быть грамотно структурированы по пакетам.
- Информацию о предметной области хранить в БД. В качестве СУБД рекомендуется MySQL.
- Приложение должно поддерживать работу с кириллицей (быть многоязычной), в том числе и при хранении информации в БД.
- Код должен быть документирован.
- Приложение должно быть покрыто Юнит-тестами.
- Cобытия в системе обрабатывать с помощью Log4j.
- В приложении необходимо реализовать Pagination, Transaction в зависимости от Вашего проекта.
- Приложение должно корректно реагировать на ошибки и исключения разного рода (Пользователь никогда не должен видеть stack-trace на стороне front-end).
- В приложении должна быть реализована система Авторизации и Аутентификации.
- Для доступа к данным использовать API JDBC с использованием пула соединений, стандартного или разработанного самостоятельно.
- При разработке бизнес логики использовать сессии и фильтры.
- Используя сервлеты и JSP, реализовать функциональности, предложенные в постановке конкретной задачи.
- В страницах JSP применять библиотеку JSTL.
- Архитектура приложения должна соответствовать шаблону ModelView-Controller.
- webapp.
- Сборка приложения происходит при помощи Maven / Gradle (Уметь собирать проект через консоль, не только нажимая зелёную кнопку Run).
- При реализации алгоритмов бизнес-логики использовать шаблоны:
- GoF (Factory Method, Command, Builder, Strategy, State, Observer etc.);
- SOLID – понимать что это и применить в проекте;
- GRASP – по желанию
- Скачать или клонировать проект с репозитория используя команду:
git clone https://github.com/Valzavator/Servlet_Svynarchuk_Periodicals.git
- Установить на локальную машину:
- В MySQL создать базу данных и сгенерировать начальные данные с помощью скриптов
mysql_script.sql
иgenerate_data.sql
вresources/script/*
. - Для досупа приложения к базе данных в файле
META_INF/context.xml
вставить свой логин, пароль напротив полейusername
иpassword
; - Запустить Tomcat (на выбор):
- с помощою скрипта
$CATALINA_HOME/bin/startup.sh (для *nix)
или$CATALINA_HOME/bin/startup.bat
(для Windows) - (для виндовс) с помощью исполняемых файлов
Tomcat9.exe
илиTomcat9.exe
- с помощою скрипта
- В корневой папке проекта выполнить
mvn tomcat7:deploy
(илиmvn tomcat7:redeploy
, если Tomcat уже имеет war-файл в исходной директории); - В браузере перейти по ссылке
http://localhost:8080/app
- страница приветствия приложения.
Как вариант, можно создать war-файл проекта с помощью команды
mvn clean install
, перетащить его в папку Tomcat'a -$CATALINA_HOME/bin/
. Переименовать вROOT.war
с заменой существуещего. И перезапустить сервер.
Для пропуска тестов во время сборки приложения можно использовать флаг
-DskipTests
Данные для входа в систему с ролью админа:
- email: admin@gmail.com
- password: admin