В задании требуется написать приложение, моделирующее работу информационной системы интерет магазина. Ниже более подробно описаны предметная область и технические требования.
Существуют следующие виды сущностей:
- Заказ
- Клиент
- Адрес клиента
- Способ оплаты (Наличный\По карте(дополнительно, сделать тривиальную эмуляцию платёжной системы))
- Способ доставки
- Товары
- Статус оплаты (ожидает оплаты\оплачен)
- Статус заказа (ожидает оплаты\ожидает отгрузки\отгружен\доставлен)
- Товар
- Название
- Цена
- Категория
- Параметры (брэнд\цвет\мощность\вес ...)
- Вес
- Объём
- Количество на складе
- Клиент
- Имя
- Фамилия
- Дата рождения
- Адрес электронной почты
- Пароль для личного кабинета
- Адрес клиента
- Страна
- Город
- Почтовый код
- Улица
- Дом
- Квартира
Приложение должно обеспечивать следующую функциональность:
- Для клиентов компании
- Просмотр каталога с возможностью фильтрации по параметрам
- Просмотр и редактирование профиля
- Информации
- Адресов
- Пароля
- Заказы
- Оформление заказа
- Просмотр истории заказов
- (Дополнительно) Повторить заказ
- Для сотрудников компании
- Заказы
- Просмотр
- Изменение статуса заказа (отгружен\доставлен\оплачен)
- Статистика продаж (топ 10 товаров, клиентов, выручка за месяц\неделю)
- Товары
- Добваление
- Создание и управление категориями каталога
- (Дополнительно) импорт из файла
- Заказы
При совершении покупки на каждой странице до оформления заказа должна отображаться корзина, в которой отображаются выбранные позиции пользователя. Корзина отображается как для гостя так и для авторизированного пользователя. Причём после авторизации содержимое корзины не теряется. После закрытия страницы корзина не очищается.
В итоге требуется получить многопользовательское приложение типа клиент-сервер с соединением по сети.
Все данные хранятся на стороне сервера. Каждый клиент может загружать некоторые данные, после каждой операции изменения данные должны быть синхронизованы с сервером.
Клиент должен иметь графический интерфейс.
Приложение должно обрабатывать аппаратные и программные ошибки.
Используемые технологии:
1 часть
• IDE - Any (Eclipse, IDEA, NetBeans)
• DB – MySQL 5.5+
• Maven 3.*
• JPA 2.0+
2 часть (включая предыдущие)
• AS – Glassfish 4.0
• EJB 3.1
• JSF 2
или
• SpringFramework
-
Функциональность работает (обязательно наличие UI)
-
Maven-based проект, разбитый на модули (билд одной командой, деплой одной командой)
-
Описаны интерфейсы предметной области
-
Подключена БД MySQL
-
Созданы сущности предметной области; маппинг на таблицы в БД
-
Работа с сущностями через DAO
-
Приложение развернуто на AS Glassfish* (актуально для 2й части)
-
Реализована обработка исключений
-
Подключено логгирование
-
Наличие technical solution description
-
Наличие unit-тестов на бизнес логику
Подключение любого фреймворка/библиотеки принимаются в зачет только при условии выполнения пунктов, описанных выше.
(https://github.com/Shide93/Javaschool_shopReport)
В задании требуется написать отдельное приложение, которое будет показывать отчет о продажах: сколько денег получено, топ товаров и клиентов: сколько процентов выручки они приносят.
- Приложение должно связываться с основным приложением через веб-сервис.
- Технологии приложения – EJB (или CDI), JSF.
- Отчет должен генерироваться в PDF.