Техническое задание: Чат-бот для кофейни
Цель проекта
Разработать Telegram-бота на чистом Python, который автоматизирует процесс приема заказов и взаимодействия с клиентами кофейни. В боте должна быть предусмотрена административная панель для управления контентом и заказами.
Основные требования
- Бот работает на Python без использования сторонних веб-фреймворков (только стандартные библиотеки и библиотеки для Telegram API).
- Реализована админ-панель для управления меню: добавление, удаление, изменение позиций (напитки, десерты, закуски).
- Возможность просмотра и обработки заказов администратором (подтверждение, отметка о готовности).
- Интерфейс бота для клиентов: просмотр меню, оформление заказа, выбор способа получения (самовывоз / доставка).
- Реализована базовая система уведомлений для администратора о новых заказах.
- Хранение данных: используется локальная БД (SQLite) или файловое хранилище.
Детали реализации
Стек технологий
- Язык: Python 3.x
- Библиотека для Telegram: python-telegram-bot (или аналогичная)
- База данных: SQLite
- Админка: реализована как набор команд внутри бота для авторизованных пользователей.
Функционал клиентской части
- Команда /start - приветствие, краткое описание бота.
- Команда /menu - вывод категорий и позиций меню с ценами и описанием.
- Возможность сделать заказ: выбрать позицию, количество, указать контактные данные (имя, телефон) и способ получения.
- Подтверждение заказа с итоговой стоимостью и номером заказа.
Функционал админ-панели
- Авторизация администратора по PIN-коду или паролю.
- Просмотр всех текущих заказов (с датой, статусом, контактами клиента).
- Изменение статуса заказа (новый, принят, готов, выдан).
- Управление меню: добавление новой позиции (название, описание, цена, категория), удаление или редактирование существующей.
- Команда /admin - вход в админ-панель.
Дополнительные пожелания
- Код должен быть чистым, с комментариями на русском или английском языке.
- Подготовить инструкцию по запуску (requirements.txt, переменные окружения для токена бота).
- Бот должен корректно обрабатывать ошибки ввода и подключения.
Ожидаемый результат
На выходе должен быть архив с исходным кодом, файлом базы данных (если создается заранее) и краткой инструкцией по запуску. Срок выполнения - до завтрашнего вечера.