59 lines
3.1 KiB
Markdown
59 lines
3.1 KiB
Markdown
# Структура проекта
|
||
|
||
.
|
||
├── 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/`**: Чистые вспомогательные функции (расчет стоимости, форматирование текста, детекция типов файлов, плюрализация).
|