ОптиРез — калькулятор оптимального линейного раскроя

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

ОптиРез — калькулятор оптимального линейного раскроя

О проекте

ОптиРез — это рабочий публичный веб-сервис для оптимизации линейного раскроя материалов. Проект создавался не как учебный макет, а как реальный продукт с собственным доменом, production-развёртыванием, аналитикой, SEO и последующим развитием на основе поведения пользователей. В основе сервиса — алгоритм, который сочетает эвристический подход и OR-Tools CP-SAT для подбора вариантов раскроя. Пользователь задаёт длину исходной заготовки, ширину реза, размеры деталей и их количество, после чего получает схему раскроя, количество необходимых заготовок, остатки и эффективность использования материала. Проект включает не только расчётную часть, но и полноценную production-инфраструктуру: PostgreSQL, миграции Alembic, резервное копирование и восстановление базы, rate limiting, внутреннюю аналитику, SEO-страницы, Яндекс Метрику, sitemap.xml, robots.txt и сбор пользовательской обратной связи. Сервис доступен по адресу optirez.ru и продолжает развиваться как самостоятельный продукт.

Какую задачу решает

Сервис помогает быстро рассчитать, как распределить детали заданной длины по исходным заготовкам так, чтобы сократить количество используемого материала и остатки после резки. Пользователь указывает: - длину исходной заготовки; - ширину реза; - длины необходимых деталей; - количество деталей каждого размера. После этого ОптиРез рассчитывает схему раскроя и показывает количество требуемых заготовок, остатки, потери на рез и эффективность использования материала.

Что реализовано

- расчёт линейного раскроя с использованием эвристики и OR-Tools CP-SAT; - учёт ширины каждого реза и суммарных остатков; - визуальная схема раскроя для каждой исходной заготовки; - отображение количества заготовок, эффективности, остатков и потерь материала; - адаптивный интерфейс для desktop и mobile; - отдельные SEO-посадочные страницы для линейного раскроя, труб и профильных труб; - FAQ с пояснениями по работе сервиса и интерпретации результатов; - PostgreSQL для хранения расчётов, аналитики и пользовательской обратной связи; - Alembic-миграции и документация структуры базы данных; - внутренняя продуктовая аналитика; - Яндекс Метрика; - robots.txt и sitemap.xml; - интеграция с Яндекс Вебмастером и Google Search Console; - application-level rate limiting для защиты endpoint расчёта; - сбор пользовательского feedback после расчёта; - автоматическое резервное копирование PostgreSQL; - проверенная процедура восстановления базы из backup; - production deployment на VPS через Docker Compose и Caddy с HTTPS.

Результат

- сервис развернут в production и доступен на собственном домене optirez.ru; - сайт индексируется поисковыми системами; - сервис получает органические показы и переходы из поиска; - пользователи выполняют реальные расчёты раскроя; - настроен сбор продуктовой аналитики и обратной связи; - проект продолжает развиваться как самостоятельный рабочий веб-сервис.

Практическое применение

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

Технологии

Python, FastAPI, OR-Tools CP-SAT, PostgreSQL, SQLAlchemy, Alembic, Jinja2, JavaScript, Docker Compose, Caddy, pytest

Ссылки