Initial commit: полный проект my_speaker
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# Файловая структура проекта My Speaker
|
||||
|
||||
Ниже представлена скорректированная файловая структура проекта веб-приложения My Speaker. Корректировки включают:
|
||||
- Добавление `main-params.html` в папку `components/` для постоянной левой части (Main Parameters) на главном экране.
|
||||
- Добавление `footer.html` в папку `components/` для футера с логами.
|
||||
- Добавление `graphics.html` в папку `pages/` для правой части с графиками (как указано в макетах).
|
||||
- Обновление модулей JavaScript для соответствия новым компонентам (например, добавление `graphics.js` для логики графиков).
|
||||
- Уточнение папок для лучшей организации: `pages/` для динамически подгружаемых правых частей, `components/` для общих элементов (шапка, навигация, Main Parameters, футер).
|
||||
- Обеспечение модульности в соответствии с `FRONTEND_REQUIREMENTS.md`: использование чистого JavaScript (ES6+), без фреймворков.
|
||||
- Учёт ретро-стиля и адаптивности в `style.css`.
|
||||
|
||||
Структура проекта оптимизирована для SPA (Single Page Application), где `index.html` служит точкой входа, а контент подгружается динамически через `router.js`.
|
||||
|
||||
## Полная структура
|
||||
|
||||
```
|
||||
webapp/
|
||||
├── index.html # Основная страница приложения (SPA): содержит контейнеры для шапки, основного экрана и футера
|
||||
├── style.css # Основные стили в ретро-стилистике (пиксельные рамки, шрифт "Press Start 2P", адаптивность)
|
||||
├── api.js # Модуль для работы с API (авторизация, получение данных, обновление настроек)
|
||||
├── app.js # Точка входа: инициализация приложения, подключение модулей и запуск маршрутизации
|
||||
├── modules/ # Папка для JavaScript-модулей (логика страниц и компонентов)
|
||||
│ ├── router.js # Маршрутизация: динамическая загрузка HTML в правую часть основного экрана
|
||||
│ ├── login.js # Логика страницы авторизации (обработка формы, настройки интерфейса)
|
||||
│ ├── dashboard.js # Логика главного экрана: инициализация Main Parameters, футера и общей структуры
|
||||
│ ├── graphics.js # Логика для `graphics.html` (инициализация и обновление графиков с использованием Chart.js или Canvas)
|
||||
│ ├── settings.js # Логика для `settings.html` (формы настроек, валидация, отправка на API)
|
||||
│ ├── commands.js # Логика для `commands.html` (список команд, редактирование файла команд)
|
||||
│ ├── header.js # Логика для `header.html` (имя пользователя, кнопка выхода, запрос на /api/auth/me)
|
||||
│ ├── nav.js # Логика для `nav.html` (переключение разделов, подсветка активного)
|
||||
│ └── utils.js # Общие утилиты (обработка ошибок, валидация форм, форматирование данных, DOM-манипуляции)
|
||||
├── pages/ # Папка для динамически подгружаемых HTML-страниц (правая часть основного экрана)
|
||||
│ ├── login.html # Разметка страницы авторизации (форма входа, настройки интерфейса)
|
||||
│ ├── graphics.html # Разметка для графиков (canvas для speech_prob и energy)
|
||||
│ ├── settings.html # Разметка для настроек (раскрывающиеся формы с <details>, поля ввода, кнопки сохранения)
|
||||
│ └── commands.html # Разметка для команд (поле для commands_file, список команд, кнопки редактирования)
|
||||
└── components/ # Папка для общих HTML-компонентов (шапка, навигация, левая часть, футер)
|
||||
├── header.html # Разметка верхней панели (имя пользователя, кнопка выхода)
|
||||
├── nav.html # Разметка навигационной панели (кнопки Dashboard, Settings, Commands)
|
||||
├── main-params.html# Разметка левой части (Main Parameters: статус, индикаторы, статистика CPU/MEM/TEMP)
|
||||
└── footer.html # Разметка футера (список последних фраз из recent-phrases)
|
||||
|
||||
```
|
||||
|
||||
## Объяснение корректировок
|
||||
- **Добавления**:
|
||||
- `graphics.html` и `graphics.js` — для отдельного раздела с графиками, как в макетах PAGE_LAYOUTS.md.
|
||||
- `main-params.html` — для постоянной левой части (40%), чтобы избежать дублирования разметки в каждом разделе.
|
||||
- `footer.html` — для футера с логами, чтобы сделать его переиспользуемым и легко обновляемым.
|
||||
- **Изменения**:
|
||||
- `dashboard.js` теперь отвечает за инициализацию всего главного экрана (загрузка `main-params.html`, футера и динамической правой части).
|
||||
- `pages/login.html` — остается отдельной, но теперь явно отделена от динамических страниц главного экрана.
|
||||
- Убраны ненужные файлы (если были ранее); структура оптимизирована для модульности (каждый модуль экспортирует функции для ES6 import).
|
||||
- **Соответствие требованиям**:
|
||||
- Структура соответствует `FRONTEND_REQUIREMENTS.md`: модульный JS-код, отдельные файлы для логики (app.js, api.js), стили в style.css.
|
||||
- Поддержка адаптивности: в style.css используются медиа-запросы для мобильных устройств (вертикальное расположение карточек).
|
||||
- Масштабируемость: Легко добавить новые страницы (например, `analytics.html` и `analytics.js`) в `pages/` и зарегистрировать в `router.js`.
|
||||
- **Рекомендации по реализации**:
|
||||
- В `index.html` добавить контейнеры: `<header id="header"></header>`, `<nav id="nav"></nav>`, `<main><div id="main-params"></div><div id="content"></div></main>`, `<footer id="footer"></footer>`.
|
||||
- В `router.js` загружать контент в `#content` на основе маршрута (например, `#/graphics` → `graphics.html`).
|
||||
- В `utils.js` добавить функции для показа ошибок в ретро-стиле (красный текст на темном фоне).
|
||||
- Для графиков в `graphics.js` использовать Chart.js (подключить через CDN в `index.html`) или Canvas API.
|
||||
|
||||
Эта структура готова к реализации. Если нужны дополнительные корректировки (например, добавление папок для ассетов или тестов), уточните.
|
||||
Reference in New Issue
Block a user