# Структура проекта . ├── app.css ├── App.svelte ├── assets │ ├── hero.png │ ├── svelte.svg │ └── vite.svg ├── lib │ ├── common │ │ ├── PaymentPage.svelte │ │ ├── services │ │ ├── stores │ │ ├── ui │ │ └── utils │ └── pages │ ├── extra │ ├── main │ │ └── MainMenu.svelte │ ├── photo-doc │ ├── print │ │ ├── preview │ │ └── PrintMenu.svelte │ └── scan └── main.js --- ### 📂 Корень проекта * **`App.svelte`**: Главный роутер. Управляет переключением между экранами (Главное меню → Печать/Фото/Скан). * **`main.js`**: Точка входа, монтирует приложение в DOM. * **`app.css`**: Глобальные стили и сброс CSS. * **`assets/`**: Статические файлы (иконки, фоновые изображения, логотипы). --- ### 📂 `lib/modules/` (Бизнес-модули) Каждая папка — это независимая услуга киоска. Содержит свои UI-компоненты и локальные сторы состояния. * **`main/`**: Главное меню с 4 кнопками навигации. * **`print/`**: Логика печати (загрузка PDF/фото, выбор страниц, настройки формата/цвета). * **`photo-doc/`**: Фото на документы (работа с камерой, кроп, выбор размера). * **`scan/`**: Сканирование документов (скан через камеру или загрузка файла). * **`extra/`**: Дополнительные услуги (копирование, отправка на email и т.д.). --- ### 📂 `lib/common/` (Общая инфраструктура) Ресурсы, которые переиспользуются несколькими модулями. #### **UI-слой** * **`ui/`**: Переиспользуемые визуальные компоненты (кнопки, инпуты, карточки, лоадеры). * **`PaymentPage.svelte`**: Единый экран оплаты P2P-переводом. Используется всеми модулями после формирования заказа. #### **Логика и данные** * **`stores/`**: Глобальные хранилища состояния (навигация, настройки приложения, очередь уведомлений). * **`services/`**: Интеграции с внешним миром (API принтера, работа с PDF.js, доступ к камере, отправка запросов на сервер). * **`utils/`**: Чистые вспомогательные функции (расчет стоимости, форматирование текста, детекция типов файлов, плюрализация).