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— логирование каждого ответа пользователя для детальной аналитики.
- Webhook: Переход с Long Polling на Webhook для деплоя на VPS (Nginx + Docker).
- Admin Panel: Веб-интерфейс для добавления новых вопросов без доступа к БД.
- Режим "Марафон": Бесконечная игра до первой ошибки.
- Добавление новых тем для векторин
По поводу вопросов и предложений: @underar1
Проект создан с целью популяризации и сохранения даргинского языка. 🏔️