Skip to content

DyscoWorld/DDD_project

Repository files navigation

English Learning Telegram Bot

Этот Telegram-бот предназначен для изучения английского языка. Он позволяет пользователям добавлять свои слова, использовать готовые наборы слов (паки), запускать тренировки в любое время и автоматически проводить ежедневные тренировки по расписанию. Суть тренировки заключается в том, что бот отправляет английские слова, а пользователь должен отправить их перевод.

Основные функции

  1. Добавление своих слов: Пользователь может добавлять свои слова и их переводы для изучения.
  2. Добавление паков слов: Пользователь может добавлять готовые наборы слов (паки) для изучения.
  3. Запуск тренировки в любой момент: Пользователь может запустить тренировку в любое время, чтобы проверить свои знания.
  4. Ежедневные тренировки по расписанию: Бот автоматически проводит тренировки раз в день, чтобы помочь пользователю регулярно повторять слова.

Стек технологий

  • C# 12
  • .NET 8
  • Telegram.Bot (библиотека для работы с Telegram API)
  • MongoDB (база данных для хранения слов и пользовательских данных)
  • EntityFrameworkCore (ORM для работы с базой данных)

Архитектура проекта

Проект построен по архитектуре DDD (Domain-Driven Design) и разделен на несколько подпроектов:

  • DDD.Domain: Содержит доменные модели и бизнес-логику.
  • DDD.Infrastructure: Реализация инфраструктурных сервисов, таких как работа с базой данных.
  • DDD.Models: Модели данных, используемые в проекте.
  • DDD.Presentation: Слой представления, включающий Telegram-бота и обработчики команд.
  • SchedulerService: Сервис для планирования и выполнения ежедневных тренировок.

Инструкция по запуску

Запуск с использованием Docker и Docker Compose

  1. Установите Docker и Docker Compose:

    • Убедитесь, что у вас установлены Docker и Docker Compose. Если нет, следуйте официальной документации для установки:
  2. Клонируйте репозиторий:

    git clone https://github.com/your-repository/english-learning-bot.git
    cd english-learning-bot
  3. Создайте файл .env: В корне проекта создайте файл .env и заполните его необходимыми переменными окружения:

    TELEGRAM_BOT_TOKEN=your_telegram_bot_token
    MONGODB_CONNECTION_STRING=mongodb://mongo:27017
    MONGODB_DATABASE_NAME=english_learning_db
    
  4. Запустите проект с помощью Docker Compose:

    docker-compose up --build

    Эта команда соберет и запустит все необходимые сервисы, включая MongoDB и Telegram-бота.

  5. Проверка работы: После успешного запуска, бот будет доступен в Telegram. Вы можете начать добавлять слова и запускать тренировки.

Запуск без Docker

Если вы хотите запустить проект без Docker, выполните следующие шаги:

  1. Установите .NET 8 SDK:

  2. Установите MongoDB:

  3. Настройте подключение к MongoDB:

    • В файле appsettings.json укажите строку подключения к вашей базе данных MongoDB.
  4. Запустите проект:

    • Перейдите в папку DDD.Presentation и выполните команду:

      dotnet run
    • Перейдите в папку SchedulerService и выполните команду:

      dotnet run
  5. Проверка работы: После запуска, бот будет доступен в Telegram. Вы можете начать добавлять слова и запускать тренировки.

Лицензия

Этот проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •