Skip to content

obkaiter/SCTradeManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SCTradeManager

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

Быстрый старт

1. Клонировать репозиторий

git clone <repo-url>
cd SCTradeManager

2. Создать виртуальное окружение

Windows:

py -3 -m venv venv
venv\Scripts\activate

Linux/macOS:

python3 -m venv venv
source venv/bin/activate

3. Установить зависимости

В проекте нет отдельного requirements.txt, поэтому минимальная установка выглядит так:

pip install django openpyxl

4. Настроить базу данных

По умолчанию проект использует SQLite. Если файла config.json нет, база будет создана как db.sqlite3 в корне проекта.

Можно указать свой путь к базе:

{
  "database": {
    "path": "C:\\Users\\username\\Documents\\SCTradeManager\\db.sqlite3"
  }
}

5. Применить миграции

python manage.py migrate

6. Запустить сервер

python manage.py runserver

После запуска откройте:

http://127.0.0.1:8000

На Windows также можно использовать start.bat, если виртуальное окружение находится в папке venv.

Импорт из Excel

В проекте есть команда для переноса данных из 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/

Модели данных

Item

Основная запись сделки:

  • название предмета;
  • цена покупки;
  • цена продажи;
  • дата покупки;
  • дата продажи;
  • количество.

Прибыль считается как разница между ценой продажи и ценой покупки.

Expense

Накладные расходы за конкретную дату. Используются при расчете чистой прибыли.

FleshPrice

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

PriceItem

Предметы, за которыми нужно следить в аналитике цен. Для каждого хранится цена за 24 часа и количество продаж за 24 часа.

Проверка проекта

Запуск тестов:

python manage.py test

Проверка Django-конфигурации:

python manage.py check

Для чего подходит

SCTradeManager полезен, если вы:

  • закупаете предметы для перепродажи;
  • хотите видеть реальную прибыль после расходов;
  • ведете несколько однотипных лотов;
  • хотите понимать, какие позиции продаются лучше;
  • хотите быстро сверяться с актуальными рыночными ценами;
  • раньше вели учет в Excel и хотите перейти на веб-интерфейс.

Статус

Проект ориентирован на локальное использование. В настройках уже предусмотрены базовые production-флаги через переменные окружения, но перед публикацией в интернет нужно отдельно настроить секретный ключ, домены, HTTPS, хранение логов и зависимости.

About

Веб-приложение для учета покупок, продаж и прибыли по предметам в игре Stalzone

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors