Skip to content

kilevoy/insi-next

Repository files navigation

🏭 MetalCalc — подбор металлокаркаса и ограждающих конструкций

Подбор и расчёт элементов металлокаркаса — колонны, прогоны, фермы, ограждающие конструкции — по параметрам объекта. Перенос проверенных Excel-калькуляторов ИНСИ в тестируемое веб-приложение, результат которого сверяется с эталоном из исходных книг Excel.

CI License: MIT

▶️ Живое демо: https://kilevoy.github.io/insi-next/


Зачем

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

Что считает

  • Колонны — подбор сечения по нагрузкам и геометрии, ранжирование вариантов.
  • Прогоны — расчёт и подбор по пролёту и нагрузке.
  • Фермы — параметры стропильных ферм.
  • Ограждающие конструкции — подбор с импортом цен из PDF-прайса и ценовыми переопределениями.

Инженерная строгость (то, чем кейс силён)

  • Паритет с Excel — эталонные модули (*-reference.generated.ts) генерируются из исходных книг; расхождение валит сборку.
  • 89 юнит-тестов + e2e-тесты Playwright на реальном UI.
  • Пайплайн verify — единый релизный цикл: пересборка эталонов и проверка дрейфа → линт → юнит-тесты → production-сборка → e2e.
  • Валидация входных данных через Zod.
npm run verify   # эталоны → линт → тесты → сборка → e2e

Технологии

React 19 · TypeScript 5 · Vite · Zod · Vitest · Playwright · GitHub Actions

Команды

npm install
npm test                       # юнит-тесты
npm run test:e2e               # Playwright e2e
npm run build                  # production build
npm run generate:column-ref    # перегенерировать эталон колонн из Excel
npm run generate:purlin-ref    # перегенерировать эталон прогонов из Excel
npm run verify                 # полный релизный цикл

Эталонные данные: src/domain/{column,purlin}/model/*-reference.generated.ts (из книг Excel; при отсутствии книги — из зафиксированного снапшота).

CI

.github/workflows/ci.yml гоняет проверку дрейфа эталонов, линт, юнит-тесты, сборку и e2e на каждый push. Деплой демо — deploy-pages.yml.

Лицензия

MIT © 2026 Andrey Rykunov

About

Next-generation engineering calculator based on the INSI calculator project.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors