Квиз-платформа в духе 2004 года: создавайте вопросы с картинками, запускайте раунды и показывайте результаты друзьям в реальном времени.
- 🕹️ Панель ведущего с созданием вопросов (текст, загрузка JPG/PNG или ссылка на картинку и четыре варианта ответов).
- 📡 Живое управление ходом игры: запуск вопросов, показ результатов, финальная таблица.
- 👥 Игровая страница для участников — достаточно перейти по ссылке, ввести логин и выбирать ответы.
- 🏆 Мгновенная статистика после каждого вопроса с количеством правильных ответов и рейтингом игроков.
- 🏁 Финальные итоги после завершения квиза с определением победителей.
- 📺 Экран трансляции для общего показа вопросов, статистики по вариантам и итогового рейтинга.
- 💾 Состояние сохраняется в файловом хранилище — достаточно подключить персистентный том к директории
./data.
npm install
npm startСервер поднимется на порту 3000. Перейдите в браузере на http://localhost:3000:
/admin.html— панель ведущего. Введите код квиза (например,RETRO), добавьте вопросы и управляйте раундами./play.html— страница игроков. Передайте ссылкуhttp://localhost:3000/play.html?quiz=RETROдрузьям: им останется только ввести логин./display(или/display.html) — экран трансляции. Введите тот же код, что и ведущий, чтобы показать текущий вопрос и результаты на большом экране.
- Откройте
/admin.html, придумайте короткий код (например,RETRO) и введите его в поле «Код квиза». - Нажмите «Подключиться». Если такого кода ещё не было, сервер сразу создаст новый квиз, а на странице появятся блоки для добавления вопросов и управления ходом игры.
- Заполните текст вопроса, четыре варианта ответов и при необходимости загрузите изображение (JPG/PNG до 5 МБ) — после загрузки ссылка заполнится автоматически. Нажмите «Добавить вопрос».
- Повторите предыдущий шаг для всех вопросов раунда.
- Если нужен общий экран, откройте
/display(или/display.html), введите тот же код и выведите вкладку на проектор/телевизор. - Поделитесь кодом с друзьями — им достаточно открыть
/play.html, указать код и ввести логин. - Когда все готовы, нажмите «Запустить следующий вопрос», чтобы отправить его игрокам. После закрытия вопроса используйте «Показать результаты», а затем переходите к следующему — на экране трансляции автоматически появится разбивка ответов.
- В финале нажмите «Финальная статистика», чтобы показать рейтинг победителей.
- Загружайте изображения прямо из панели ведущего: поддерживаются JPG и PNG размером до 5 МБ.
- Ссылка на загруженный файл появится в поле автоматически (в формате
/uploads/...), а картинка сразу отобразится на общем экране. - Если предпочитаете хранить медиа где-то ещё, оставьте загрузку пустой и вставьте внешнюю ссылку вручную.
Приложение — обычный Node.js сервер, готовый к запуску на любой платформе, которая умеет стартовать npm start (Heroku, Render, Railway, CapRover и т.д.).
Для GitHub + CapRover:
- Залейте репозиторий на GitHub.
- На CapRover создайте новое приложение и укажите репозиторий.
- Файл
captain-definitionуже содержит нужные команды (npm installиnpm start), поэтому дополнительные настройки не требуются. - Задеплойте — после старта приложение будет доступно по адресу, который выдаст CapRover.
- Сервер записывает состояние всех квизов в файл
data/quizzes.jsonв корне проекта. - При деплое подключите постоянный том к каталогу
/app/data(или./data, если платформа позволяет указать относительный путь), чтобы вопросы и результаты переживали перезапуски контейнера. - Директория создаётся автоматически; убедитесь, что у процесса Node.js есть права на запись.
- При отсутствии подключённого тома данные будут храниться только в памяти и сбрасываться при перезапуске контейнера.
- Для одновременной игры большого числа команд рекомендуются сервера с достаточными ресурсами и хорошей сетью.
Наслаждайтесь олдскульной атмосферой и дружеским соперничеством!