Repo Health

← К списку

sk-top3/sutki35

Создайте полнофункционального Telegram-бота для агентства недвижимости, который позволяет сдавать квартиры посуточно. Бот должен иметь каталог квартир, систему бронирования, интеграцию платежей и админ-панель для управления контентом. Технические требования 1. Архитектура и технологии · Фреймворк: Aiogram 3.x (асинхронный) · База данных: SQLite с SQLAlchemy 2.0 ORM · Оплата: Интеграция с ЮKassa/Telegram Payments · Состояния: FSM (Finite State Machine) для многошаговых сценариев · Конфигурация: python-dotenv для управления переменными окружения 2. Основные функции · Пользовательская часть: · Просмотр каталога квартир с фотографиями, описанием, ценами · Фильтрация по параметрам (цена, количество комнат, район) · Пошаговое бронирование с выбором дат · Оплата через Telegram Payments или ЮKassa · История бронирований пользователя · Система уведомлений о статусе брони · Административная часть: · Добавление/редактирование/удаление квартир · Загрузка фотографий (до 5 фото на квартиру) · Управление бронированиями (подтверждение, отмена) · Просмотр статистики (занятость, доходы) · Команда для рассылки уведомлений всем пользователям 3. Структура базы данных ```sql - Пользователи (user_id, username, full_name, phone, registration_date) - Квартиры (id, title, description, address, price_per_day, rooms, area, amenities, photos, is_available) - Бронирования (id, user_id, apartment_id, check_in, check_out, total_price, payment_status, booking_date, status) - Платежи (id, booking_id, transaction_id, amount, currency, status, payment_date) ``` 4. Интерфейс бота · Интуитивное меню с кнопками · Inline-кнопки для навигации по каталогу · Галерея фотографий квартир (использовать InputMediaPhoto для альбомов) · Календарь для выбора дат (можно использовать инлайн-клавиатуру) · Подтверждение брони с деталями перед оплатой · Чек после успешной оплаты Детальные инструкции для генерации кода 1. Структура проекта Создайте следующую структуру файлов: ``` real_estate_bot/ ├── data/ (директория для БД) ├── bot/ │ ├── __init__.py │ ├── config.py (настройки, загрузка .env) │ ├── database.py (модели SQLAlchemy, инициализация) │ ├── keyboards.py (все клавиатуры и inline-кнопки) │ ├── filters.py (кастомные фильтры, например, для админов) │ ├── states.py (состояния FSM для бронирования) │ ├── middlewares.py (при необходимости) │ ├── handlers/ │ │ ├── __init__.py │ │ ├── user_handlers.py (команды для пользователей) │ │ ├── admin_handlers.py (команды для админов) │ │ └── payment_handlers.py (обработка платежей) │ └── utils/ │ ├── __init__.py │ ├── payment.py (логика работы с платежами) │ └── notifications.py (отправка уведомлений) ├── .env.example (шаблон для .env файла) ├── requirements.txt ├── main.py (точка входа) └── README.md (инструкция по запуску) ``` 2. Требования к коду · Полностью асинхронная реализация · Обработка ошибок с try-except блоками · Валидация вводимых данных (дат, контактной информации) · Логирование ключевых событий · Комментарии на английском или русском языке для сложных участков кода 3. Ключевые сценарии для реализации Сценарий 1: Бронирование квартиры 1. Пользователь выбирает квартиру из каталога 2. Бот запрашивает дату заезда и выезда через FSM 3. Система проверяет доступность дат 4. Рассчитывается итоговая стоимость 5. Показывается подтверждение с деталями 6. Генерация платежного счета 7. Обработка успешной/неуспешной оплаты 8. Уведомление пользователя и администратора Сценарий 2: Добавление новой квартиры (админ) 1. Админ отправляет команду /add_apartment 2. Бот пошагово запрашивает: название, описание, адрес, цену, количество комнат, удобства 3. Запрос загрузки фотографий (поддержка нескольких фото) 4. Сохранение в БД и подтверждение 4. Интеграция платежей · Использование provider_token для Telegram Payments · Реализация PreCheckoutQuery и SuccessfulPaymentHandler · Альтернативная интеграция с ЮKassa API для карточных платежей · Обновление статуса брони после успешной оплаты 5. Тестовые данные Для проверки работоспособности создайте: · 5 тестовых квартир с разными параметрами · 2 тестовых пользователя (обычный и администратор) · Систему сброса данных для тестирования (команда /test_reset для админа) Инструкция для проверки После генерации кода, пожалуйста, протестируйте следующее: 1. Запуск бота: Убедитесь, что бот запускается без ошибок 2. Команда /start: Проверьте ответ бота и создание записи в БД 3. Каталог квартир: Проверьте отображение всех квартир, фотографий, кнопок 4. Процесс бронирования: Пройдите полный цикл бронирования (без реальной оплаты, используя тестовый режим) 5. Админ-функции: Добавьте новую квартиру, проверьте загрузку фото 6. Платежи: Протестируйте успешную и отмененную оплату Требования к документации 1. Подробный README.md с инструкцией по установке и настройке 2. .env.example с объяснением всех переменных окружения 3. Комментарии в коде для сложных функций 4. Примеры запросов к API платежной системы (если используется внешняя) Критерии успешной реализации · Бот запускается и отвечает на команды · Каталог квартир отображается корректно · Процесс бронирования работает от начала до конца · Оплата в тестовом режиме проходит успешно · Админ-панель позволяет управлять квартирами · Все данные сохраняются в БД и корректно извлекаются · Обработка ошибок (некорректные даты, недоступность квартиры и т.д.) · Многоязычные сообщения об ошибках и успешных операциях Сгенерируйте полный код проекта, готовый к запуску после установки зависимостей и настройки переменных окружения. Код должен быть производственного качества с учетом лучших практик Python и Aiogram.

Python · рейтинг 0 · 👍 0 · ❤️ 0 · 💎 0 · 0 форков · ссылка на SourceCraft

Дата анализа: 29.09.2026 22:57

32
Repo Health Score
Скачать Markdown

Почему такой балл

Категории без данных не обнуляют итог: их вес перераспределяется между категориями, где балл есть.

Сильные и слабые стороны

Слабые: Документация: 38, Активность: 0, Issues: нет данных, Проект давно не проявлял активность, Не найдено тестов, Мало релизов за последние 30 дней, Мало merge requests за последние 30 дней, Отсутствует лицензия

Сводка YandexGPT

Находки и рекомендации

История проверок

  1. 29.09.2026 22:57 — 32

Безопасность (AppSec) и CI/CD здесь не оцениваются: к ним есть доступ только по PAT владельца репозитория.