Современное Electron приложение для управления штрих-кодами и упаковкой товаров
Cider Code App — это десктопное приложение для автоматизации процессов сканирования штрих-кодов, упаковки товаров и печати этикеток. Приложение предназначено для складских операций и производства, обеспечивая seamless интеграцию с различными типами сканеров и принтеров.
- Поддержка различных типов сканеров через последовательные порты (COM)
- Автоматическое обнаружение и подключение к сканерам
- Поддержка DataMatrix кодов
- Real-time валидация отсканированных данных
- Поддержка различных типов принтеров:
- Системные принтеры Windows
- USB принтеры этикеток (Zebra, SATO, Datamax и др.)
- Сетевые принтеры (TCP/IP)
- Принтеры на последовательных портах
- Печать в формате ZPL (Zebra Programming Language)
- Генерация штрих-кодов Code 128
- Автоматическое создание SSCC кодов
- Создание и управление рабочими сменами
- Отслеживание процесса упаковки товаров
- Подсчет отсканированных единиц
- Верификация упаковок по SSCC кодам
- Backup и восстановление данных
- Гибкая настройка устройств
- Сохранение конфигураций принтеров и сканеров
- Настройка параметров упаковки
- Управление операторами
- Electron 36.2.1 - Кроссплатформенная среда
- React 19.1.0 - UI библиотека
- TypeScript 5.8.3 - Типизированный JavaScript
- Gravity UI - Компоненты интерфейса
- React Query - Управление состоянием сервера
- Zustand - Управление клиентским состоянием
- React Router - Маршрутизация
- SASS - Стили
- Electron Store - Локальное хранение данных
- SerialPort - Работа с COM портами
- USB - Работа с USB устройствами
- Axios - HTTP клиент
- JSBarcode - Генерация штрих-кодов
- Webpack - Сборка проекта
- ESLint 9.x - Статический анализ кода (современный flat config)
- Prettier - Форматирование кода
- Electron Forge - Упаковка и дистрибуция
- OS: Windows 10/11, macOS, Linux
- Node.js: 22+
- Yarn: 1.22+ (рекомендуется)
# Клонирование репозитория
git clone <repository-url>
cd cider-code-app
# Установка зависимостей
yarn install
# Или с npm
npm install# Запуск приложения
yarn start
# Или с npm
npm start# Создание пакета приложения
yarn package
# Создание установщика
yarn make
# Публикация
yarn publishsrc/
├── app/ # Основной код приложения
│ ├── components/ # React компоненты
│ │ ├── DeviceCheckScreen/ # Экран проверки устройств
│ │ ├── ScanScreen/ # Экран сканирования
│ │ ├── ShiftsScreen/ # Управление сменами
│ │ ├── PrinterSelect/ # Выбор принтера
│ │ └── ...
│ ├── api/ # API клиенты и запросы
│ ├── hooks/ # Пользовательские React хуки
│ ├── services/ # Бизнес-логика
│ ├── store/ # Управление состоянием (Zustand)
│ ├── types/ # TypeScript типы
│ └── utils/ # Утилиты
├── assets/ # Статические ресурсы
├── printer.ts # Модуль работы с принтерами
├── serialPortConfig.ts # Конфигурация COM портов
└── index.ts # Точка входа приложения
# Разработка
yarn start # Запуск в режиме разработки
yarn rebuild # Пересборка нативных модулей
# Линтинг и форматирование
yarn lint # Проверка кода ESLint
yarn lint:fix # Автоисправление ESLint
yarn prettier # Проверка форматирования
yarn prettier:fix # Автоформатирование
yarn format # Форматирование + линтинг
# Сборка и упаковка
yarn package # Создание пакета
yarn make # Создание установщика
yarn publish # Публикация- Любые сканеры с интерфейсом RS-232/USB-to-Serial
- Автоматическое определение COM портов
- Поддержка различных скоростей передачи данных
- Zebra (GK420t, GX420t, ZD420, и др.)
- SATO
- Datamax-O'Neil
- TSC
- Citizen
- Brother
- Epson
- Любые принтеры с поддержкой ZPL
- Проверка устройств - Настройка и тестирование сканеров и принтеров
- Управление сменами - Создание и просмотр рабочих смен
- Сканирование - Основной экран для работы с товарами
- Детали смены - Подробная информация о текущей смене
- Упаковка - Процесс упаковки и создания SSCC кодов
- Локальное хранение данных с помощью Electron Store
- Валидация всех входящих данных
- Безопасная работа с USB и COM портами
- Автоматическое резервное копирование
Проект использует автоматическую систему релизов на основе semantic-release:
- Бета-релизы: создаются при мерже в ветку
release-beta - Продакшн релизы: создаются при мерже в ветку
release-stable
v1.0.1- patch релиз (исправления)v1.1.0- minor релиз (новые функции)v2.0.0- major релиз (breaking changes)v1.1.0-beta.1- бета релиз
См. RELEASE_GUIDE.md для подробной информации.
- Fork репозитория
- Создайте feature branch (
git checkout -b feature/amazing-feature) - Внесите изменения и добавьте тесты
- Используйте Conventional Commits для сообщений
- Push в branch (
git push origin feature/amazing-feature) - Создайте Pull Request в
main
- Используется ESLint 9.x с современным flat config
- Prettier для форматирования
- TypeScript для типизации
- Conventional Commits для сообщений коммитов
- Semantic Release для автоматических релизов
Этот проект лицензирован под MIT License - см. файл LICENSE для деталей.
Vladislav Bogatyrev
- Email: [email protected]
Если вы нашли ошибку, пожалуйста, создайте issue с подробным описанием проблемы.
Для получения поддержки:
Разработано с ❤️ для автоматизации складских процессов
Этот проект использует GitHub Actions для автоматической сборки и публикации релизов.
release-stable→ Production релизы (VITE_APP_ENV=production)release-beta→ Beta релизы (VITE_APP_ENV=beta)
Workflow автоматически устанавливает правильные переменные окружения:
NODE_ENV=production
VITE_APP_ENV=production
APP_INSTANCE_ID=bottle-code-app-prod-ciNODE_ENV=production
VITE_APP_ENV=beta
APP_INSTANCE_ID=bottle-code-app-beta-ciДля работы логирования в CI необходимо настроить секреты в GitHub. См. GITHUB_SECRETS_SETUP.md для подробных инструкций.
Проект использует conventional commits и semantic-release:
feat:→ minor версияfix:→ patch версияBREAKING CHANGE:→ major версияbetaканал для тестированияstableканал для production
