Данный проект представляет собой бота для мастера маникюра с использованием FastAPI для поднятия веб-сервера и обработки запросов, а также с реализацией Telegram MiniApp для приема заявок. Бот работает через вебхуки и взаимодействует с базой данных SQLite с использованием SQLAlchemy. Веб-приложение поддерживает статические страницы и функционал для работы администратора и клиентов. Также использовался APScheduler для фоновых и временных задач.
- Backend: FastAPI
- Telegram API: Aiogram + Webhooks
- ORM: SQLAlchemy
- База данных: SQLite
- Миграции: Alembic
- Telegram MiniApp: Мини-приложение для приема и обработки записей на маникюр.
- Веб-интерфейс:
- Главная страница.
- Страница с формой для записи.
- Страница просмотра своих записей для пользователей.
- Страница просмотра и управления всех записей для администратора.
- Страница создания расписания для администратора.
- Страница просмотра услуг для пользователей.
- Страница просмотра, редактирования и удаления услуг для администратора.
- Страница просмотра всех заявок для администратора.
- Телеграм-бот:
- Возможность добавления ссылки на MiniApp в командное меню, инлайн-клавиатуру и текстовую клавиатуру.
- База данных: Хранение данных о записях пользователей и их статусе.
- Прием записей через Telegram MiniApp: Пользователи могут создать запись на маникюр через MiniApp.
- Просмотр записей:
- Клиенты могут видеть свои записи на отдельной странице.
- Администраторы могут управлять записями через интерфейс администратора.
- Подтверждение записи:
- За день до назначенной записи, клиенту придет сообщение с вопросом придет ли он точно.
- Если клиент подтвердил запись, администратору придет об этом сообщение, в противном случае, придет сообщение об отмене записи и запись удалится из БД.
- Просмотр услуг:
- Клиенты могут видеть все доступные услуги для записи на отдельной странице.
- Администраторы могут управлять услугами через интерфейс администратора.
- Составление расписания:
- При выборе какой-либо даты, клиенту сразу подтягиваются только доступные времена для записи. Если времени нет, то запись будет недоступны.
- Администраторы могут составлять расписание через интерфейс администратора.
- Интеграция MiniApp в Telegram:
- Установка ссылки на MiniApp в командное меню, инлайн-кнопки и текстовые клавиатуры бота.
- Фоновые задачи:
- После того, как дата и время записи прошли, запись автоматические отправляется в архив.
- Когда администраторы составляют расписание, старые записи автоматически будут удаляться.
- Миграции с Alembic: Для обновления схемы базы данных используется Alembic.
- Клонирование репозитория
git clone https://github.com/Incomplite/Telegram-bot-with-webhooks.git- Переход в директорию бота
cd Telegram-bot-with-webhooks- Создание виртуального окружения
python3 -m venv venv- Активация виртуального окружения
venv/Scripts/activate- Установка зависимостей
pip3 install -r requirements.txt- Выполнение миграций Alembic
alembic upgrade head- Запуск бота
uvicorn src.main:appЕсли у вас возникли сложности или вопросы по использованию, создайте обсуждение в данном репозитории или напишите на электронную почту blocktapok@gmail.com.