From f9a27f557b8b6fd747f83dc3536bcee20497ab2e Mon Sep 17 00:00:00 2001 From: NW Date: Wed, 13 Nov 2024 22:38:27 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b3ba3ba..d52f34b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,72 @@ -# sb1-tqdsuw +Техническое задание для создания магазина в Telegram +Описание проекта: -[Edit in StackBlitz next generation editor ⚡️](https://stackblitz.com/~/github.com/SoftUniq/sb1-tqdsuw) \ No newline at end of file +Проект представляет собой создание бота для торговой платформы в Telegram, который будет поддерживать следующие функции: управление продуктами и категориями товаров, фильтрация продуктов по географическому положению пользователя, покупки с автоматическим списанием средств со счета пользователя, пополнение баланса через криптовалюту, импорт/экспорт данных и настройка в конфиг-файле. +Используемые технологии: + + Язык программирования: Golang + База данных: SQLite3 + Среда разработки контейнеров: Docker + +1. Сущности (Entities) +1.1 Пользователь (User) + + ID: уникальный идентификатор пользователя. + balance: баланс пользователя. + +1.2 Категории товаров и товары + + Categories: + ID: уникальный идентификатор категории. + Название: название категории. + Products: + ID: уникальный идентификатор продукта. + Описание: текстовое описание продукта. + Цена: цена за единицу товара (float). + Количество: количество доступных товаров (integer). + Геолокация (longitude, latitude): координаты местоположения товара. + Скрытые данные: + Фото скрытое: дополнительное изображение товара (для пользователей после покупки). + Описание скрытое: дополнительная информация для пользователей после покупки. + Флаг оплаты (is_paid): указывает, что платеж за продукт был проведен. + +1.3 Локации + + Страна: уникальный идентификатор страны. + Город: название города. + Район города: название района внутри города. + +1.4 Кошельки для пополнения баланса (Wallets) + + Тип монеты: тип криптовалюты (Bitcoin, Monero, Litecoin и т.д.). + Массив кошельков по каждому типу монеты. + +2. Отображение товара + +Продукты отображаются в зависимости от выбранного радиуса и города. Если координаты продукта попадают в указанный радиус, продукт будет показан пользователю. +3. Процесс покупки + + Пользователь выбирает город. + Продукты фильтруются по выбранному городу и отображаются пользователю. + После успешной покупки средства списываются с баланса пользователя, продукт считается проданным (снимается единица из количества), и пользователю показывается скрытое фото и описание. + +4. Пополнение баланса + +При пополнении через криптовалюту: + + Виджет предлагает сумму для пополнения. + Выбирается кошелек для конкретного типа монеты из массива доступных кошельков. + После пополнения бот проверяет транзакцию каждую минуту до тех пор, пока средства не поступят на кошелек. + +5. Настройки + + Конфиг файл: хранит все необходимые для работы бота параметры (например, пути к базам данных, API ключи, прокси и т.д.) + База данных: SQLite3 + +6. Импорт/Экспорт товаров + +Товары будут импортироваться из CSV файла и экспортироваться обратно при необходимости обновления. +7. Работа в контейнере Docker + + Бот запускается внутри Docker-контейнера. + Конфигурационные файлы передаются контейнеру через переменные окружения или тома Docker. \ No newline at end of file