Техническое задание (ТЗ) на разработку P2P раздела для мобильного приложения
Общие требования
1. Платформа: мобильное приложение на Flutter (Android/iOS).
2. Бэкенд: асинхронный REST API с хранением данных в SQLite (асинхронный доступ).
3. Авторизация через Telegram.
4. Асинхронность для всех запросов.
Функционал P2P раздела
1. Купить DEL
• Пользователь вводит сумму в DEL или рублях для покупки.
• Автоматически отображаются доступные ордера на продажу, отсортированные по выгоде (курс, объём, свежесть).
• Возможность выбрать ордер вручную из списка.
• Поддержка частичного исполнения — если необходимый объём больше остатка ордера.
2. Продать DEL
• Аналогично разделу купить — ввод суммы на продажу.
• Автоматический подбор ордеров на покупку по выгодной цене.
• Ручной выбор ордера.
• Поддержка частичного исполнения.
3. Создать ордер
• Пошаговая форма создания ордера с параметрами:
o Тип ордера: купить/продать.
o Процент цены относительно рыночного курса от -15% до 15%.
o Лимит суммы в рублях.
o Статус: online/offline.
o Номер карты (если не указан).
o Комментарий.
• Возможность редактирования и отмены ордера.
Логика работы и управление ордерами
1. Ордеры содержат следующие поля:
• ID, user_id, тип (buy/sell), объём (amount), цена (price), статус (active, closed, cancelled, partially_executed), исходный объём и поле остатка amount_left.
2. Сделки (deals) создаются между парой пользователей (продавец и покупатель).
3. Поддержка частичного исполнения ордеров:
• Если объём сделки меньше остатка ордера — создаётся сделка, остаток уменьшается, статус меняется на «частично исполнен».
• Если объём равен остатку — ордер считается «исполнен полностью».
4. История частичных сделок доступна в деталях ордера.
5. В интерфейсе показывается прогресс (сколько исполнено и сколько осталось).
6. При невозможности закрыть полный объём — пользователь информируется о доступном остатке и может согласиться на частичное исполнение или подобрать несколько ордеров.
Работа с комиссиями
1. Комиссия 3% от суммы сделки списывается с реализованного объёма DEL.
2. Из комиссии 50% распределяется между дольщиками, 50% — идёт на счёт сервиса.
3. Комиссия учитывается при создании записи в таблице commissions с полями: deal_id, amount, to_shareholders, to_service, created_at.
Уведомления Telegram-бота
1. Telegram-бот интегрируется для информирования пользователей о важных событиях:
• Оповещения об исполнении части или всей сделки (например, «Исполнено 25 DEL из ордера №1234. Остаток: 75 DEL.»).
• Уведомления об изменении статуса ордера (создан, частично исполнен, исполнен, отменён).
• Возможность получать сообщения о новых выгодных ордерах.
2. Настройка пользовательских уведомлений с возможностью включения/отключения.
3. Логирование ошибок и операций для мониторинга работы бота.
Интерфейс (UI) и UX (Flutter)
1. Основное меню с тремя кнопками: «Купить DEL», «Продать DEL», «Создать ордер».
2. Экран «Купить DEL»:
• Поиск и отображение выгодных ордеров.
• Фильтрация и сортировка.
3. Экран «Продать DEL» — аналогично.
4. Экран «Создать ордер»:
• Пошаговая форма с валидацией введённых данных.
• Отображение статуса ордера.
5. Подробный экран ордера:
• Информация о статусе, исполнении, остатке.
• История сделок.
• Кнопки изменения и отмены.
6. Уведомления в приложении и через Telegram-бот о статусах сделок и ордеров.
Требуемая структура базы данных (SQLite)
1. Таблица orders:
• id (PRIMARY KEY)
• user_id
• type (buy/sell)
• amount
• amount_left (остаток)
• price
• status (active/closed/cancelled/partially_executed)
• created_at
2. Таблица deals:
• id (PRIMARY KEY)
• order_id (FOREIGN KEY)
• buyer_id
• seller_id
• amount_executed
• price
• created_at
3. Таблица commissions:
• id (PRIMARY KEY)
• deal_id (FOREIGN KEY)
• amount
• to_shareholders
• to_service
• created_at
Технические требования к бэкенду
1. Асинхронный Python-бэкенд (FastAPI/Starlette).
2. Эндпоинты для:
• Создания, редактирования, удаления ордеров.
• Получения списка ордеров с фильтрами (тип, курс, объём, статус).
• Создания сделок с проверками частичного исполнения.
• Учёта и распределения комиссий.
3. Интеграция с Telegram авторизацией и Telegram-ботом для уведомлений.
4. Логи операций и ошибок.
Сроки и цена (ориентировочно)
1. Срок: 7-8 рабочих дней.
2. Стоимость: 22 000 ₽ (MVP с базовой логикой).
3. Возможные расширения:
• Уведомления Telegram-бота (расширенные).
• История сделок.
• Система рейтингов.
• Арбитраж и разрешение споров.
Опубликован 27.09.2025 в 10:37 Последнее изменение: 26.09.2025 в 21:30
Заказ находится в архиве