Michael Chus 728bc06a05 feat: implement background task system with notifications
- Added background task manager with goroutine execution and panic recovery
- Replaced SSE streaming with background task execution for:
  * Price recalculation (RecalculateAll)
  * Stock import (ImportStockLog)
  * Pricelist creation (CreateWithProgress)
- Implemented unified polling for task status and DB connection in frontend
- Added task indicator in top bar showing running tasks count
- Added toast notifications for task completion/error
- Tasks automatically cleaned up after 10 minutes
- Tasks show progress (0-100%) with descriptive messages
- Updated handler constructors to receive task manager
- Added API endpoints for task status (/api/tasks, /api/tasks/:id)

Fixes issue with SSE disconnection on slow connections during long-running operations
2026-02-08 20:39:59 +03:00
2026-02-08 08:57:52 +03:00
2026-02-08 08:57:52 +03:00
2026-02-07 21:42:26 +03:00
2026-02-07 21:42:26 +03:00
2026-02-08 08:57:52 +03:00
2026-02-08 08:57:52 +03:00
2026-02-08 08:57:52 +03:00
2026-02-08 08:57:52 +03:00

PriceForge

PriceForge — администратор цен и прайслистов для работы с данными MariaDB.

Текущее состояние проекта:

  • Runtime: MariaDB-only
  • Режим запуска: fail-fast (если БД недоступна на старте, сервер завершается)
  • Основной интерфейс: /admin/pricing
  • Порт по умолчанию: 8084

Возможности

  • Администрирование цен компонентов
  • Управление прайслистами (Estimate / Склад / Конкуренты)
  • Импорт складских данных
  • Алерты по ценам и свежести данных
  • Диагностика подключения к БД в UI (online/offline индикатор)

Требования

  • Go 1.22+
  • MariaDB / MySQL с доступом к рабочей базе (например RFQ_LOG)

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

  1. Подготовить конфиг:
cp config.example.yaml config.yaml
  1. Проверить параметры в config.yaml:
  • server.port (по умолчанию 8084)
  • database.host
  • database.port
  • database.name
  • database.user
  • database.password
  1. Запустить сервер:
make run

или

go run ./cmd/pfs
  1. Открыть:

Миграции

Запуск миграций:

go run ./cmd/pfs -migrate

При обычном запуске SQL-миграции из migrations/ также проверяются автоматически.

Сборка

make build
make build-release
make build-all

Проверка версии:

./bin/pfs -version

Release-артефакты

Скрипт сборки релиза:

./scripts/release.sh

Он создает архивы в releases/<version>/ и файл SHA256SUMS.txt.

Запуск на macOS

После скачивания бинарника может сработать Gatekeeper. Выполните:

xattr -d com.apple.quarantine /path/to/pfs-darwin-arm64

После этого бинарник запустится без предупреждения Gatekeeper.

Основные команды Makefile

make run           # запуск dev-сервера
make build         # локальная сборка
make build-release # релизная сборка
make build-all     # кросс-компиляция для Linux/macOS/Windows
make test          # тесты
make clean         # очистка артефактов

Важно

Проект сейчас не использует SQLite в runtime-потоке сервера pfs. Все ключевые операции выполняются напрямую через MariaDB.

Description
No description provided
Readme 261 MiB
Languages
Go 47.2%
CSS 25.1%
JavaScript 16%
HTML 11.3%
Makefile 0.2%
Other 0.2%