Skip to content

lichking228/DarginQuizBot

Repository files navigation

🦅 Dargwa Quiz Bot

Telegram-бот для изучения даргинского языка в игровом формате.

Проект представляет собой интерактивную викторину, которая помогает пользователям учить даргинские слова, соревноваться с друзьями и отслеживать свой прогресс. Разработан на платформе .NET с использованием современных паттернов проектирования.


🚀 Функционал

🎮 Игровой процесс

  • Викторины: Сессии по 10 вопросов с вариантами ответов.
  • Категории: Возможность выбора тем (например, "Основы", "Семья", "Природа") или игра по всем категориям.
  • Умный подсчет очков:
    • Базовые баллы за сложность вопроса.
    • Бонусы за скорость: Чем быстрее ответ, тем больше очков.
    • Учет статистики (точность, время, серии побед).

🏆 Соревновательный элемент

  • Глобальный рейтинг: Таблица лидеров (Top-10 игроков) по сумме набранных очков.
  • Личная статистика: Профиль игрока с отображением общего количества игр, очков и процента правильных ответов.

🌍 Локализация

  • Полная поддержка двух языков интерфейса: Русский и Даргинский.
  • Мгновенное переключение языка в настройках.

🛠 Технологический стек

  • Язык: C# (.NET 8.0)
  • Платформа: Telegram Bot API (библиотека Telegram.Bot)
  • База данных: PostgreSQL
  • ORM: Entity Framework Core (Code First подход)
  • Архитектура: Сервисно-ориентированная архитектура (Service Layer).

Архитектурные особенности

Проект разделен на логические слои для удобства поддержки и расширения:

  • Handlers: Обработчики команд (/start, /quiz, /stats) и callback-запросов (нажатия кнопок).
  • Services: Бизнес-логика вынесена в сервисы (QuizService, UserService, StatisticsService).
  • Data: Контекст БД, миграции и сидер данных (DbInitializer).
  • Models/DTOs: Четкое разделение сущностей БД и объектов передачи данных.

🗄 Структура Базы Данных

Проект использует реляционную структуру данных:

  • Users — профили пользователей, настройки языка, общая статистика.
  • Categories — темы вопросов.
  • Questions — вопросы с привязкой к сложности и категории.
  • Answers — варианты ответов.
  • QuizSessions — игровые сессии (история игр).
  • UserAnswers — логирование каждого ответа пользователя для детальной аналитики.

🔮 Планы по развитию (Roadmap)

  • Webhook: Переход с Long Polling на Webhook для деплоя на VPS (Nginx + Docker).
  • Admin Panel: Веб-интерфейс для добавления новых вопросов без доступа к БД.
  • Режим "Марафон": Бесконечная игра до первой ошибки.
  • Добавление новых тем для векторин

📬 Контакты

По поводу вопросов и предложений: @underar1


Проект создан с целью популяризации и сохранения даргинского языка. 🏔️

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages