Курсовой проект SMarket

Содержание

Слайд 2

Описание проекта Проект SMarket представляет собой интернет-магазин товаров повседневного спроса. Платформа

Описание проекта

Проект SMarket представляет собой интернет-магазин товаров повседневного спроса.
Платформа имеет удобный

интерфейс, где все товары разделены по категориям.
Благодаря простой навигации, пользователю не составит труда определиться с выбором товара.
Слайд 3

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

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

если товар его заинтересовал он может ознакомиться с  подробным описанием.
Администратор магазина со своей стороны может добавлять товары, изменить цену на товар, назначить или удалить цену, сняв товар с продажи.
В дальнейшем планируется добавить функционал покупки и резервирования товара.
Слайд 4

Проект SMarket

Проект SMarket

Слайд 5

Панель администратора

Панель администратора

Слайд 6

Техническая часть Интернет-магазин SMarket - проект, основанный на микросервисной архитектуре. Каждый

Техническая часть

Интернет-магазин SMarket - проект, основанный на микросервисной архитектуре. Каждый микросервис

выполняет определённый функционал. Проект включает в себя пять сервисов взаимосвязанных между собой через REST, а также через брокер сообщений Apache Kafka.
Сервис обеспечивающий работу с товарами (Stock-Service)
Сервис отвечающий за ценообразование товаров (Price-Service)
Слайд 7

Сервис обеспечивающий работу с авторизацией пользователей (User-Service) Фронтовое приложение для вывода

Сервис обеспечивающий работу с авторизацией пользователей (User-Service)
Фронтовое приложение для вывода

товаров (Market-Front-App)
Фронтовое приложения для администрирования цен, добавления/удаления товаров (Admin-Front-App)
Слайд 8

Stock-service Spring Boot приложение с подключением к базе данных PostgreSQL .

Stock-service

Spring Boot приложение с подключением к базе данных PostgreSQL .
Сервис хранит

описание товаров: цена, название, категория, количество, производитель и др. Позволяет создавать, редактировать, резервировать, удалять товары, получать информацию о товарах.
Подключение к базе данных происходит через стандарт JDBC. Структура базы данных создается при помощи Liquibase.
Данный сервис использует программного брокера сообщений Apache Kafka для оперативного уведомления об удалении, добавлении, изменении состояния товара.
Слайд 9

API сервиса GET /stock/item?itemId={itemId} GET /stock/item/all/byCategory?categoryId={categoryId} GET /stock/сategory/all GET /stock/item/all POST

API сервиса

GET /stock/item?itemId={itemId}
GET /stock/item/all/byCategory?categoryId={categoryId}
GET /stock/сategory/all
GET /stock/item/all
POST /stock/item
POST /stock/reserve?itemId={itemId}&count={count}
POST /stock/unreserve?itemId={itemId}&count={count}
PUT /stock/item
DELETE

/stock/item?itemId={itemId}
Ссылка на репозиторий:
//TODO добавить ссылку на репозиторий
Слайд 10

Price-service Сервис отвечающий за ценообразование товаров. Spring Boot приложение с подключением

Price-service

Сервис отвечающий за ценообразование товаров.
Spring Boot приложение с подключением к

базе данных PostgreSQL с использованием библиотеки Hibernate.
Структура базы данных создается при помощи Liquibase.
Данный сервис использует программного брокера сообщений Apache Kafka для оперативного уведомления об удалении, добавлении, изменении состояния цены на товар.
Слайд 11

API сервиса GET /price?itemId={itemId} DELETE /price?itemId={itemId} PUT /price/all GET /price/all PUT

API сервиса

GET /price?itemId={itemId}
DELETE /price?itemId={itemId}
PUT /price/all
GET /price/all
PUT /price
Ссылка на репозиторий:
//TODO добавить

ссылку на репозиторий
Слайд 12

User-service Сервис представляет собой Spring Boot приложение, которое обеспечивает работу с

User-service

Сервис представляет собой Spring Boot приложение, которое обеспечивает работу с учётными

записями пользователей.
Информация о пользователях хранится в базе данных PostgreSQL. Взаимодействие с базой данных осуществляется посредством Spring Data.
Слайд 13

API сервиса GET /auth/user/byUserId?userId={userId} GET /auth/user/byLogin?login={login} DELETE /auth/user/user?userId={userId} POST /auth/user PUT

API сервиса

GET /auth/user/byUserId?userId={userId}
GET /auth/user/byLogin?login={login}
DELETE /auth/user/user?userId={userId}
POST /auth/user
PUT /auth/user
GET /auth/user/all
GET /auth/user/all/byRoles?roles={roles}
Ссылка на репозиторий:


//TODO добавить ссылку на репозиторий
Слайд 14

Market-front-app Фронтовое приложение реализует пользовательский интерфейс и позволяет клиенту ознакомиться со

Market-front-app

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

товаров. Источником данных является stock-service и price-service, взаимодействие осуществляется через REST.
Данный сервис оперативно реагирует на изменение списка товаров и цен на них, вычитывая сообщения из Apache Kafka;
Слайд 15

GET market/category/all GET market/item/all/byCategory?categoryId={categoryId} Ссылка на репозиторий: //TODO добавить ссылку на репозиторий API сервиса

GET market/category/all
GET market/item/all/byCategory?categoryId={categoryId}
Ссылка на репозиторий:
//TODO добавить ссылку на репозиторий

API сервиса

Слайд 16

Admin-front-app Фронтовое приложения для администрирования цен, добавления/удаления товаров. Источником данных является

Admin-front-app

Фронтовое приложения для администрирования цен, добавления/удаления товаров. Источником данных является stock-service

и price-service, взаимодействие осуществляется через REST.
Данный сервис оперативно реагирует на изменение списка товаров и цен на них, вычитывая сообщения из Apache Kafka;
Вход в административную панель осуществляется с использованием Spring Security.
Слайд 17

API сервиса GET admin/item/all PUT admin/item/price?itemId={itemId}&price={price} DELETE admin/item/price?itemId={itemId} POST admin/item Ссылка

API сервиса

GET admin/item/all
PUT admin/item/price?itemId={itemId}&price={price}
DELETE admin/item/price?itemId={itemId}
POST admin/item
Ссылка на репозиторий:
//TODO добавить ссылку

на репозиторий
Слайд 18

stock-service price-service admin-front-app market-front-app user-service Price Item User Kafka Kafka Kafka

stock-service

price-service

admin-front-app

market-front-app

user-service

Price

Item

User

Kafka

Kafka

Kafka

Kafka

JDBC

Spring
Data

Hibernate

Item Cache

Price Cache

Item Cache

Price Cache

SMarket

Spring Security

Архитектура

Слайд 19

Используемые технологии JDBC Liquibase Kafka JUnit Mockito Git

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

JDBC
Liquibase
Kafka
JUnit
Mockito
Git

Слайд 20

Spring Boot Spring MVC Spring Rest Template Spring Data Spring Security Hibernate

Spring Boot
Spring MVC
Spring Rest Template
Spring Data
Spring Security
Hibernate

Слайд 21

ДЕМО //TODO адрес сервера - Admin-front-app //TODO адрес сервера - Market-front-app

ДЕМО

//TODO адрес сервера - Admin-front-app
//TODO адрес сервера - Market-front-app

Слайд 22

Команда проекта //TODO перечислить участников проекта Куратор проекта Мартынец Александр

Команда проекта
//TODO перечислить участников проекта
Куратор проекта Мартынец Александр

Слайд 23

ФИО участника //TODO коротко о себе (образование, опыт, увлечение и пр.,

ФИО участника

//TODO коротко о себе (образование, опыт, увлечение и пр., опыте

работы в Сбере и контакты (слева место для фото)
Слайд 24

Участие в проекте «SMarket» //TODO что сделал для проекта //Example User-service.

Участие в проекте «SMarket»

//TODO что сделал для проекта
//Example User-service. Назначен ответственным

за этот сервис. Мной реализован API для получения списка всех пользователей, соответствующий ему слой бизнес логики и слой доступа к данным.
Слайд 25

О проекте ПЕРЕЗАГРУЗКА //TODO Отзыв участника о проекте

О проекте ПЕРЕЗАГРУЗКА

//TODO Отзыв участника о проекте