Qwizzy.ru
#Пет-проект
# Qwizzy — веб-платформа для создания и прохождения интерактивных тестов
Qwizzy — это современная веб-платформа, предназначенная для публикации, прохождения и создания развлекательных и обучающих тестов. Пользователи могут проходить тесты различных форматов, сохранять результаты, делиться ими, а также использовать интерактивный конструктор для разработки собственных викторин и анкет.
<hr>
## Основной функционал платформы
<h3>1. Интерактивный плеер тестов</h3>
- Разнообразие механик: Поддержка классических викторин (с подсчетом правильных ответов) и личностных тестов (где выбор ответа влияет на итоговый тип личности).
- Различные типы вопросов: Возможность прохождения тестов с текстовыми вопросами и графическими карточками-ответами.
- Динамический интерфейс: Плавные переходы между вопросами, шкала прогресса в реальном времени и интерактивная система оценки тестов по пятизвездочной шкале.
<h3>2. Конструктор тестов (Редактор)</h3>
- Визуальный интерфейс: Полноценный пошаговый редактор для создания тестов с нуля.
- Кастомизация структуры: Возможность добавлять неограниченное количество вопросов, гибко настраивать варианты ответов, прикреплять изображения к карточкам результатов и ответов, а также изменять порядок отображения вопросов.
- Черновики: Автоматическое сохранение изменений и управление статусом публикации (публичный доступ или приватный черновик).
<h3>3. Анкеты для друзей (Friend Quizzes)</h3>
- Два режима взаимодействия:
- *Угадайка* — пользователь отвечает на вопросы о себе, после чего его друзья проходят этот же опрос и проверяют, насколько хорошо они его знают.
- *Сходство* — тест на определение совместимости и общих интересов.
- Сравнение результатов: Детальный разбор ответов для каждого участника с выводом процента совпадений и интерактивной таблицей лидеров.
<h3>4. Личный кабинет пользователя</h3>
- Управление профилем: Возможность изменения имени пользователя, загрузки персонального аватара и редактирования описания профиля.
- Разделы активности: Быстрый доступ к созданным тестам, активным черновикам, списку избранного и истории пройденных тестов с возможностью скрыть свои результаты из публичного доступа.
<h3>5. Поиск и SEO-оптимизация</h3>
- Полнотекстовый поиск: Быстрый поиск тестов с подсказками «на лету» по мере ввода запроса.
- Динамические sitemaps: Автоматическая генерация и обновление карты сайта (sitemap.xml) при публикации или удалении тестов для индексации поисковыми системами.
<h3>6. Внутренний рекламный движок</h3>
- Управление кампаниями: Инструмент для ротации баннерной рекламы на сайте по приоритетам и местам размещения.
- Контроль лимитов: Возможность ограничения показов по датам, общему числу просмотров или кликов.
- Аналитика: Сбор статистики уникальных показов и переходов с вычислением CTR (кликабельности) рекламных материалов.
<hr>
## Архитектура и технологии
Проект построен по модульному принципу с разделением бизнес-логики, представления данных и кэширования.
- Backend: FastAPI (Python) — асинхронный веб-фреймворк, обеспечивающий высокую скорость обработки запросов.
- Database: MySQL (SQLAlchemy ORM) — надежное хранение информации о пользователях, тестах, результатах и рекламных кампаниях.
- Caching & Sessions: Redis — используется для хранения сессий пользователей, кэширования метаданных популярных тестов, поисковых запросов и буферизации счетчиков просмотров для снижения нагрузки на реляционную базу данных.
- Frontend: Jinja2 (шаблонизатор), HTML5, CSS3, JavaScript (Vanilla JS + jQuery) — адаптивный интерфейс, оптимизированный для мобильных устройств.
- Логирование: Loguru — структурированное ведение логов работы веб-сервера и системных компонентов.