Skip to content

Valzavator/Servlet_Svynarchuk_Periodicals

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Periodicals

ОПИСАНИЕ ПРОЕКТА:

19. Система Периодические издания.

Администратор осуществляет ведение каталога периодических Изданий. Читатель может оформить Подписку, предварительно выбрав периодические Издания из списка. Система подсчитывает сумму для оплаты и регистрирует Платеж.

Общие требования:

  • На основе сущностей предметной области создать классы их описывающие.
  • Классы и методы должны иметь отражающую их функциональность названия и должны быть грамотно структурированы по пакетам.
  • Информацию о предметной области хранить в БД. В качестве СУБД рекомендуется MySQL.
  • Приложение должно поддерживать работу с кириллицей (быть многоязычной), в том числе и при хранении информации в БД.
  • Код должен быть документирован.
  • Приложение должно быть покрыто Юнит-тестами.
  • Cобытия в системе обрабатывать с помощью Log4j.
  • В приложении необходимо реализовать Pagination, Transaction в зависимости от Вашего проекта.
  • Приложение должно корректно реагировать на ошибки и исключения разного рода (Пользователь никогда не должен видеть stack-trace на стороне front-end).
  • В приложении должна быть реализована система Авторизации и Аутентификации.

Servlets:

  • Для доступа к данным использовать API JDBC с использованием пула соединений, стандартного или разработанного самостоятельно.
  • При разработке бизнес логики использовать сессии и фильтры.
  • Используя сервлеты и JSP, реализовать функциональности, предложенные в постановке конкретной задачи.
  • В страницах JSP применять библиотеку JSTL.

Архитектура проекта (Servlets)

  • Архитектура приложения должна соответствовать шаблону ModelView-Controller.
  • webapp.
  • Сборка приложения происходит при помощи Maven / Gradle (Уметь собирать проект через консоль, не только нажимая зелёную кнопку Run).
  • При реализации алгоритмов бизнес-логики использовать шаблоны:
    • GoF (Factory Method, Command, Builder, Strategy, State, Observer etc.);
    • SOLID – понимать что это и применить в проекте;
    • GRASP – по желанию

Инструкции по установке

  1. Скачать или клонировать проект с репозитория используя команду:

git clone https://github.com/Valzavator/Servlet_Svynarchuk_Periodicals.git

  1. Установить на локальную машину:

Инструкция по запуску приложения на локальномом устройстве

  1. В MySQL создать базу данных и сгенерировать начальные данные с помощью скриптов mysql_script.sql и generate_data.sql в resources/script/*.
  2. Для досупа приложения к базе данных в файле META_INF/context.xml вставить свой логин, пароль напротив полей username и password;
  3. Запустить Tomcat (на выбор):
    • с помощою скрипта $CATALINA_HOME/bin/startup.sh (для *nix) или $CATALINA_HOME/bin/startup.bat (для Windows)
    • (для виндовс) с помощью исполняемых файлов Tomcat9.exe или Tomcat9.exe
  4. В корневой папке проекта выполнить mvn tomcat7:deploy (или mvn tomcat7:redeploy, если Tomcat уже имеет war-файл в исходной директории);
  5. В браузере перейти по ссылке http://localhost:8080/app - страница приветствия приложения.

Как вариант, можно создать war-файл проекта с помощью команды mvn clean install, перетащить его в папку Tomcat'a - $CATALINA_HOME/bin/. Переименовать в ROOT.war с заменой существуещего. И перезапустить сервер.

Для пропуска тестов во время сборки приложения можно использовать флаг -DskipTests

Данные для входа в систему с ролью админа:

Результаты

ER-модель базы данных

modules.png

Интерфейс пользователя

mainPage.PNG

signUp.PNG

signIn.PNG

catalog.PNG

periodical.PNG

cart.PNG

subscriptions.PNG

failed.PNG

profile.PNG

adminCatalog.PNG

addPeriodical.PNG

addIssue.PNG

payments.PNG

paymentOverview.PNG