Skip to content

ElenaDanchenko/SA_Test_DB_API_BPMN_UML

Repository files navigation

Тестовое задание на позицию "Системный аналитик"

Скачать полное решение (PDF)


ERD диаграмма (Entity-Relationship) для БД "ORDERS"

Основные таблицы: orders - таблица заказов, customers - таблица покупателей, items - товары, towns - справочник адресов.

Технологический стек

  • СУБД: PostgreSQL 16
  • Средства разработки: DBeaver
  • Инструменты для тестирования API: Postman
Просмотр ERD диаграммы ERD Diagram

Sequence Diagram (UML) для сценария оформления заказа в интернет-магазине

Рассмотрены следующие сценарии: просмотр витрины товаров, просмотр детального описания товара, добавление товара в корзину.

Инструмент Draw.io

Просмотр Sequence Diagram ERD Diagram

Workflow пополнения баланса мобильного счета с использованием банковского приложения, установленного на смартфоне (BPMN 2.0)

Отображены основные этапы: авторизация в приложении, ввод ПИН-кода, ввод номера телефона и суммы, а также подтверждение транзакции. Также описаны альтернативные потоки: ошибка ввода ПИН-кода (3 попытки → блокировка), отмена операции на этапе ввода ПИН.

Инструмент StormBPMN
Просмотр PDF Workflow


Разработка REST API для реализации основных функций интернет-магазина: отображение витрины товаров, просмотр деталей товара и добавление товаров в корзину.

REST API

Details
Получение информации о витрине товаров

Данный эндпойнт позволяет запросить информацию для отображения витрины товаров.

Метод и путь

Метод Путь
GET /catalog

Поля ответа

Наименование Тип данных Описание
name string наименование товара
production string наименование производителя
price string цена товара
img_src string ссылка на изображение товара
id number уникальный идентификатор товара

Пример запроса

Используя curl:

curl \
http://127.0.0.1:1234/v1/catalog

{
  "catalog": [
    {
      "name": "Фигурка Эльвира",
      "production": "Neca",
      "price": "5000.0",
      "img_src": "images/figures/neca/34679",
      "id": 45678
    },
    {
      "name": "Фигурка Кендимен",
      "production": "Trick or Treat",
      "price": "4700.0",
      "img_src": "images/figures/trick_or_treat/89641",
      "id": 75678
    }
  ]
}
Details
Получение детальной информации о товаре

Данный эндпойнт позволяет запросить информацию для отображения детальной информации о товаре.

Метод и путь

Метод Путь
GET /details/item?id=:id
GET /details/item /:id

Параметры запроса

Наименование Тип данных Значение по умолчанию Обязательность Описание
id integer - + уникальный идентификатор товара

Поля ответа

Наименование Тип данных Описание
name string наименование товара
production string наименование производителя
price string цена товара
imgs_src array список ссылок на изображения товара
id number уникальный идентификатор товара
productType string тип продукта
size string размер товара
material string материал товара
modelNumber string наименование модели товара
description string описание товара

Пример запроса

Используя curl:

curl \
http://127.0.0.1:1234/v1/details/item?id=45678

Пример ответа:

    {
      "name": "Фигурка Эльвира",
      "production": "Neca",
      "price": "5000.0",
      "imgs_src": [
		"images/figures/neca/34679", 
		"images/figures/neca/34680",
           "images/figures/neca/34681",
		"images/figures/neca/34682",
        	"images/figures/neca/34683" 
	 ],
      "id": 45678,
      "productType": "Подвижная фигурка",
      "size": "18 см",
      "material": "Пластик, ткань",
      "modelNumber": "NC1437",
      "description": "В конце полнометражных приключений \"Эльвиры, 	повелительницы тьмы\", наша угарная героиня отыгрывает образ 	ныне экшн-пенсионеров, а тогда в 80-х звезд типа Арнольда и 	Сильвестра, вооружившись воинственной раскраской и мощной 	базукой - именно этот облик точнехонько воспроизвели NECA, уже 	выдавших идеальные версии фигурок Эльвиры.\n\n И тут без 	идеальности не обошлось, то же анатомически и пропорционально 	верное подвижное тело облачено в \"укороченный\" вариант 	тканевого платья, сменные лица все также превосходно 	скульптированы и окрашены цифровым образом, пышная прическа 	детализирована, ну а комплект содержит ту самую базуку и 	колдовской гримуар, который отлично будет смотреться и в руках 	других версий Эльвир"
    }
Details
Добавление товара в корзину

Этот эндпойнт позволяет добавить товар в корзину.

Метод и путь

Метод Путь
POST /cart

Параметры запроса

Наименование Тип данных Значение по умолчанию Обязательность Описание
cart_id number - + уникальный идентификатор корзины пользователя
item_id number - + уникальный идентификатор товара
quantity number 1 - количество единиц товара

Поля ответа

Наименование Тип данных Описание
success true/false статус выполнения запроса
remains_of_item number количество, оставшихся доступных для заказа единиц данного товара

Пример запроса

Используя curl:

curl \
-X POST \
-d '{
    "cart_id": 7601,
    "item_id": 45678,
    "quantity": 5
}'\
http://127.0.0.1:1234/v1/cart 

Пример ответа:
{
  "success": true,
  "remains_of_item": 5
}

About

Тестовое задание на позицию системного аналитика

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors