Telegram Translater bot

Цель проекта - разработать базу данных Telegram-бота для изучения английского языка.

Реализовано:

  • Спроектирована и создана База Данных в СУБД PostgreSQL
  • База Данных заполнена первоначальными данными
  • Бот спрашивает перевод слова и предлагает 5 вариантов ответа
  • При правильном ответе выводится сообщение об успешной попытке и предлагается перевести следующее слово
  • При неверном ответе предлагается попробовать еще раз
  • Пользователь также может добавлять собственные слова, при этом он должен быдет ввести сначало нужное слово, а затем его перевод.
  • Пользователь может удалять свои собственные пары слов
  • Каждый пользователь имеет доступ только к общим и собственным словам!

Состав проекта:

  • readme.md - файл с описанием проекта
  • main2.py - основной файл функционала бота
  • main.py - файл с функциями для работы с БД
  • requirements.txt - файл с зависимостями
  • create_db.py - файл с функцией для создания таблиц и структуры БД
  • filling_in_the_database.py - файл с функцией по первоначальному заполнению БД данными
  • diagrams.png - файл со схемой таблиц БД
  • .gitignore - игнорируемые файлы.(Такие как config.py)

Все конфиденциальные данные занесены в config.py

  • TOKEN = ''
  • password = ''
  • database = ''
  • user = ''

Установка

У вас должны быть установлены зависимости проекта

  1. Клонирование репозитория

git clone https://github.com/backsty/Telegram-Translater-bot.git

  1. Переход в директорию

cd kursovaya_db

  1. Создание виртуального окружения

python3 -m venv venv

  1. Активация виртуального окружения

Для Windows venv\Scripts\activate

Для Linux source venv\Scripts\activate

  1. Установка зависимостей

pip3 install -r requirements.txt

  1. Запуск скрипта для демонстрации возможностей бота

python3 main2.py --help

Описание коммитов

Название Описание
build Сборка проекта или изменения внешних зависимостей
sec Безопасность, уязвимости
ci Настройка CI и работа со скриптами
docs Обновление документации
feat Добавление нового функционала
fix Исправление ошибок
perf Изменения направленные на улучшение производительности
refactor Правки кода без исправления ошибок или добавления новых функций
revert Откат на предыдущие коммиты
style Правки по кодстайлу (табы, отступы, точки, запятые и т.д.)
test Добавление тестов

Инструменты/ дополнительные материалы, которые могут пригодиться.

  1. Python + IDE(Pycharm).
  2. Git + GitHub.
  3. Postgre + PgAdmin.
  4. Статья по разработке бота в Telegram.
  5. Инструкция по созданию бота в Telegram.
  6. pyTelegramBotAPI.
  7. Основа бота - код из модуля main.py.
  8. Исходный код в модуле main.py работает. Чтобы запустить бота нужно ввести команду /start в переписке с ним.
  9. Прототип кода из видео. Видео доступно в личном кабинете.

Инструкция к работе над проектом

Программу-бота, должна выполнять следующие действия.

  1. Заполнить базу данных общим набором слов для всех пользователей (цвета, местоимения и т.д.). Достаточно 10 слов.
  2. Спрашивать перевод слова, предлагая 4 варианта ответа на английском языке в виде кнопок.
  3. При правильном ответе подтверждать ответ, при неправильном - предлагать попробовать снова.
  4. Должна быть реализована функция добавления нового слова.
  5. Должна быть реализована функция удаления слова. Удаление должно быть реальзовано персонально для пользователя.
  6. Новые слова не должны появляться у других пользователей.
  7. Работа с ботом после запуска должна начинаться с приветственного сообщения.
Вот пример такого сообщения

Привет 👋 Давай попрактикуемся в английском языке. Тренировки можешь проходить в удобном для себя темпе.

У тебя есть возможность использовать тренажёр, как конструктор, и собирать свою собственную базу для обучения. Для этого воспрользуйся инструментами:

  • добавить слово ➕,
  • удалить слово 🔙.

Ну что, начнём ⬇️

В качестве примера интерфейса бота можете воспользоваться следующим референсом:

Примерный дизайн бота

возможный интерфейс бота


Дополнительные функции бота:

После добавления нового слова выводить количество слов, которые изучает пользователь.