/online-pharmacy

Curs project - Online pharmacy ProPill

Primary LanguageJava

REST API для онлайн-аптеки ProPill

Проект представляет собой REST API для онлайн-аптеки. Реализация web-приложения для работы с API.

Схема базы данных

propill_scheme

Механика работы онлайн-аптеки

В рамках онлайн-аптеки выделяются 4 категории пользователей:

  • неавторизованные пользователи
  • авторизованные пользователи
  • врачи
  • фармацевты(администраторы онлайн-аптеки)

В рамках онлайн-аптеки выделяются 3 категории препаратов:

  • общие(доступны для заказа всеми категориями пользователей)
  • рецептурные
  • специальные(доступны только врачам определённой специальности)

Карточка препарата

Карточка препарата содержит в себе изображение, наименование товара, стоимость, производитель, способ применения, тип. Введены следующие ограничения на формат этих полей:

  • наименование, изготовитель: длина не более 100 символов латиницы/кириллицы/цифр/+тире/+процент
  • стоимость: положительное число
  • способ применения: не более 500 символов
  • размер изображений не превышает 5 Мб

Корзина

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

Аптека для самовывоза

Получение заказов реализуется в аптеках самовывоза. Для каждой аптеки указывается название, адрес, контактный номер телефона, часы работы. Также ведется учет о наличии препаратов в аптеках.

Заказ

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

Стек технологий

Java Apache Maven Spring Swagger Postgres Backblazeb2

Запуск и установка

Для запуска необходимо ввести следующие данные в resources/application.properties

Переменная Описание
spring.datasource.username Имя пользователя в PostgreSQL
spring.datasource.password Пароль пользователя PostgreSQL
bucketUrl Ссылка на bucket в Backblazeb2
userAgent Имя пользователя в Backblazeb2
appKey applicationKey в Backblazeb2
appKeyId keyID в Backblazeb2
bucketId Bucket ID в Backblazeb2