Цель: соискание должности на позицию 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