Полнофункциональное приложение-викторина для Telegram Web App (Mini App), созданное с использованием React, TypeScript, Vite и Tailwind CSS.
- Интерактивная викторина с вопросами о участниках чата
- Система прогресса с сохранением в localStorage
- Разблокировка статистики в зависимости от количества правильных ответов
- Тёмная тема в стиле paycashswap.com с неоновыми эффектами
- Адаптивный дизайн для мобильных устройств
- Плавные анимации с использованием Framer Motion
- Интеграция с Telegram WebApp API
- Node.js 18+ и npm/yarn/pnpm
- Telegram Bot для тестирования Mini App
- Клонируйте репозиторий или скачайте проект
- Установите зависимости:
npm installили
yarn installили
pnpm installnpm run devПриложение будет доступно по адресу http://localhost:5173
npm run buildСобранные файлы будут в папке dist/
- Соберите проект:
npm run build - Загрузите содержимое папки
dist/на GitHub Pages или другой хостинг - В настройках вашего Telegram бота укажите URL вашего приложения
- Подключите репозиторий к Vercel или Netlify
- Укажите команду сборки:
npm run build - Укажите папку вывода:
dist - После деплоя получите URL и добавьте его в настройки Telegram бота
- Выполните
npm run build - Загрузите содержимое папки
dist/на ваш хостинг - Убедитесь, что
index.htmlдоступен по корневому пути
- Создайте бота через @BotFather
- Используйте команду
/newappдля создания Mini App - Укажите URL вашего задеплоенного приложения
- Установите название и описание приложения
- Откройте Mini App в Telegram
- Нажмите "Начать викторину"
- Читайте описание персонажа и выбирайте правильный ответ
- За правильные ответы получайте очки
- Открывайте разделы статистики в зависимости от количества правильных ответов:
- 0-2 правильных → 1 раздел
- 3-4 → 2 раздела
- 5-6 → 3 раздела
- 7-8 → 4 раздела
- 9-10 → 5 разделов
- 10+ → все 6 разделов
chatquizbot/
├── src/
│ ├── components/ # React компоненты
│ │ ├── QuizStart.tsx # Экран старта
│ │ ├── QuizQuestion.tsx # Экран вопроса
│ │ ├── QuizResult.tsx # Экран результатов
│ │ └── StatSection.tsx # Компонент раздела статистики
│ ├── data/ # Данные приложения
│ │ ├── questions.ts # Вопросы викторины
│ │ └── statistics.ts # Статистика чата
│ ├── types/ # TypeScript типы
│ │ └── index.ts
│ ├── utils/ # Утилиты
│ │ ├── storage.ts # Работа с localStorage
│ │ └── shuffle.ts # Перемешивание массива
│ ├── App.tsx # Главный компонент
│ ├── main.tsx # Точка входа
│ └── index.css # Глобальные стили
├── index.html # HTML шаблон
├── package.json # Зависимости
├── vite.config.ts # Конфигурация Vite
├── tailwind.config.js # Конфигурация Tailwind
└── tsconfig.json # Конфигурация TypeScript
- React 18 - UI библиотека
- TypeScript - типизация
- Vite - сборщик и dev-сервер
- Tailwind CSS - стилизация
- Framer Motion - анимации
- Telegram WebApp API - интеграция с Telegram
MIT
Приветствуются любые улучшения и предложения!