Telegram Mini App интернет-магазина китайского чая. Современный интерфейс в стиле Telegram с поддержкой светлой и тёмной темы.
- React 18 — UI библиотека
- TypeScript — типизация
- Vite — сборка и dev-сервер
- Lucide React — иконки
- react-markdown — рендеринг markdown-контента
- 📦 Каталог — фильтрация по категориям, поиск товаров
- 🛒 Корзина — редактирование позиций, подсчёт итогов
- 📄 Страница товара — выбор фасовок, управление количеством
- ✅ Оформление заказа — валидация формы, отправка на бэкенд
- 🎉 Подтверждение — экран с резюме заказа
- 🌙 Темы — автоматическое переключение светлой/тёмной темы
- 🔗 Deep links — поддержка прямых ссылок на товары через Telegram
src/
├── api/ # API клиент и эндпоинты
│ ├── auth.ts # Авторизация
│ ├── cart.ts # Корзина
│ ├── catalog.ts # Каталог товаров
│ ├── client.ts # HTTP клиент
│ └── orders.ts # Заказы
├── components/ # UI компоненты
│ ├── CategoryFilter.tsx
│ ├── Layout.tsx
│ ├── ProductCard.tsx
│ ├── ProductShareActions.tsx
│ └── QuantityControl.tsx
├── context/ # React контексты
│ ├── CartContext.tsx
│ └── ThemeContext.tsx
├── hooks/ # Кастомные хуки
│ └── useLocalStorage.ts
├── pages/ # Страницы приложения
│ ├── CartPage.tsx
│ ├── CatalogPage.tsx
│ ├── CheckoutPage.tsx
│ ├── ConfirmationPage.tsx
│ └── ProductPage.tsx
├── utils/ # Утилиты
│ └── telegram.ts # Telegram Web App API
├── App.tsx # Корневой компонент
├── main.tsx # Точка входа
├── styles.css # Глобальные стили
└── types.ts # TypeScript типы
npm install
npm run devПриложение будет доступно на http://localhost:5173
npm run build
npm run preview # превью продакшен-сборкиdocker build -t teagram-shop .
docker run -p 80:80 teagram-shopИспользуется multi-stage сборка:
- Node.js для билда фронтенда
- Nginx Alpine для раздачи статики
Приложение интегрируется с Telegram через Web App API:
- Автоматическое определение темы пользователя
- Поддержка
startappпараметра для deep links - Работает только внутри Telegram (показывает fallback вне мессенджера)
Формат ссылки на товар:
https://t.me/BOT_USERNAME/APP_NAME?startapp=product_PRODUCT_ID
Swagger документация доступна в docs/swagger.yaml
| Команда | Описание |
|---|---|
npm run dev |
Запуск dev-сервера |
npm run build |
Сборка для production |
npm run preview |
Превью production-сборки |