SCTradeManager - веб-приложение для учета покупок, продаж и прибыли по предметам в игре Stalzone. Проект помогает вести торговый журнал, быстро обновлять сделки, учитывать накладные расходы и смотреть, какие предметы реально приносят деньги.
Приложение сделано как личный рабочий инструмент для торговли: минимум лишних экранов, максимум быстрых действий в таблице.
- Вести список предметов с ценой покупки, ценой продажи, количеством и датами.
- Считать прибыль по каждой сделке и общую прибыль за выбранный период.
- Учитывать накладные расходы и показывать чистую прибыль.
- Показывать сумму, зарезервированную в непроданных предметах.
- Фильтровать сделки по датам и названию.
- Скрывать проданные предметы одним переключателем.
- Сортировать таблицу по названию, цене, количеству, датам и прибыли.
- Редактировать поля прямо в таблице через AJAX без перезагрузки страницы.
- Копировать название предмета кликом.
- Добавлять дубликаты лота при создании записи.
- Вести отдельный список расходов.
- Работать с закупкой "мякоти": хранить цены, считать сумму и быстро добавлять позиции.
- Смотреть аналитику прибыли по дням и по предметам.
- Отслеживать среднюю цену продажи за сутки и количество продаж через данные stagnate.ru.
- Импортировать старые данные из Excel.
Главный экран проекта. Здесь находится таблица сделок в стиле Excel:
- название предмета;
- цена покупки;
- количество;
- цена продажи;
- дата покупки;
- дата продажи;
- прибыль;
- удаление записи.
Верхний блок показывает финансовую сводку за выбранный период: прибыль, расходы, резерв и чистый результат.
Экран с графиками на Chart.js:
- оборот;
- накладные расходы;
- зарезервированная сумма;
- прибыль по дням;
- прибыль по предметам;
- средняя прибыль по каждому предмету.
Отдельная таблица для наблюдения за рыночными ценами:
- средняя цена продажи за 24 часа;
- цена после комиссии 5%;
- количество продаж за сутки;
- обновление данных для всех выбранных предметов.
Данные подтягиваются из API stagnate.ru. Если внешний сервис недоступен или предмет не найден, в таблице отображается N/A.
- Python
- Django
- SQLite
- Bootstrap 5
- Bootstrap Icons
- Chart.js
- JavaScript с AJAX-запросами
- openpyxl для импорта Excel
git clone <repo-url>
cd SCTradeManagerWindows:
py -3 -m venv venv
venv\Scripts\activateLinux/macOS:
python3 -m venv venv
source venv/bin/activateВ проекте нет отдельного requirements.txt, поэтому минимальная установка выглядит так:
pip install django openpyxlПо умолчанию проект использует SQLite. Если файла config.json нет, база будет создана как db.sqlite3 в корне проекта.
Можно указать свой путь к базе:
{
"database": {
"path": "C:\\Users\\username\\Documents\\SCTradeManager\\db.sqlite3"
}
}python manage.py migratepython manage.py runserverПосле запуска откройте:
http://127.0.0.1:8000
На Windows также можно использовать start.bat, если виртуальное окружение находится в папке venv.
В проекте есть команда для переноса данных из Excel:
python manage.py import_excel path/to/file.xlsxПолезные режимы:
python manage.py import_excel path/to/file.xlsx --dry-run
python manage.py import_excel path/to/file.xlsx --no-clear--dry-runпоказывает результат без записи в базу.--no-clearне очищает существующие предметы и расходы перед импортом.
Команда ожидает, что дата находится в названии листа Excel, а данные предметов начинаются со второй строки.
SCTradeManager/
├── manage.py
├── start.bat
├── config.json
├── sctrademanager/
│ ├── settings.py
│ ├── urls.py
│ ├── asgi.py
│ └── wsgi.py
└── items/
├── models.py
├── services.py
├── forms.py
├── urls.py
├── views/
├── templates/items/
├── static/items/
├── templatetags/
├── management/commands/
└── migrations/
Основная запись сделки:
- название предмета;
- цена покупки;
- цена продажи;
- дата покупки;
- дата продажи;
- количество.
Прибыль считается как разница между ценой продажи и ценой покупки.
Накладные расходы за конкретную дату. Используются при расчете чистой прибыли.
Текущие закупочные цены для разных видов мякоти и комментарий к ним.
Предметы, за которыми нужно следить в аналитике цен. Для каждого хранится цена за 24 часа и количество продаж за 24 часа.
Запуск тестов:
python manage.py testПроверка Django-конфигурации:
python manage.py checkSCTradeManager полезен, если вы:
- закупаете предметы для перепродажи;
- хотите видеть реальную прибыль после расходов;
- ведете несколько однотипных лотов;
- хотите понимать, какие позиции продаются лучше;
- хотите быстро сверяться с актуальными рыночными ценами;
- раньше вели учет в Excel и хотите перейти на веб-интерфейс.
Проект ориентирован на локальное использование. В настройках уже предусмотрены базовые production-флаги через переменные окружения, но перед публикацией в интернет нужно отдельно настроить секретный ключ, домены, HTTPS, хранение логов и зависимости.