Skip to content

VorobevOleg/scrum-team-project

 
 

Repository files navigation

Проект командной разработки по методологии Scrum

Интернет-магазин MstMarket

android-chrome-256x256.png

Цель

За 6 спринтов (по неделе каждый) расширить возможности проекта, который взяли за основу у одного из 8 участников. Расширение интернет-магазина новым функционалом происходит на основании предпочтений заказчика в виде job-story и user-story.

Интернет-магазин предоставляет любому посетителю следующие возможности:

  • просматривать каталог товаров с возможностью фильтрации товаров по цене, названию и категории;
  • просматривать карточки товаров с подробным их описанием и изображением;
  • просматривать отзывы о товарах и среднюю оценку покупателей по каждому товару;
  • регистрироваться в качестве нового покупателя, если посетитель не вошёл в магазин;
  • входить в магазин в случае наличия личного кабинета;
  • пользоваться корзиной;
  • помещать товары в Избранное и удалять их оттуда.

Интернет-магазин предоставляет менеджерам следующие возможности:

  • редактировать состав товаров и их свойства:
    • редактировать карточку товара с подробным описанием его потребительских свойств;
    • удалять товар из каталога;
    • создавать новые карточки товаров с подробным описанием их потребительских свойств;
  • делать email-рассылки о возврате товаров в продажу после временного их отсутствия;
  • загружать и удалять изображения товаров.

Интернет-магазин предоставляет администраторам следующие возможности:

  • просматривать список пользователей магазина;
  • блокировать, разблокировать доступ конкретным пользователям к магазину;
  • удалять отзывы покупателей о товарах.

Интернет-магазин предоставляет супер админу следующие возможности:

  • назначать роли администраторам и менеджерам.

Интернет-магазин предоставляет покупателям следующие возможности:

  • пользоваться личным кабинетом;
  • просматривать и редактировать свои персональные данные:
    • Ф.И.О.;
    • адрес электронной почты;
    • изменять пароль;
    • просматривать:
      • своё имя пользователя (ник);
      • кем владелец личного кабинета является в магазине;
    • загружать и просматривать свой аватар;
  • оставлять и редактировать свои отзывы;
  • создавать, просматривать и удалять свои заказы;
  • подписываться на уведомления о поступлении временно отсутствующих товаров в продажу.

Пользователь интернет-магазина может быть менеджером, администратором и покупателем одновременно. Супер админ обладает всеми правами менеджера, администратора и покупателя. Супер админ не может быть заблокирован.


Пользовательские роли:

  • покупатель;
  • менеджер;
  • администратор;
  • супер админ;
  • гость.

Покупатель просматривает товары из каталога, добавляет их в корзину, оформляет и просматривает свои заказы, может подписаться на email-рассылку о возврате временно отсутствующего товара в продажу. Это зарегистрированный пользователь, прошедший процедуру аутентификации. Менеджер добавляет новые товары, редактирует, удаляет из каталога существующие и делает рассылку о возврате товаров в продажу, подписавшимся на это пользователям. Администратор занимается модерацией отзывов покупателей о товарах, блокирует пользователей, нарушающих правила интернет-магазина. Супер админ назначает менеджеров и администраторов, чтобы они управляли магазином. Гость просматривает товары из каталога, добавляет их в корзину, но не имеет возможности оформить заказ, потому что не зарегистрирован или не прошёл процедуру аутентификации.


Архитектура

архитектура

Технологии

В проекте используются следующие технологии:

  • AngularJS
  • Redis
  • Lombok
  • Java 17
  • Spring Boot
  • Spring Cloud Gateway
  • Spring Web Service
  • Spring WebFlux
  • Spring Security
  • Spring Data MongoDB
  • Spring Data Redis
  • Spring Data JPA
  • JUnit
  • Flyway Migration
  • MongoDB
  • Docker
  • PostgreSQL
  • Swagger
  • Maven
  • Java Mail Api

Запуск приложения

  • Запуск интернет-магазина в командной строке.

  1. git clone https://github.com/DVPeshe/Scrum.git
  2. cd Scrum
  3. mvn clean install
  4. docker-compose up -d
  5. Открыть в браузере http://localhost:3000/market-front
  • Запуск интернет-магазина в IntelliJ IDEA.

  1. git clone https://github.com/DVPeshe/Scrum.git
  2. Войти в проект с помощью IntelliJ IDEA.
  3. Выполнить команды maven clean install в IntelliJ IDEA.
  4. В IntelliJ IDEA в файле docker-compose.yml запустить postgres, redis, mongo и flyway.
  5. В IntelliJ IDEA во вкладке Services установить для каждого микросервиса профиль dev.
  6. Запустить все микросервисы из вкладки Services в IntelliJ IDEA.
  7. Открыть в браузере http://localhost:3000/market-front

Основные возможности проекта

  • Регистрация

Любой посетитель интернет-магазина, у которого нет личного кабинета, может зарегистрироваться, чтобы стать покупателем. регистрация

  • Личный кабинет

Пользователь, вошедший в интернет-магазин, может просматривать и редактировать свои персональные данные. личный кабинет

  • Уведомление подписавшихся пользователей о событиях интернет-магазина по электронной почте

Возможность подписки на событие появления товара в продаже после временного его отсутствия. После появления товара в продаже происходит массовая рассылка на электронную почту подписавшимся на это событие. Подписаться может любой зарегистрированный пользователь интернет-магазина.

подписка на рассылку подписка на рассылку 2

Инициирует рассылку менеджер в разделе редактирование продуктов.

оповещение о поступлении инициирование рассылки

Подписавшийся пользователь получает электронное письмо с уведомлением о возврате товара в продажу на указанный им электронный адрес.

получение электронного письма

  • Избранное

На странице каталога любой ползователь может добавить понравившийся товар в избранное

каталог избранное

На вкладке избранное пользователь может управлять своими товарами, находящимися в избранном: может добавлять их в корзину или удалить из избранного

избранное

  • Отзывы

Любой авторизованный пользователь может оставлять отзывы к товарам на странице карточки товара. Также любой пользователь может просматривать отзывы и видеть среднюю оценку товара, рассчитаную на основании оценок пользователей

отзывы

Пользователь с правами администратора может осуществоять модерацию отзывов и удалять те отзывы, которые содержат ненорматвную лексику или не соответствуют политике сайта

удаление отзывов

  • Изображения продуктов

Любой посетитель интернет-магазина видит у товара его изображение.

карточка товара для покупателя или гостя

У администрирующих пользователей есть возможность загружать и удалять изображения товаров.

карточка товара для администрирующего персонала

Загрузка изображения.

карточка товара для администрирующего персонала

Удаление изображения.

карточка товара для администрирующего персонала

  • Управление пользователями

Пользователь с правами генерального директора может управлять ролями пользователя, с правами администратора - осуществять бан пользователей.

панель управления пользователями

При нажатии на "Назначить права пользователю" открывается меню с управлением доступом, где можно назначить все роли кроме генерального директора. Роль покупателя назначается автоматически при регистрации и удаляется при бане, но вручную забрать и дать ее нельзя.

панель управления доступом

  • Управление продуктами

Пользователь с правами менеджера может осуществлять редактирование продуктов, создавать новые, выставлять и скрывать их из магазина, а также оповещать пользователей, как описано выше.

панель управления продуктами

При нажатии на "Редактировать" появляется панель для редактирования продуктов, где можно изменить параметры продукта.

обновление продукта

При нажатии на "Создать новый продукт" появляется панель для создания новых продуктов.

создание продукта

  • Корзина

Любой пользователь может добавить понравившийся продукт в корзину

каталог продуктов

Перейдя во вкладку "Корзина" можно регулирвоать количество и состав продуктов, а зарегистрировавшись можно оформить заказ. При регистрации продукты из гостевой корзины автоматически переходят в корзину авторизованного пользователя. Количество продуктов, которое можно внести в корзину, зависит от количества доступных продуктов на складе.

корзина

  • Мои заказы

Перейдя во вкладку "Мои заказы" можно увидеть все заказы учетной записи, сделанные ранее.

заказы

About

Командная разработка интернет магазина

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 72.0%
  • JavaScript 14.0%
  • HTML 12.9%
  • Other 1.1%