Skip to content

golubtsoff/webstore

Repository files navigation

Тестовое задание на разработку Web-приложения простого интернет-магазина

Цель: соискание должности на позицию Java Developer в организацию Playtox
Автор решения - Голубцов Евгений

Постановка задачи

Общее описание

Необходимо реализовать Web приложение простого интернет-магазина.
Перед началом реализации задания необходимо выполнить структурную декомпозицию работ (WBS) и дать оценку трудозатрат и времени выполнения задачи.

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

  • Архитектура - Apache Tomcat, Hibernate, MySQL. Плюсом будет использование Spring Framework и Apache Wicket.
  • Должна быть система логирования (на основе готового решения, например Log4j). Приложение должно логировать в файл любые действия, приводящие к изменению данных. Приложение должно корректно обрабатывать и логировать ошибки.
  • Приложение должно устойчиво работать в многопользовательской среде под высокой нагрузкой (от 10 тыс. запросов в минуту).

Структура данных

В приложении должны быть следующие сущности, содержащие поля:

Пользователь

  • ID
  • Имя (логин)
  • Пароль
  • Роль (пользователь или администратор)

Товар

  • ID
  • Название
  • Описание
  • Цена
  • Количество на складе

Покупка

  • ID
  • ID пользователя
  • ID товара
  • Дата покупки
  • Цена покупки
  • Количество единиц товара

Функции администратора

Администратор должен иметь возможность:

  • Входить в систему
  • Смотреть список товаров
  • Создавать/редактировать/удалять товар
  • Смотреть список совершенных покупок

Функции пользователя

Пользователь должен иметь возможность:

  • Регистрироваться
  • Входить в систему
  • Смотреть список товаров
  • Совершать покупку (см. примечание)

Примечание: При совершении покупки, изменяется значение поля “Количество на складе” сущности товар, создается новая сущность “Покупка”.

Используемые технологии

JavaSE 8, Hibernate, JSP, JSTL, JUnit, Tomcat, MySQL, H2, Maven, HTML

Сборка и запуск программы

Сборка программы выполняется в war-файл инструментами IDE. При сборке следует дополнительно к зависимостям Maven подключить библиотеки из папки web/WEB-INF/lib

База данных

Выбор базы данных - MySQL или H2 - осуществляется в файле src/main/resources/database.properties

По умолчанию работа приложения настроена на базу данных H2 (в режиме работы embedded). Для работы с MySQL следует раскомментировать в файле соответствующие строчки и прописать настройки подключения к БД. Настройки подключения к БД H2 следует при этом закомментировать.
Приложение работает в тестовом режиме, то есть после перезапуска все данные будут восстановлены.

Для включения рабочего режима следует в файле database.properties заменить строку
hibernate.hbm2ddl.auto=create-drop
на строку
hibernate.hbm2ddl.auto=update
При этом свойству hibernate.show_sql рекомендуется выставить значение false

Для упрощения проверки работы приложения файл webstore.war уже собран и приложен к проекту.
Ознакомиться с работой приложения можно на сайте: https://webstore-playtox.herokuapp.com

Для входа под учётной записью администратора следует использовать:

  • login - root
  • password - 123

About

Test task "Web Store" (java-8 hibernate jsp jstl tomcat mysql h2 maven junit html)

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages