Skip to content

superbereza/quiz-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Retro Quiz Platform

Квиз-платформа в духе 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) — экран трансляции. Введите тот же код, что и ведущий, чтобы показать текущий вопрос и результаты на большом экране.

Как провести игру

  1. Откройте /admin.html, придумайте короткий код (например, RETRO) и введите его в поле «Код квиза».
  2. Нажмите «Подключиться». Если такого кода ещё не было, сервер сразу создаст новый квиз, а на странице появятся блоки для добавления вопросов и управления ходом игры.
  3. Заполните текст вопроса, четыре варианта ответов и при необходимости загрузите изображение (JPG/PNG до 5 МБ) — после загрузки ссылка заполнится автоматически. Нажмите «Добавить вопрос».
  4. Повторите предыдущий шаг для всех вопросов раунда.
  5. Если нужен общий экран, откройте /display (или /display.html), введите тот же код и выведите вкладку на проектор/телевизор.
  6. Поделитесь кодом с друзьями — им достаточно открыть /play.html, указать код и ввести логин.
  7. Когда все готовы, нажмите «Запустить следующий вопрос», чтобы отправить его игрокам. После закрытия вопроса используйте «Показать результаты», а затем переходите к следующему — на экране трансляции автоматически появится разбивка ответов.
  8. В финале нажмите «Финальная статистика», чтобы показать рейтинг победителей.

Картинки для вопросов

  • Загружайте изображения прямо из панели ведущего: поддерживаются JPG и PNG размером до 5 МБ.
  • Ссылка на загруженный файл появится в поле автоматически (в формате /uploads/...), а картинка сразу отобразится на общем экране.
  • Если предпочитаете хранить медиа где-то ещё, оставьте загрузку пустой и вставьте внешнюю ссылку вручную.

Деплой

Приложение — обычный Node.js сервер, готовый к запуску на любой платформе, которая умеет стартовать npm start (Heroku, Render, Railway, CapRover и т.д.).

Для GitHub + CapRover:

  1. Залейте репозиторий на GitHub.
  2. На CapRover создайте новое приложение и укажите репозиторий.
  3. Файл captain-definition уже содержит нужные команды (npm install и npm start), поэтому дополнительные настройки не требуются.
  4. Задеплойте — после старта приложение будет доступно по адресу, который выдаст CapRover.

Персистентное хранилище

  • Сервер записывает состояние всех квизов в файл data/quizzes.json в корне проекта.
  • При деплое подключите постоянный том к каталогу /app/data (или ./data, если платформа позволяет указать относительный путь), чтобы вопросы и результаты переживали перезапуски контейнера.
  • Директория создаётся автоматически; убедитесь, что у процесса Node.js есть права на запись.

Ограничения

  • При отсутствии подключённого тома данные будут храниться только в памяти и сбрасываться при перезапуске контейнера.
  • Для одновременной игры большого числа команд рекомендуются сервера с достаточными ресурсами и хорошей сетью.

Наслаждайтесь олдскульной атмосферой и дружеским соперничеством!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published