SmartPlan — настольный инструмент для проектирования систем умного дома и видеонаблюдения. Приложение поддерживает 2D-планы, 3D-представление, размещение оборудования, кабельные трассы, автосохранение и экспорт проектной документации в PDF.
- Electron
- JavaScript и Canvas 2D
- Three.js для 3D
- jsPDF для экспорта
- встроенный
node:testдля проверок модели проекта
Приложение не использует React, Vite или TypeScript.
Требуется Node.js 20 или новее.
npm ci
npm startЗапуск с DevTools:
npm run devПроверки:
npm run checknpm run build-webГотовая статическая версия появляется в dist-web/. Папку можно разместить в любом каталоге сайта: все пути к скриптам, стилям и изображениям относительные. Во время сборки модули редактора объединяются в один renderer.js для простого размещения.
Для встраивания в существующую страницу можно использовать отдельный маршрут и iframe:
<iframe
src="/smartplan/index.html"
title="SmartPlan"
style="width:100%;height:900px;border:0"
></iframe>В браузере проекты открываются через выбор JSON-файла и сохраняются скачиванием. Системное меню и нативные диалоги доступны только в Electron.
npm run build-winГотовые файлы появляются в dist/. Имя Windows-архива формируется как SmartPlan-{version}-win.zip.
main.js— главный процесс Electron, меню и безопасная работа с файлами.preload.js— ограниченный IPC-мост.project-core.js— единицы измерения, масштабирование, миграции и проверка проектов.index.html— HTML-оболочка и рабочие области 2D/3D.styles.css— оформление приложения.renderer/— модули состояния, 2D, 3D, действий, PDF и работы с проектами.scripts/build-web.js— сборка статической веб-версии.assets/— локальные библиотеки и изображения.test/— автоматические проверки модели проекта.
Формат проекта остаётся совместимым с файлами SmartPlan v3. При первом открытии старые стандартные стены автоматически получают корректную толщину 20 см.
SmartPlan распространяется по лицензии Apache License 2.0.
Программу и исходный код разрешено использовать, изменять и распространять при соблюдении условий лицензии: необходимо сохранять авторские уведомления, текст лицензии и файл NOTICE, а изменённые файлы должны содержать заметное указание на внесённые изменения.
Автор проекта — laskinss27-cmyk.