Данный проект представляет собой бота Учебного центра, с использованием FastAPI для поднятия веб-сервера и обработки запросов, а также с реализацией Telegram MiniApp для приёма заявок на коммерческое предложение и их обработки. Бот работает через webhook и взаимодействует с базой данных, с использованием асинхронной SQLAlchemy. Веб-приложение имеет функционал приёма заявок от клиентов, просмотр заявок клиентов и панель администратора для обработки заявок и формирования коммерческого предложения в Word формате.
- Backend: FastAPI
- Telegram Bot: Aiogram
- Telegram API: Webhooks
- ORM: SQLAlchemy (aiosqlite)
- База данных: SQLite
- Миграции: Alembic
- Валидация: Pydantic
pip install -r requirements.txtВ проект необходимо добавить .env файл, со следующими переменными
- BOT_TOKEN - токен телеграм бота
- BASE_SITE - домен приложения
- ADMIN_ID - ID телеграм аккаунта администратора
При команде start бота, приложение ищет в базе данных пользователя и выводит приветствие, если пользователь не найден - произведется добавление его в базу данных.
Пользователи могут отправить заявку на коммерческое предложение по образовательным услугам выбирая вид и программы обучения. В одну заявку может быть добавлено несколько услуг.
После регистрации заявки, происходит оповещение в Телеграм
Пользователя / Администратора:
- Пользователи могут видеть свои отправленные заявки на отдельной странице, разделенные на статусы отработки
- Администратор может видеть все заявки пользователей и отправлять на отработку "Заявки в работе"
По команде администратора на направление заявки на "Отработку" ему откроется страница с введением стоимости по каждой услуге заявки
После введения стоимости:
- администратору придёт сформированное коммерческое предложение в формате docx, которое останется только подписать
- пользователю, придёт сообщение о том, что его заявка отработана с установленным ценовым предложением и в ближайшее время он получит подписанное коммерческое предложение









