Кейс SimpleIT · 2024
NECCO
INVENTORY
Система управления складом, продажами и финансами для оптовой овощной базы. Работает без интернета, устанавливается на телефон без App Store, генерирует документы на русском и турецком.
3,5
Месяца до продакшна
8
Модулей учёта
PWA
Без App Store
1,5+
Года в продакшне
Клиент
Оптовая база
Овощи, турецкие поставщики
Период
Дек 2023 — Март 2024
+ поддержка 2024–2025
Тип работы
С нуля
Корпоративная система учёта
01
Контекст и задача
Склад за городом.
Интернет зависает.
Ситуация
Ручной учёт + нестабильная связь
Компания по оптовой торговле овощами. Работает с поставщиками из Турции — принимает партии мандаринов, лимонов, клубники, кабачков, продаёт оптом российским покупателям. База расположена за городом — интернет постоянно зависает. Учёт вели вручную. Облачные решения не работали: при обрыве связи данные терялись или дублировались.
Задача для SimpleIT
Система, которая работает без интернета
Разработать веб-приложение для полного складского учёта: партии, продажи, касса, платежи, долги клиентов. Обязательно: работа без интернета с синхронизацией, установка на телефон без магазинов приложений, двуязычный экспорт документов — русский интерфейс и турецкоязычные накладные для партнёров.
Ситуация
Ручной учёт + нестабильная связь
Оптовая база за городом. Турецкие поставщики. Интернет постоянно зависает — облачные решения не работают.
Задача
Офлайн-система учёта
Партии, продажи, касса, долги. Без интернета. Без App Store. Русский + турецкий экспорт.
02
Вызовы и решения
С чем столкнулись
и как справились
Вызов 1
Работа без интернета
База за городом с нестабильным соединением. При обрыве связи данные не сохранялись или дублировались — одна и та же партия записывалась дважды, что ломало учёт.
→
Решение
PWA + Service Worker + защита от дублей
Всё состояние хранится локально — данные не теряются при отключении. Service Worker обслуживает приложение из кеша. При восстановлении интернета — автоматическая синхронизация. Защита от дублей на уровне логики сохранения.
Вызов 2
Двуязычные документы
Компания работает с турецкими поставщиками. Накладные и отчёты нужны на турецком — российский интерфейс для сотрудников, турецкоязычные документы для партнёров.
→
Решение
Два названия + TIR SATIŞ RAPORU
Товары хранятся с двумя названиями — русским и турецким. PDF по партиям генерируется в формате TIR SATIŞ RAPORU на турецком: названия товаров, полей и заголовков. Отдельный экспорт на русском.
Вызов 3
Мобильная доступность без App Store
Сотрудники работают с телефонов. Публикация в App Store и Google Play — долго, дорого и требует регулярного обслуживания.
→
Решение
PWA — иконка на рабочем столе
Устанавливается на телефон и компьютер прямо из браузера. Иконка на рабочем столе, открывается как нативное. Интерфейс адаптирован: горизонтальный скролл таблиц, прокручиваемые вкладки.
Вызов 4
Производительность на больших объёмах
Тысячи строк продаж, партий, кассовых операций. Стандартный рендеринг таблиц при таких объёмах работает медленно.
→
Решение
Виртуализация таблиц
Все таблицы реализованы с виртуализацией — в DOM отрисовываются только видимые строки. Прокрутка больших списков остаётся быстрой вне зависимости от объёма данных.
Вызов 5
Экспорт в несколько форматов
Разным получателям нужны документы в разных форматах: бухгалтерия — Excel, партнёры — PDF, мессенджеры — картинки.
→
Решение
PDF, XLS и PNG одной кнопкой
Ключевые разделы поддерживают экспорт в PDF, XLS и PNG. Счёт для клиента выгружается в любом из трёх форматов одной кнопкой — без копирования данных вручную.
Вызов 1
Без интернета
При обрыве связи данные дублировались или терялись.
→
Решение
PWA + Service Worker
Локальное хранение, автосинхронизация, защита от дублей.
Вызов 2
Два языка
Турецким партнёрам нужны накладные на их языке.
→
Решение
TIR SATIŞ RAPORU
Двуязычные товары, PDF на турецком и русском.
Вызов 3
Без App Store
Сотрудники работают с телефонов.
→
Решение
PWA
Устанавливается из браузера, открывается как нативное.
Вызов 4
Тысячи строк
Стандартные таблицы тормозят.
→
Решение
Виртуализация
Только видимые строки в DOM.
Вызов 5
Разные форматы
Бухгалтерия, партнёры, мессенджеры.
→
Решение
PDF, XLS, PNG
Одной кнопкой в любой формат.
03
Функционал
8 модулей
учёта
Склад
Партии
Входящие партии от поставщиков: компания, номер, госномер авто, таможня, доставка (РФ + Турция), комиссия. Внутри — список товаров с ящиками и весом в кг.
Торговля
Продажи
Отгрузки покупателям с привязкой к партии и контрагенту. Ящики, кг, цена, сумма. Фильтрация и выделение строк с автоподсчётом суммы по выборке.
Финансы
Должники
Автоматический расчёт задолженности по каждому клиенту из данных продаж, кассы и платежей. Цветовая индикация. Экспорт в PDF и XLS.
Финансы
Касса
Приход и расход с привязкой к контрагенту. Автозаполнение «кто заполнял» по залогиненному пользователю. Архив отдельно.
Финансы
Платежи
Безналичные платежи: дата, контрагент, номер, сумма, банк, отправитель. Архив отдельно.
Документы
Счета
Генерация счёта за выбранный день. Экспорт в PDF, XLS и PNG одной кнопкой.
Справочники
Контрагенты
Клиенты, сотрудники, прочие — с телефонами, типами и ответственными менеджерами. Редактирование, архивация.
Справочники
Товары
Номенклатура с двуязычными названиями — русским и турецким. Используется во всех разделах.
Склад
Партии
Входящие партии: поставщик, таможня, доставка, товары с ящиками и весом.
Торговля
Продажи
Отгрузки с привязкой к партии. Фильтрация, автоподсчёт суммы.
Финансы
Должники
Автоматический расчёт задолженности. Цветовая индикация.
Финансы
Касса
Приход и расход с автозаполнением пользователя.
Финансы
Платежи
Безналичные платежи: дата, контрагент, банк, сумма.
Документы
Счета
Экспорт в PDF, XLS и PNG одной кнопкой.
Справочники
Контрагенты
Клиенты, сотрудники — с телефонами и менеджерами.
Справочники
Товары
Двуязычная номенклатура: русский + турецкий.
04
Экраны
Живые экраны
продукта
05
Выделенная фича
Офлайн-режим
с защитой от дублей
Главная техническая сложность — не функциональность, а надёжность в условиях плохой связи. Стандартный подход «отправил запрос — получил ответ» не работает, когда интернет обрывается в середине операции. Пользователь нажимает «сохранить», соединение пропадает, он нажимает ещё раз — и в базе появляются два одинаковых поступления.
- Все действия сохраняются локально — данные не теряются даже при полном отключении от сети
- Service Worker перехватывает запросы и обслуживает приложение из кеша — страницы работают без интернета
- При восстановлении соединения — автоматическая синхронизация с сервером
- Защита от дублей на уровне логики сохранения — повторное нажатие не создаёт вторую запись
Сотрудники работают в привычном режиме вне зависимости от качества интернета. Учёт не останавливается, данные не теряются и не задваиваются.
Результат для клиента
06
Технологии
Стек,
на котором держится
Frontend
Next.js 14
React 18 + TypeScript — SSR, маршрутизация, типизация
UI
Material UI v5
Таблицы, формы, модальные окна — с виртуализацией строк
Офлайн
PWA / Workbox
Service Worker — кеширование, работа без интернета, установка на устройство
Состояние
Redux Toolkit
Redux Persist — локальное хранение при офлайн-режиме
База данных
PostgreSQL
Партии, продажи, касса, платежи, должники — реляционная модель
ORM
Prisma 5
Миграции схемы, типобезопасные запросы
Хостинг
Vercel + DO
Vercel — деплой приложения. DigitalOcean — сервер БД ($8/мес)
Документы
jsPDF + ExcelJS
Генерация PDF (русский + турецкий) и XLS-отчётов на клиенте
Next.js
React
TypeScript
Material UI
PWA
Service Worker
Redux
PostgreSQL
Prisma
Vercel
DigitalOcean
jsPDF
ExcelJS
07
Команда и хронология
Кто работал
над проектом
Project Manager
PM
Коммуникация с клиентом, демо и созвоны, координация разработки
Руководитель
Руководитель проекта
Коммерция: счета, акты, переговоры по доработкам
Lead Dev
Разработчик
Вся разработка: архитектура, функциональность, деплой, поддержка
Разработчик
Разработчик
Доработки отдельных модулей, фиксы
Период
Декабрь 2023
Старт разработки
Архитектура, база данных, PWA-оболочка, офлайн-режим, справочник контрагентов
Период
Янв — Фев 2024
Основная функциональность
Склад, продажи, касса, платежи, должники, счета, авторизация, экспорт PDF и XLS
Период
Март 2024
Финальная доводка и релиз
Мобильная адаптация, виртуализация таблиц, турецкоязычный экспорт, миграция на продакшн-сервер, передача доступов
Итог
2024–2025
Поддержка и доработки
Клиент вернулся дважды: лето 2024 — расширение функциональности, осень 2025 — обслуживание БД по мере роста записей
08
Результаты
Что сдали
3,5
Месяца
от старта до продакшна
8
Модулей
учётных разделов — от склада до должников
4
Человека
в команде SimpleIT
1,5+
Года
в продакшне — работает по сей день
Офлайн
Работает без интернета
PWA + Service Worker. Данные не теряются при обрыве связи. Автоматическая синхронизация. Защита от дублей.
Документы
Два языка, три формата
Русский интерфейс + турецкоязычные накладные TIR SATIŞ RAPORU. Экспорт в PDF, XLS и PNG одной кнопкой.
Долгосрочно
Клиент вернулся дважды
Лето 2024 — расширение функциональности. Осень 2025 — обслуживание БД. Лучший показатель того, что продукт прижился в работе.
Работаем с вами
Нужна система
под ваши условия?
Разрабатываем корпоративные системы учёта и веб-продукты с нуля. Умеем работать со специфическими условиями — нестабильный интернет, мультиязычность, мобильные устройства без App Store.
SIMPLEIT