Газета "Качественные решения"
60 subscribers
127 photos
14 videos
13 files
23 links
Новости нашей небольшой команды ИТ-шников.
Download Telegram
Screencast_08.08.2025_11:57:27.webm
12.7 MB
🛠 Новая система управления рекламой на Wildberries для проекта заказчика

За последние месяцы часть команды разработки — в первую очередь Виталий — проделала большую работу над созданием отдельной веб-платформы для нашего заказчика работающего на Wildberries. Эта платформа станет основой для полноценной системы управления процессами работы на маркетплейсе.

🔍 Первый заметный результат — подробный отчет по управлению рекламой, который уже доступен и активно используется. Он включает в себя:

- Сводные данные по всем рекламным кабинетам;
- Возможность "проваливаться" на уровень отдельного кабинета;
- Далее — на уровень групп кампаний, отдельных кампаний, товаров в кампаниях;
- В будущем появится еще один уровень детализации — по ключевым словам в рамках каждого товара.

⚙️ Также прямо из отчета можно:

- Создавать и переименовывать группы кампаний.

📊 Но сам отчет — это лишь верхушка айсберга. За ним стоит огромная техническая работа:

- Сбор и агрегация данных из разных API Wildberries;
- Интеграция с рабочими Google Таблицами, с которыми работает команда заказчика;
- Объединение всего в единую MongoDB-базу, включая подробные данные вплоть до уровня отдельных заказов;
- Разработка логики, которая корректно суммирует и отображает все эти разнородные данные.

🎥 Выше — видео, демонстрирующее, как выглядит и работает текущая версия системы.
👍31
Улучшена интеграция IntraService и Zabbix

Недавно мы доработали интеграцию между IntraService и системой мониторинга Zabbix.

Раньше при повторном срабатывании тригера (например, если проблема исчезала и возникала снова) всегда создавалась новая заявка. В результате появлялись дубли, которые приходилось удалять вручную.

Теперь механизм работает умнее:

- если предыдущая заявка по этому инциденту ещё не закрыта, новая не создаётся — в комментарии к существующей автоматически добавляется информация о повторном срабатывании;
- заявки сразу же автоматически привязываются к соответствующим серверам (активам).

Это позволит быстрее ориентироваться в инцидентах, избавиться от лишний работы.
2
This media is not supported in your browser
VIEW IN TELEGRAM
Завершён важный этап проекта «Логистика ТК-Ямщик»

В сентябре мы успешно завершили очередной значимый этап проекта «Логистика ТК-Ямщик». Работы по нему стартовали ещё весной, и за это время нам удалось реализовать целый ряд изменений, которые серьёзно расширяют возможности системы:
- Миграция системы учёта транспортировки грузов. Теперь можно разделять грузоместа одного заказа и отправлять их разными рейсами и маршрутами. Для этого пришлось серьёзно переработать внутреннюю логику системы.
- Обновлённый дизайн и унификация интерфейса. Мы привели внешний вид приложения к единому стилю и внедрили систему компонентов, что сделало интерфейс более аккуратным и удобным в поддержке.
- Реорганизация backend и приложения на ТСД для кладовщиков. В связи с изменением бизнес-логики переработаны почти все экраны, добавлены новые функции и данные, включая возможность сохранять фотографии груза на каждом этапе. (о приложении на ТСД расскажем подробнее в отдельном посте)
- Новое приложение для печати этикеток. Теперь кладовщики могут печатать этикетки прямо с ТСД: приложение отправляет задание на печать через RabbitMQ, а клиент на ПК — передаёт его на подключённый принтер.
- Улучшения в веб-системе. Реализовано сохранение незавершённых заказов в локальном кеше браузера, переработан интерфейс формирования рейсов (стал удобнее и функциональнее), добавлены новые отчёты и множество мелких улучшений, упрощающих повседневную работу.
- Расширенное логирование. В системе фиксируются действия пользователей, что позволяет анализировать изменения и быстрее находить источники ошибок.
8
This media is not supported in your browser
VIEW IN TELEGRAM
Наконец-то у нас дошли руки полностью переделать систему удалённого доступа к постаматам приёма и выдачи спецодежды в Казани.

Сейчас там работает под нашим управлением около 25 постаматов, которые принимают и выдают спецодежду в стирку и из стирки. Все они подключены через мобильный интернет, и прямого доступа к ним (по IP) изначально не предусматривалось.

В далёком 2023 году поставщики оборудования предложили использовать AnyDesk для удалённого управления. Тогда это решение выглядело вполне рабочим, и мы его использовали.

Со временем ситуация изменилась: всем известные проблемы с мобильным интернетом, плюс дополнительные глушилки на предприятии сделали скорость и стабильность связи почти никакой. Через AnyDesk стало невозможно нормально работать — постоянные разрывы, короткие сессии по 15 секунд и долгие минуты без возможности переподключиться.

Мы давно искали альтернативу. Для многих задач нам нужен был именно консольный доступ (например, быстро посмотреть логи), потому что он стабильно работает даже на плохих каналах и требует минимальной скорости. Но без прямых IP-адресов оставалось непонятно, как это реализовать.

💡 Решение оказалось в reverse SSH. Теперь каждый постамат через autoSSH подключается к нашему серверу и открывает там свой канал на определенном порту. Мы же для подключения к постамату подключаемся к нужному порту сервера и попадаем напрямую попадаем в консоль конкретного постамата.

Но этого было недостаточно для случаев, когда нужно именно видеть экран. Поэтому мы решили перейти на RustDesk, подняли свой сервер-ретранслятор. Первые тесты показали, что RustDesk заметно лучше справляется на плохом интернете.

Чтобы всё это не превращалось в ручную настройку, мы написали два скрипта — для конфигурации reverse SSH и для установки RustDesk с настройкой его на соединение с нашим ретранслятором. Теперь для настройки достаточно запустить оба скрипта, и всё готово.

⚙️Еще не все аппараты перенастроены, но уже видно — стало надёжнее, быстрее и удобнее.
🔥41👍1🤯1
ВНИМАНИЕ! Система оповещения "Качественных решений" сообщает о трёх октябрьских апдейтах! 🚨

Дорогие коллеги! Поздравляем наших системных администраторов с обновлением версии!🎉
Приносим извинения за небольшую задержку в доставке патчей — мы тщательно тестировали их стабильность! 😉

Земсков Вадим (v.24.0) — наш надёжный файервол, защищающий нас от пользователей "Веселого Водовоза"! 🛡 Желаем безупречного аптайма и нулевых инцидентов! Пусть все флуд-атаки судьбы будут успешно заблокированы!

Тролуков Алексей (v.29.0) — наш главный любитель дата-центров и высоконагруженных систем! 🖥 Пусть твоя жизнь работает быстрее, чем SSD-массив, а счастье реплицируется в геометрической прогрессии!

Кудряшов Владислав (v.23.0) — наш специалист по мониторингу Zabbix! 📊 Желаем, чтобы все жизненные метрики были зелеными, личное счастье было отказоустойчивым, а триггеры срабатывали только на приятные события!

Ребята! Пусть ваши личные системы всегда будут стабильны, бэкапы — актуальны, а биосы счастья — обновлены до последней версии! С Днём Рождения! 🎂⚡️🖥
P.S. А вот и долгожданные физические патчи к вашим системам! 👇
9👍2
Приложение на ТСД в проекте «Логистика ТК-Ямщик»

Три новости назад мы рассказали о большом этапе проекта «Логистика ТК-Ямщик». Сегодня — подробнее о мобильном приложении для ТСД, без которого современная работа терминалов и складов уже немыслима.

Это полноценное мобильное приложение, которое помогает сотрудникам выполнять все операции с грузами прямо «в полях»:
Первичная приёмка груза на склад. Кладовщик взвешивает и измеряет груз, вводит параметры в систему (объём, вес и т.д.) — как по каждому грузоместу, так и массово. Для каждого грузоместа печатается индивидуальная этикетка.
Приёмка (разгрузка) рейса. Сотрудник сканирует QR-коды всех мест, чтобы проконтролировать выгрузку.
Погрузка и отправка рейса. Аналогично — сканирование грузомест перед отправкой, с автоматической сверкой и фиксацией результатов.
Приёмка и выдача заказов клиенту — если клиент забирает или сдаёт груз прямо на терминале.
Полное логирование всех сканирований. Система хранит историю каждого сканирования — даже ошибочного. Это помогает находить «потерявшиеся» грузы по последнему месту, где они были зафиксированы, включая информационные сканирования.
Работа с фотографиями. Пользователь может делать фото груза или сопроводительных документов, а также привязывать их к конкретным грузоместам.

Техническая сторона

Приложение не просто функциональное, но и технологически продвинутое:

👉 Надёжное хранилище фотографий. Все снимки сохраняются в кластере, доступном по протоколу S3, что обеспечивает масштабируемость и устойчивость хранения.
👉 Печать этикеток. Для этого разработано отдельное Windows-приложение, установленное на компьютер с подключённым принтером этикеток. Оно получает задания на печать через RabbitMQ, что гарантирует доставку задач даже при временной недоступности принтера.
👉 Современные технологии разработки. Приложение создано на Flutter с использованием языка Dart — это уже наш стандарт де-факто для мобильных решений.

Этот начальная версия приложения думаю в процессе эксплуатации мы еще будем улучшать и добавлять функциональность. У разработке уже новые функции не предусмотренные в первоначальном ТЗ, например перенос грузомест из одного рейса в следующий для транзитных грузов без полного сканирования машины.
🔥2🤪2
Сегодня мы получили журнал с исследованием ИТ отрасли в России. Уже 2 год наша компания принимает участие в масштабном отраслевом исследовании, проводимым ассоциацией «Руссофт».
Исследование «Руссофт» является одним из наиболее авторитетных источников данных о состоянии IT-отрасли в России. Для нас участие в исследовании «Руссофт» — это возможность внести вклад в формирование объективной картины рынка.
Об ассоциации «Руссофт»:
«Руссофт» — крупнейшая ассоциация отечественных разработчиков программного обеспечения, выступающая в качестве экспертного центра и защищающая интересы IT-отрасли в России и за рубежом. Одно из основных направлений - лоббирование в органах государственной власти интересов предприятий индустрии разработки программного обеспечения,
5
Мы выпустили очередное обновление мобильного приложения спецодежды. В нём появилась новая возможность — выбор конкретной модели для получении спецодежды. Теперь сотрудник может указать, какую именно модель он хотел бы получать, если предприятие предоставляет такой выбор.

На первый взгляд функция выглядит простой, но при её реализации мы заложили архитектурные принципы, которые важны для дальнейшего развития нашей системы как единой платформы.

🛠 Как это устроено технически сейчас

Каждое предприятие работает со своей собственной базой данных. Эти базы размещены на сертифицированном по ФЗ-152 оборудовании и программном обеспечении с 4-м уровнем защиты. Данные предприятий не смешиваются — каждое предприятие работает в своей отдельной базе, и даже может разместить базу данных на своих серверах.

При этом существуют общие облачные сервисы, такие как мобильное приложение, чей единый бекенд обслуживает всех пользователей разных предприятий и умеет получать данные из разных баз.

📦 Единый каталог спецодежды

Каталог спецодежды мы изначально спроектировали как единый облачный каталог, не привязанный к конкретному предприятию. Такой подход позволяет:
- централизованно управлять описаниями и характеристиками моделей;
- хранить общую информацию о сертификации продукции;
- получать и обрабатывать общие отзывы на конкретные модели спецодежды, независимо от того, на каком предприятии сотрудники их получили;

Спецодежда из каталога привязывается к имеющейся номенклатурой в базе каждого предприятия. Это не только упрощает работу с модельным рядом, но и формирует фундамент для тех функциональных возможностей, которые мы планируем развивать дальше.

🚀 В будущее

Подход добавил сложности на этапе реализации, но он открывает путь к созданию действительно единой платформы. Функция выбора модели — первый шаг к более глубоким возможностям вокруг модельного ряда и к целостной экосистеме данных вокруг спецодежды, которую мы строим.
🔥52
Елена, с днём рождения! 🎉
Желаем тебе такого счастья, которое не требует доработок, уточнений и согласований.
Пусть жизнь выдаёт тебе только стабильные релизы, а все проблемы сразу отправляются в архив со статусом «не воспроизводится».
Пусть задачи приходят простые, требования — понятные,
а разработчики — всегда трезвые и добрые.
Оставайся такой же яркой, умной и опасно обаятельной брюнеткой, которую уважают даже самые капризные сервисы и интеграции.
С днём рождения, Лена!
Твои коллеги из «Качественных решений» 😄💙🎈
❤‍🔥8👍2
Команда разработки внедрила уведомления в Telegram о новых ошибках в трекере.

Трекер ошибок у нас работает давно: туда автоматически улетали сбои из десктоп-приложений, ведь если ошибка случалась на компьютере пользователя, узнать о ней иначе было практически невозможно.
С серверными системами ситуация всегда была проще — есть логи, где можно всё посмотреть. Но как показала практика, заходить в логи или даже на сам трекер надо сознательно, а в потоке задач это легко откладывается «на потом».

С ростом количества сервисов и появлением десятка скриптов в cron проблема стала заметнее: особенно если скрипт падает не каждый раз, найти такие ошибки вовремя всё труднее.

Поэтому мы добавили в трекер механизм отправки уведомлений об ошибках прямо в Telegram — с умным контролем повторов.
Теперь, если ошибка повторяется, сообщения не сыплются без остановки, появляется напоминание о накоплении на отметках 10, 50 и далее каждые 100 повторов.

Отдельный приятный бонус — стало удобно отмечать реакциями в Telegram, кто берёт ошибку в работу. Программисты перестали «сталкиваться» друг с другом, и сразу видно, какие проблемы уже в процессе исправления, а какие ещё ждут внимания.

Так как эта задача в первую очередь возникла в проекте автоматизации маркетплейсов, мы реализовали отправку ошибок не только из C# кода, но и из Ruby, так же используемом на проекте — теперь трекер стал универсальным для всех языков.

В будущем, вероятно, добавим отправку ошибок из Python, Dart и может быть JavaScript — тогда будет полное покрытие для всех языков, на которых мы активно разрабатываем.

В итоге команда разработки получила гораздо более оперативную обратную связь по проблемам в важных проектах. Это уже помогает быстрее реагировать и, надеемся уменьшит количество ошибок которые замечают пользователи.
🔥5
Катя, с днём рождения! 🎂🌟
Ты — как солнечный луч среди питерских туч, миниатюрная, светлая и всегда с искрой в глазах, которая делает серый город удивительно тёплым.
Пусть мосты в Петербурге разводятся только перед новыми возможностями,
пусть дороги ведут туда, где ждут вдохновение, люди и мечты, пусть на твоём пути будет больше ярких маршрутов, чем капель дождя на твоём окне.
Ты — талантливый разработчик, внимательный человек и тот самый светлый оттенок, который выделяется среди всех — как блондинка на фоне питерских фасадов.
Сохраняй свой характер, уверенность и мечту о мотоцикле 🏍💛
— всему своё время, и твой разгон ещё впереди.
Твои коллеги.
5👏3