initial site
This commit is contained in:
commit
da5b259d06
167 files changed
+34157
No files matched your search
@@ -0,0 +1,65 @@
|
||||
# Аудит и изменения проекта НЕОН
|
||||
|
||||
## Что проверено
|
||||
|
||||
- Исходная структура проекта, `package.json`, TypeScript-конфигурация и Vite-конфигурация.
|
||||
- Страница меню и все три набора данных: авторский чай, пивная карта, барное меню.
|
||||
- Все 57 файлов в `public/menu` и `public/menu/manifest.json`.
|
||||
- Поиск по проекту на предмет старого реестра изображений и неиспользуемых ссылок.
|
||||
- TypeScript-проверка и самотест движка миксов.
|
||||
|
||||
## Что изменено
|
||||
|
||||
### Фотографии меню
|
||||
|
||||
Создан единый `src/data/menuPhotos.ts` с привязкой по `id` позиции меню.
|
||||
|
||||
- 51 из 51 текущих позиций меню имеют привязанные фотографии.
|
||||
- Все 51 файла реально существуют в `public/menu`.
|
||||
- Для авторского чая использованы соответствующие изображения из того же набора; названия файлов исторически отличаются от текущих названий позиций.
|
||||
- 6 файлов из `public/menu` намеренно не привязаны: это изображения, которым в текущем каталоге нет соответствующей позиции (`photo`, два кальяна и три прочих позиции/сборы).
|
||||
|
||||
Старый `src/data/menuImages.ts` удалён: он ссылался на несуществующие пути `images/tea` и `images/beer` и содержал неиспользуемые fallback-цепочки.
|
||||
|
||||
### Карточки меню
|
||||
|
||||
- Фото добавлены непосредственно в существующие карточки без смены базовой стилистики.
|
||||
- Добавлена lazy-loading загрузка изображений.
|
||||
- При ошибке загрузки карточка автоматически возвращается к исходной иконке.
|
||||
- Кнопка `В корзину` интегрирована в существующую карточку.
|
||||
|
||||
### Корзина и управление количеством
|
||||
|
||||
`src/components/MenuCart.tsx` и `src/pages/MenuPage.tsx` получили косметический рефакторинг UX.
|
||||
|
||||
- На карточке позиции вместо однонаправленной кнопки теперь используется `В корзину`, а после добавления — полноценный степпер `− / количество / +`.
|
||||
- Уменьшение количества из меню сразу действует на выбранного гостя и удаляет позицию при снижении количества до нуля.
|
||||
- Выбор активного гостя в меню переведён с выпадающего списка на компактные переключатели.
|
||||
- В корзине количество гостей задаётся степпером 1–12, без громоздкого select.
|
||||
- Активный гость в корзине выбирается отдельными кнопками; новые позиции из меню попадают выбранному гостю.
|
||||
- Позиции по-прежнему группируются по гостям, но карточки стали компактнее и понятнее; перераспределение позиции между гостями сохранено.
|
||||
- Итоговая сумма, копирование заказа, очистка, `Esc`, блокировка прокрутки и хранение в `localStorage` сохранены.
|
||||
- Заказ никуда автоматически не отправляется — это рабочий список для оформления у официанта.
|
||||
|
||||
### Очистка проекта
|
||||
|
||||
- Из моделей `teaMenu`, `beerMenu`, `barMenu` убраны старые поля/импорты изображений, которые больше не нужны.
|
||||
- Удалена дублирующаяся папка `public/images/menu`: приложение её не использовало, а сами актуальные фото находятся в `public/menu`.
|
||||
- Контейнерный Caddy удалён: Caddy работает на уровне хоста.
|
||||
- Docker-инфраструктура приложения возвращена отдельным `docker-compose.yml` + `Dockerfile`; HTTPS и доменная маршрутизация остаются на хостовом Caddy.
|
||||
- В контейнере используется nginx только как HTTP-сервер для собранного Vite `dist`.
|
||||
- `src/index.css`, `package.json` и `package-lock.json` не изменялись.
|
||||
|
||||
## Проверка
|
||||
|
||||
- Статически проверены изменённые файлы и связи между карточками меню, активным гостем и корзиной.
|
||||
- `docker-compose.yml` и `Dockerfile` физически присутствуют в финальном архиве.
|
||||
- Полный `vite build` в этой среде не удалось выполнить: пакетные зависимости из `package-lock.json` не удалось восстановить через npm из-за недоступного registry/cache-пакета, поэтому результат сборки здесь не выдаётся за проверенный.
|
||||
- Финальный архив не содержит `node_modules` и `dist`; зависимости и production-сборка должны создаваться в целевой среде.
|
||||
|
||||
## Docker runtime
|
||||
- `docker-compose.yml` restored for the frontend container; Caddy is not containerized.
|
||||
- `Dockerfile` restored as a multi-stage build: Node builds the Vite app, nginx serves the resulting static files.
|
||||
- The app is published only on `127.0.0.1:8080`, so host-level Caddy can reverse-proxy to `http://127.0.0.1:8080` without exposing the app directly to the network.
|
||||
- `nginx.conf` contains SPA fallback and a `/healthz` endpoint.
|
||||
- `.dockerignore` excludes build/dependency artifacts from the Docker build context.
|
||||
Reference in new issue
Block a user