/pyrogram_test

Telegram-бот для управления задачами пользователей

Primary LanguagePythonMIT LicenseMIT

pyrogram_test

Python Version

Telegram-бот для управления задачами пользователей.

Переменные окружения

  • TELEGRAM_BOT_TOKEN: API ключ от Telegram-бота. Его можно получить у Отца ботов. Введите команду /newbot в чате с ним и следуйте инструкциям.
  • API_ID: идентификатор API, полученный от платформы API Telegram.
  • API_HASH: хеш API, полученный от платформы API Telegram.
  • DATABASE_CONNECTION_STRING: Ссылка с параметрами БД в формате - postgresql://<имя_пользователя>:{<пароль>}@localhost:5432/<имя_БД> . Например, postgresql://postgres:postgres@localhost:5432/pyrogram_db . Для Docker используется вместо localhost название сервиса базы данных postgres: postgresql://postgres:postgres@postgres:5432/pyrogram_db .
  • SECRET_KEY: обязательный ключ для шифрования данных. Можно сгенерировать на сайте https://fernetkeygen.com/

Запуск приложения через консоль

  • Клонируем ссылку

    git clone https://github.com/wezbicka/pyrogram_test
  • Переходим в папку с локальным проектом

    cd pyrogram_test
  • Устанавливаем виртуальное окружение.

    Python 3.12 уже должен быть установлен на компьютер.

    Создаём виртуальное окружение Linux/Mac:

    python3 -m venv venv

    Создаём виртуальное окружение Windows:

    python -m venv venv

    Если у Вас на компьютере несколько версий python используйте эту команду для создания виртуального окружения:

    py -3.12 -m venv venv

    Активируем окружение, выполнив команду в терминале:

    source venv/bin/activate

    В Windows для запуска виртуального окружения выполните команду в командной строке:

    venv\Scripts\activate
  • Перейдите в рабочий каталог:

    cd pyrogram_test
  • Для виртуального окружения принимаем зависимости:

    pip install -r requirements.txt
  • Создаём файл .env и прописываем переменные окружения.

  • Обязательно прописываем все параметры, находящиеся в .env.example

  • Запускаем локальный сервер:

    python main.py

Запуск приложения через docker

  • Клонируем ссылку

    git clone https://github.com/wezbicka/pyrogram_test
  • Переходим в папку с локальным проектом

    cd pyrogram_test
  • Создаём новый файл .env (пример заполнения есть в .env.example) и подставляем значения.

    cp example.env .env
  • Запускаем docker-compose файл

    docker-compose up --build

Используемые технологии

  • Python 3.12
  • SQLAlchemy
  • Pyrogram
  • PostgreSQL

Функционал

  1. Telegram-бота на Python с использованием библиотеки Pyrogram.
  2. Бот имеет следующие функциональности:
    1. Регистрация новых пользователей:
      1. При первом входе пользователю предоставлена возможность зарегистрироваться в системе, введя свое имя и выбрав уникальный логин.
      2. Информация о зарегистрированных пользователях сохранится в базе данных.
    2. Создание задач:
      1. Зарегистрированный пользователь имеет возможность создавать новые задачи, указывая их название и описание.
      2. Информация о задачах сохраняется в базе данных и связана с соответствующим пользователем.
    3. Просмотр и управление задачами:
      1. Пользователь имеет возможность просматривать список своих задач.
      2. Бот предоставляет интерфейс для управления задачами:
        • возможность пометить задачу как выполненную (изменить статус задачи);
        • возможность удалить задачу.
    4. Использование постоянных и inline меню:
      1. Бот должен использовать постоянные меню для навигации по функциональностям
      2. Бот должен использовать inline меню для взаимодействия с конкретными задачами.
    5. Выполнение SQL-запросов:
      1. Бот должен уметь выполнять SQL-запросы к базе данных.
      2. Результаты запросов должны быть корректно обработаны и представлены пользователю.

Цель

Тестовое задание