Wirehouse
2026Складской и кассовый учёт для оптовой торговли
- Задача
- Оптовая продуктовая торговля живёт двумя вопросами: что лежит на складе и почём оно обошлось, и где деньги — кто нам должен, у какого продавца на руках наличные, что осталось после расходов. И всё это в двух валютах сразу.
- Моя роль
- Соло, весь стек: API на Symfony, клиент на Vue, плюс сборка под Android через Capacitor, десктоп через Electron и печать чеков по ESC/POS. На API — 127 файлов тестов.
- Сложность
- Деньги никогда не float и никогда не суммируются между валютами. Продажи раскладываются по партиям FIFO, четыре журнала только на добавление хранят каждое движение — отмена дописывает обратную строку, а не правит историю. Каждое проведение берёт пессимистичные блокировки в фиксированном порядке, чтобы два одновременных запроса не потратили одни и те же деньги дважды.
- Бэкенд
- PHP 8.3Symfony 7.3API Platform 4Doctrine ORM 3PostgreSQL 15JWTPHPUnit
- Фронтенд
- Vue 3PiniaTailwind 4ViteCapacitorElectronESC/POS
- Инфра
- DockerNginx
● вход в демо одним кликом




