Skip to content

yulilok/DevoloperManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Developer Manager Bot

Discord-бот для управления задачами разработчиков с интеграцией Google Таблиц. Предназначен для организации процесса разработки в команде.

🚀 Возможности

Для разработчиков

  • Просмотр своих задач — команда /my_tasks показывает все активные задачи
  • Завершение задач — удобный dropdown для выбора задачи + отправка файла/ссылки
  • Уведомления в ЛС — бот отправляет сообщения о принятии или отклонении задачи

Для руководителей

  • Проверка идей — кнопки "Принять" и "Отклонить" для новых идей
  • Настройка задач — выбор роли, приоритета, дедлайна при принятии идеи
  • Проверка выполнения — кнопки для принятия или отклонения завершённой задачи
  • Все данные в Google Таблице — ничего не теряется при перезагрузке

Автоматизация

  • Автоматические заголовки — бот сам создаёт нужные колонки в таблице
  • Уведомления разработчикам — ЛС с результатом проверки
  • Каналы — автоматическая публикация в нужных каналах

📋 Требования

  • Python 3.8+
  • Raspberry Pi Zero 2W (или любой другой сервер)
  • Discord Bot Token
  • Google Sheets API credentials
  • Google Таблица

🔧 Установка

1. Клонируйте репозиторий

git clone <repository-url>
cd MSKGDevoloperManager

2. Создайте виртуальное окружение

python -m venv .venv
source .venv/bin/activate  # Linux/Mac
# или
.venv\Scripts\activate  # Windows

3. Установите зависимости

pip install -r requirements.txt

4. Настройте переменные окружения

Создайте файл .env в корне проекта:

DISCORD_TOKEN=your_discord_bot_token_here
SHEET_ID=your_google_sheet_id_here
GUILD_ID=your_guild_id_here  # опционально, для тестов

5. Настройте Google Sheets

  1. Создайте новую Google Таблицу
  2. Скопируйте её ID из URL (между /d/ и /edit)
  3. Вставьте ID в .env как SHEET_ID
  4. Скачайте credentials.json из Google Cloud Console:
    • Создайте проект в Google Cloud Console
    • Включите Google Sheets API и Google Drive API
    • Создайте Service Account
    • Скачайте JSON-ключ и сохраните как credentials.json в корне проекта
  5. Откройте доступ таблице для Service Account:
    • Откройте таблицу → Поделиться
    • Добавьте email из credentials.json (поле client_email)
    • Дайте права редактора

6. Настройте каналы Discord

В файле config.py укажите ID каналов:

IDEAS_CHANNEL_ID = 123456789012345678  # Для предложений идей
APPROVAL_CHANNEL_ID = 123456789012345679  # Для проверки идей руководством
TASKS_CHANNEL_ID = 123456789012345680  # Для опубликованных задач

Как получить ID канала:

  1. В Discord включите режим разработчика (Настройки → Дополнительно → Режим разработчика)
  2. ПКМ по каналу → Копировать ID

📖 Использование

Команды бота

Команда Описание
/my_tasks Показать ваши активные задачи и завершить их

Рабочий процесс

1. Предложение идеи

  1. Любой пользователь пишет в канале идей
  2. Появляется кнопка "Отправить идею для разработки"
  3. Заполняется модальное окно (название + описание)
  4. Идея публикуется в канале проверки

2. Проверка идеи (руководство)

  1. В канале проверки появляются кнопки "Принять" / "Отклонить"
  2. При принятии:
    • Открывается окно настройки (роль, приоритет, дедлайн, заметки)
    • Задача публикуется в канале задач
  3. При отклонении:
    • Вводится причина отклонения
    • Отправляется уведомление автору

3. Выполнение задачи (разработчик)

  1. Разработчик видит задачу в канале задач
  2. Нажимает "Взять задачу"
  3. Задача закрепляется за разработчиком

4. Завершение задачи (разработчик)

  1. Команда /my_tasks → выбор задачи из dropdown
  2. Появляется сообщение с кнопками
  3. Варианты отправки:
    • Прикрепить файл → ответить на сообщение бота
    • Добавить ссылку → кнопка "Добавить ссылку"
  4. Кнопка "Отправить на проверку"

5. Проверка выполнения (руководство)

  1. В канале проверки появляются кнопки "Принять" / "Отклонить"
  2. При принятии:
    • Статус: completed
    • Разработчику в ЛС: "✅ Задача принята"
  3. При отклонении:
    • Статус: in_progress
    • Вводится причина
    • Разработчику в ЛС: "❌ Задача отклонена" + причина

📊 Структура Google Таблицы

Бот автоматически создаёт следующие колонки:

Колонка Описание
ID Уникальный ID задачи
Name Название задачи
Description Описание
Status Статус (pending_approval, approved, in_progress, review, completed, rejected)
Priority Приоритет (Низкий, Средний, Высокий)
Deadline Дедлайн (YYYY-MM-DD)
Assignee ID разработчика
SubmittedBy ID автора идеи
Role Требуемая роль (Скриптер, Билдер, Аниматор, Моделер)
RejectionReason Причина отклонения
CompletionLink Ссылка на результат
CompletionFile Имя файла
CompletedAt Дата завершения
Reviewer ID проверяющего

🔒 Безопасность

  • Не коммитьте .env и credentials.json — добавьте их в .gitignore
  • Храните токены в секрете — не передавайте никому
  • Используйте переменные окружения — для всех чувствительных данных

🐛 Решение проблем

Бот не запускается

ValueError: DISCORD_TOKEN не задан

→ Проверьте .env файл и убедитесь, что токен указан правильно

Ошибка Google Sheets

FileNotFoundError: credentials.json не найден

→ Скачайте credentials.json из Google Cloud Console

Бот не видит каналы

→ Проверьте ID каналов в config.py и убедитесь, что бот имеет доступ к этим каналам

Взаимодействия не работают

→ Перезапустите бота и подождите несколько секунд


📁 Структура проекта

MSKGDevoloperManager/
├── bot.py                 # Основной код бота
├── config.py              # Конфигурация
├── credentials.json       # Google API ключи (не коммить!)
├── requirements.txt       # Python зависимости
├── .env                   # Переменные окружения (не коммить!)
├── .gitignore             # Игнорируемые файлы
└── README.md              # Этот файл

🛠️ Разработка

Запуск в режиме отладки

python bot.py

Просмотр логов

Бот выводит логи в консоль:

  • Инициализация Google Sheets
  • Отправка сообщений
  • Ошибки взаимодействия

📝 Лицензия

См. файл LICENSE


🤝 Поддержка

По вопросам обращайтесь к разработчику или создайте issue в репозитории.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages