Domain suspended or not configured

If you are the administrator and believe this is an error on our side, please check your BunnyCDN account configuration or contact customer support.

Нужны Python-бэкенд-разработчик и Веб-разработчик (/Django + Frontend) | fseek.ru
На главную

Нужны Python-бэкенд-разработчик и Веб-разработчик (/Django + Frontend)

<ol><li><p>Внимание! Большая часть работы готова, нужно только все собрать вместе! <br><br><br><b>Существует готовый Python-код бота</b>, который умеет:</p><ul><li><p>Выполнять логику торговли (DCA, ReBuy, SL, Trailing и т.д.), написан с использованием библиотеки <code>ccxt</code>.</p></li><li><p>Работает «вживую» с реальными ордерами.</p></li></ul></li><li><p><b>Нужно развернуть многопользовательскую систему</b>, где каждый пользователь в своём кабинете может:</p><ul><li><p>Зарегистрировать/авторизоваться (логин и пароль).</p></li><li><p>Добавить/отредактировать свои API-ключи (Binance, KuCoin и т.д.).</p></li><li><p>Запустить «несколько экземпляров бота» (каждый с настройками: торговая пара, параметры SL/TP/DCA и пр.).</p></li><li><p>Отслеживать состояние бота(ботов): логи, статистику, открытые/закрытые сделки.</p></li></ul></li><li><p><b>Есть сервер на Ubuntu</b>, где всё должно работать:</p><ul><li><p>Планируется использовать Python (Django или другой веб-фреймворк на Python) для Личного кабинета.</p></li><li><p>Бэкэнд (бот) нужно интегрировать с веб-приложением (запуск/остановка/мониторинг).</p></li><li><p>Запуск «множества экземпляров» бота под одним сервером (или несколькими, если будет масштабирование).</p></li></ul></li><li><p><b>Требуется</b>:</p><ul><li><p>ТЗ для <b>Python-бэкенд-разработчика</b>, который доработает код бота, обеспечит возможность запускать несколько экземпляров, хранить их настройки, логику взаимодействия с базой.</p></li><li><p>ТЗ для <b>веб-разработчика (Django + Frontend)</b>, который создаст личный кабинет, авторизацию и привяжет к боту (через REST API, Celery, системные процессы или иные механизмы).</p></li></ul></li></ol>2. Техническое задание (черновой вариант)2.1. Python-бэкенд-разработчик<p><b>Задачи:</b></p><ol><li><p><b>Доработать код существующего бота</b>:</p><ul><li><p>Разделить «бэктестовую» часть и «онлайн-часть» (реальные ордера).</p></li><li><p>Уточнить, где и как хранить конфигурацию торговых параметров (SL/TP/Trailing, период ожидания и т.п.).</p></li><li><p>Добавить (или адаптировать) функционал для работы с <b>различными API-ключами</b> — чтобы бот мог обращаться к разным аккаунтам на биржах (Binance, KuCoin и пр.).</p></li><li><p>Оптимизировать работу с <code>ccxt</code> (Rate Limit, повторные попытки при ошибках и т.д.).</p></li></ul></li><li><p><b>Сделать архитектуру, позволяющую запускать несколько экземпляров бота</b>:</p><ul><li><p>Проработать, как именно будет запускаться бот:</p><ul><li><p>как отдельный процесс/сервис (например, через Celery, systemd или Supervisor),</p></li><li><p>или многопоточность/мультипроцессность в рамках одного приложения Python.</p></li></ul></li><li><p>Обеспечить независимость параметров (API-ключи, настройки) для каждого экземпляра.</p></li><li><p>Прописать методы (или API) для <i>запуска</i>, <i>остановки</i> и <i>мониторинга</i> каждого экземпляра.</p></li></ul></li><li><p><b>Интеграция с базой данных</b>:</p><ul><li><p>Определить структуру таблиц в СУБД (например, PostgreSQL):</p><ul><li><p><code>users</code> (пользователи),</p></li><li><p><code>bots</code> (экземпляры бота с полями: пользователь, настройки, статус, PID/идентификатор и т.д.),</p></li><li><p><code>bot_logs</code> (логи или результаты/сделки).</p></li></ul></li><li><p>Предусмотреть хранение в таблицах основных метрик/статусов: время запуска, текущий баланс, торговая пара и т.д.</p></li><li><p>При необходимости обеспечивать сохранение логов в текстовые файлы + сохранение ссылок на них в БД или S3.</p></li></ul></li><li><p><b>API или сервисный модуль</b> (для веб-приложения):</p><ul><li><p>Создать методы/функции, которые позволят Django-приложению «вызывать» действия бота: <code>start_bot(...)</code>, <code>stop_bot(...)</code>, <code>get_bot_status(...)</code> и т.п.</p></li><li><p>Возвращать информацию о текущих сделках, ордерах, ошибках.</p></li><li><p>Формат взаимодействия: REST (JSON), gRPC или вызов Python-функций напрямую (зависит от архитектуры).</p></li></ul></li><li><p><b>Безопасность и обработка ошибок</b>:</p><ul><li><p>Аутентификация/авторизация (каждый бот привязан к конкретному пользователю).</p></li><li><p>Обработка ошибок при подключении к бирже (например, неверные API-ключи).</p></li><li><p>Логи (в том числе исключений/ошибок) + документация, где смотреть эти логи.</p></li></ul></li></ol>2.2. Веб-разработчик (Django + Frontend)<p><b>Задачи:</b></p><ol><li><p><b>Создать личные кабинеты</b>:</p><ul><li><p>Регистрация/авторизация пользователей (e-mail + пароль или другое).</p></li><li><p>Раздел «профиль» (добавление/редактирование API-ключей).</p></li><li><p>Технически, Django предоставляет встроенную систему auth, можно расширить её модель <code>User</code>.</p></li></ul></li><li><p><b>Интерфейс управления ботами</b>:</p><ul><li><p>Страница «Мои боты»: список всех экземпляров (название, статус, торговая пара).</p></li><li><p>Кнопка «Создать бота» (открывается форма ввода параметров: торговая пара, SL, TP, DCA и т.д.).</p></li><li><p>Кнопка «Запустить» / «Остановить» и ручные действия (пр. «Закрыть все позиции»), если это предусмотрено логикой бота.</p></li><li><p>Отображение <b>логов</b> и <b>статистики</b> по конкретному боту (PNL, дата запуска, время последнего действия).</p></li></ul></li><li><p><b>Интеграция с бэкендом (ботом)</b>:</p><ul><li><p>Вызывать методы API (или Python-функции), предоставленные Python-бэкенд-разработчиком:</p><ul><li><p><code>POST /api/bots/start</code> — запуск</p></li><li><p><code>POST /api/bots/stop</code> — остановка</p></li><li><p><code>GET /api/bots/&lt;bot_id&gt;/status</code> — получение статуса</p></li><li><p>и т.д.</p></li></ul></li><li><p>Принимать ответы (JSON) и обновлять интерфейс (через Ajax, fetch, axios, или штатные средства Django).</p></li><li><p>Обрабатывать возможные ошибки (неправильные ключи, нет ответа от биржи).</p></li></ul></li><li><p><b>Frontend-часть</b>:</p><ul><li><p>Сделать <b>адаптивный дизайн</b> (под десктоп и мобайл) — хотя бы базовый.</p></li><li><p>Использовать Django Templates или «современный» фреймворк (React/Vue) в связке с Django Rest Framework — по согласованию.</p></li><li><p>Если нужно графически отображать результаты, удобнее использовать готовые JS-библиотеки для графиков (Chart.js, Highcharts и т.д.).</p></li></ul></li><li><p><b>Безопасность и хранение ключей</b>:</p><ul><li><p>Веб-приложение должно передавать и хранить API-ключи безопасно. Как минимум — шифровать пароли в базе, не хранить ключи в виде открытого текста.</p></li><li><p>Настроить HTTPS (SSL-сертификат).</p></li><li><p>Возможно, 2FA (двухфакторная аутентификация) в будущем, если требуется повышенная безопасность.</p></li></ul></li><li><p><b>Структура БД</b>:</p><ul><li><p>Модель <code>User</code> (возможно, расширенная).</p></li><li><p>Модель <code>BotInstance</code> (поля: owner (User), status, параметры, дата запуска, PID и т.д.).</p></li><li><p>Модель <code>BotLog</code> или хранение логов в файлах (по согласованию).</p></li></ul></li><li><p><b>Развёртывание</b>:</p><ul><li><p>Запуск Django-приложения под gunicorn / uwsgi.</p></li><li><p>Настройка Nginx в качестве reverse proxy.</p></li><li><p>Подготовить документацию, как развернуть на Ubuntu.<br><br>Внимание! Большая часть работы готова, нужно только все собрать вместе! </p></li></ul></li></ol>