diff --git a/README.md b/README.md
index 92c168c..2ee3bf4 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,16 @@
# RandomCoffeeBotTelegram
Random Coffee bot for the Telegram
+#### Проект телеграм-бота, который предоставляет возможность пообщаться с IT-специалистами - выпускниками разных IT направлений практикума.
+
# Содержание
-1. [БРИФ](#brief)
+1. [БРИФ](docs/materials/briff.md)
- 1.1 [Инструкции и ритуалы на проекте]()
+ 1.1 [Инструкции и ритуалы на проекте](docs/materials/instructions.md)
- 1.2 [ER - диаграмма сущностей](#er)
+ 1.2 [ER - диаграмма сущностей](docs/RandomCoffeeER.jpg)
2. [Структура проекта](#structure)
3. [Подготовка к запуску](#start)
@@ -31,12 +33,6 @@ Random Coffee bot for the Telegram
-# 1. БРИФ
-
-## 1.2. ER - диаграмма сущностей:
-ER диаграммы расположены в директории /docs в двух удобных форматах [.drowio, .jpg]
-![ER Диаграмма](/docs/RandomCoffeeER.jpg)
-
# 2. Структура проекта
| Имя | Описание |
@@ -311,4 +307,4 @@ make filldb
#### Рекомендации к написанию кода [Codestyle](https://github.com/Studio-Yandex-Practicum/RandomCoffeeBotTelegram/tree/develop/docs/codestyle.md)
-#### Диаграмма логики работы бота [Diagram](https://github.com/Studio-Yandex-Practicum/RandomCoffeeBotTelegram/tree/develop/docs/Diagramm_of_bot_logic.drawio)
\ No newline at end of file
+#### Диаграмма логики работы бота [Diagram](https://github.com/Studio-Yandex-Practicum/RandomCoffeeBotTelegram/tree/develop/docs/Diagramm_of_bot_logic.drawio)
diff --git a/docs/materials/briff.md b/docs/materials/briff.md
new file mode 100644
index 0000000..d212d34
--- /dev/null
+++ b/docs/materials/briff.md
@@ -0,0 +1,25 @@
+# Бриф
+
+**Цель проекта:** Обеспечить процесс формирования пар для Random Coffee между студентами курса IT-рекрутер и выпускниками IT-специальностей Практикума в Telegram
+
+**Задачи:**
+
+Создать Телеграм-бота.
+
+
+## Описание телеграм-бота:
+
+### [Схема состояний](https://github.com/Studio-Yandex-Practicum/RandomCoffeeBotTelegram/blob/develop/docs/Diagramm%20of%20bot%20logic.jpg) - визуальное изображение стейтов
+
+Ожидаемая функциональность:
+
+* создание профиля (учетной записи) каждого участника и хранение его в базе данных
+* создание пары между выпускником и рекрутером (нужно, чтобы бот не создавал * пары типа рекрутер-рекрутер или выпускник-выпускник)
+* рассылка контактов собеседников после создания пары
+* запрос обратной связи у участников (отправляет ссылку на форму)
+* повторный вопрос о создании пары после первого участия
+* режим администратора должен включать: сброс пар, запрос статистики по парам, удаление профилей (возможно, другие функции по администрированию бота и участников)
+
+
+### Начало работы:
+Пользователь заходит в телеграмм и вводит в поисковую строку **@название бота ,** кликает по найденному боту, видит краткое описание, нажимает кнопку menu, после чего появляется окно с 3 кнопками: Поддержка, Старт, Помощь. При нажатии на кнопку старт бот предлагает поучаствовать в неформальном разговоре с выпускником Практикума.
diff --git a/docs/materials/instructions.md b/docs/materials/instructions.md
new file mode 100644
index 0000000..090f361
--- /dev/null
+++ b/docs/materials/instructions.md
@@ -0,0 +1,61 @@
+# Инструкции
+
+### Общие правила коммуникации на проекте
+
+1. Рабочее время: распределение времени с пн-вс для студентов, пн-пт для PM и TL, но для решения важных вопросов можно связаться и в выходные:
+
+ PM - с 12:00 до 22.00 по мск;
+ TL Константин Райхерт - с 16.00 до 23.00 по мск;
+
+ - Работаем недельными спринтами (далее по скорости разработки).
+ - Стендапы понедельник, среда, пятница
+ - Еженедельные встречи с тимлидами один на один.
+ - В середине спринта (вт-чт) груминг задач для формирования бэклога на следующий спринт.
+
+2. Каналы коммуникации:
+ - пачка **Random_coffee_recruiter_bot_general** - анонсы и stand up
+
+3. Notion - место для базы
+
+### Ритуалы
+
+1. **Письменный стендап**
+
+Когда: понедельник, среда, пятница до 19:00
+Где: в тредах к сообщению в пачке
+Цель: собрать актуальную информацию о положении дел в команде, выявить направления, требующие проработки тимлидами/техлидами/кураторами
+Как: написать сообщение по установленному формату в треде в пачке. (ПМ создает тред с утра)
+
+2. **Встреча one-to-one**
+
+Когда: по необходимости
+Где: по видео, один на один с тимлидом
+Цель: решить вопросы вызывающие стопор, обменяться опытом.
+Как: участник команды договаривается о созвоне лично с тимлидом.
+
+3. **Ретро**
+
+Когда: по итогам спринта
+Где: по видео
+Цель: улучшение командных процессов за счет обсуждения предыдущих событий и процессов в команде, которые наблюдались в течение спринта
+Как: вместе анализируем спринт и отвечаем на вопросы:
+
+- Плюсы. Что шло хорошо в прошлой итерации?
+- Минусы. Какие проблемы были в прошлой итерации?
+- Идеи. Какие идеи появились по ходу ретроспективы?
+- План. Какие улучшения мы запланируем на следующую итерацию?
+(если необходимо, закрепить ответственного за конкретные события)
+
+4. **Организация встреч в Zoom**
+
+ - Описание встречи
+ - Цели
+ - Фиксированный тайминг
+ - Запись при необходимости
+
+5. **Стендап (в письменном формате)**
+- Что делал вчера:
+- Что буду делать сегодня:
+- Какие есть вопросы/проблемы (тегай того, с кем конкретно хочешь переговорить):
+ *Если вопросов/проблем нет, так и пишешь, что их нет*
+- Предложения/пожелания:
diff --git a/src/bot/bot_interface.py b/src/bot/bot_interface.py
index bca55e6..154dae1 100644
--- a/src/bot/bot_interface.py
+++ b/src/bot/bot_interface.py
@@ -5,7 +5,7 @@
from django.conf import settings
from telegram.ext import Application, ApplicationBuilder, PicklePersistence
-from bot.handlers import HANDLERS, help_hendler
+from bot.handlers.command_handlers import help_handler, start_handler
logger = logging.getLogger(__name__)
@@ -55,7 +55,7 @@ async def _build_app(self) -> Application:
.persistence(PicklePersistence(filepath=settings.PERSISTANCE_PATH))
.build()
)
- app.add_handlers([HANDLERS, help_hendler])
+ app.add_handlers([start_handler, help_handler])
return app
async def _manage_webhook(self) -> None:
diff --git a/src/bot/constants/buttons.py b/src/bot/constants/buttons.py
new file mode 100644
index 0000000..f3e1d26
--- /dev/null
+++ b/src/bot/constants/buttons.py
@@ -0,0 +1,4 @@
+GO_BUTTON = "GO"
+NEXT_TIME_BUTTON = "В следующий раз"
+PARTICIPATE = "Участвовать!"
+SUPPORT = "Написать в поддержку"
diff --git a/src/bot/constants/messages.py b/src/bot/constants/messages.py
index 473d16f..7fbec5b 100644
--- a/src/bot/constants/messages.py
+++ b/src/bot/constants/messages.py
@@ -6,3 +6,8 @@
"Вас возникли сложности в работе, или пожелания - "
"можете написать в поддержку"
)
+START_MESSAGE = (
+ "Наш бот предлагает тебе поучаствовать в неформальном разговоре с выпускником Практикума. "
+ 'Для этого необходимо нажать на кнопку "Go". Если вы не готовы на этой неделе участвовать в '
+ 'Random Coffee просто нажмите "В следующий раз".'
+)
diff --git a/src/bot/handlers.py b/src/bot/handlers.py
index 30cdbad..6be9fae 100644
--- a/src/bot/handlers.py
+++ b/src/bot/handlers.py
@@ -3,9 +3,6 @@
from telegram import Update
from telegram.ext import CallbackContext, CommandHandler
-from bot.constants.messages import HELP_MESSAGE
-from bot.keyboards.help_keyboard import help_keyboard
-
# Инициализация логгера
logging.basicConfig(
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
@@ -20,12 +17,4 @@ async def start_bot(update: Update, context: CallbackContext):
await update.message.reply_html(rf"Привет, {user.mention_html()}!")
-async def help_bot(update: Update, context: CallbackContext):
- """Функция-обработчик для команды /help."""
- await update.message.reply_html(
- text=(HELP_MESSAGE), reply_markup=help_keyboard
- )
-
-
HANDLERS = CommandHandler("start", start_bot)
-help_hendler = CommandHandler("help", help_bot)
diff --git a/src/bot/handlers/__init__.py b/src/bot/handlers/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/bot/handlers/command_handlers.py b/src/bot/handlers/command_handlers.py
new file mode 100644
index 0000000..abaee08
--- /dev/null
+++ b/src/bot/handlers/command_handlers.py
@@ -0,0 +1,26 @@
+from telegram import Update
+from telegram.ext import CallbackContext, CommandHandler
+
+from bot.constants.messages import HELP_MESSAGE, START_MESSAGE
+from bot.keyboards.command_keyboards import (
+ help_keyboard_markup,
+ start_keyboard_markup,
+)
+
+
+async def start(update: Update, context: CallbackContext) -> None:
+ """Функция-обработчик команды start."""
+ await update.message.reply_text(
+ text=START_MESSAGE, reply_markup=start_keyboard_markup
+ )
+
+
+async def help(update: Update, context: CallbackContext) -> None:
+ """Функция-обработчик для команды /help."""
+ await update.message.reply_html(
+ text=(HELP_MESSAGE), reply_markup=help_keyboard_markup
+ )
+
+
+start_handler = CommandHandler("start", start)
+help_handler = CommandHandler("help", help)
diff --git a/src/bot/keyboards/command_keyboards.py b/src/bot/keyboards/command_keyboards.py
new file mode 100644
index 0000000..58d1219
--- /dev/null
+++ b/src/bot/keyboards/command_keyboards.py
@@ -0,0 +1,28 @@
+from telegram import InlineKeyboardButton, InlineKeyboardMarkup
+
+from bot.constants.buttons import (
+ GO_BUTTON,
+ NEXT_TIME_BUTTON,
+ PARTICIPATE,
+ SUPPORT,
+)
+
+start_keyboard_markup = InlineKeyboardMarkup(
+ [
+ [
+ InlineKeyboardButton(text=GO_BUTTON, callback_data="go"),
+ InlineKeyboardButton(
+ text=NEXT_TIME_BUTTON, callback_data="next_time"
+ ),
+ ]
+ ]
+)
+
+help_keyboard_markup = InlineKeyboardMarkup(
+ [
+ [
+ InlineKeyboardButton(PARTICIPATE, callback_data="go"),
+ InlineKeyboardButton(SUPPORT, callback_data="support"),
+ ]
+ ]
+)
diff --git a/src/bot/keyboards/help_keyboard.py b/src/bot/keyboards/help_keyboard.py
deleted file mode 100644
index 3f28068..0000000
--- a/src/bot/keyboards/help_keyboard.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from telegram import InlineKeyboardButton, InlineKeyboardMarkup
-
-PARTICIPATE = "Участвовать!"
-SUPPORT = "Написать в поддержку"
-
-keyboard_buttons = [
- [
- InlineKeyboardButton(PARTICIPATE, callback_data="go_bot"),
- InlineKeyboardButton(SUPPORT, callback_data="support_bot"),
- ]
-]
-help_keyboard = InlineKeyboardMarkup(keyboard_buttons)
diff --git a/src/core/settings.py b/src/core/settings.py
index 42e134e..e1d2a27 100644
--- a/src/core/settings.py
+++ b/src/core/settings.py
@@ -3,8 +3,6 @@
import environ
from dotenv import find_dotenv
-DEBUG = True
-
BASE_DIR = Path(__file__).resolve().parent.parent
env = environ.Env()
@@ -15,6 +13,8 @@
ALLOWED_HOSTS = env.list('ALLOWED_HOSTS', default=['*'])
+AUTH_USER_MODEL = "admin_user.AdminUser"
+
DEFAULT_APPS = [
"django.contrib.admin",
"django.contrib.auth",