# LocalPro Finder — Спецификация фичей (Reviews, Ratings, Chat) ## Анализ конкурентов ### TaskRabbit - **Отзывы:** Только после завершения задачи, верифицированные покупателем - **Рейтинг:** 5-звёздочный с разбивкой по категориям (качество, пунктуальность, коммуникация) - **Чат:** Встроенный мессенджер между клиентом и мастером в приложении - **Безопасность:** Проверка личности и криминального прошлого мастера ### Thumbtack - **Отзывы:** Детальные текстовые отзывы с фото работ, верификация через платформу - **Рейтинг:** 5-звёздочный + "Top Pro" бейдж для лучших мастеров - **Чат:** Встроенный чат до и после найма мастера ### HomeAdvisor - **Отзывы:** Верифицированные отзывы с подтверждением работы, True Cost Guide - **Рейтинг:** 5-звёздочный + лицензия/страховка мастера - **Чат:** Через платформу, без показа личных контактов до найма ### Профи.ру (RU) - **Отзывы:** Только после работы, проверка каждого отзыва, "Пять с плюсом" бейдж - **Рейтинг:** 5-звёздочный + количество отзывов влияет на позицию в выдаче - **Чат:** Мастера пишут сами клиенту, чат внутри платформы --- ## Фича 1: Система отзывов и рейтингов ### Модель данных ```yaml Review: id: uuid master_id: uuid client_id: uuid project_id: uuid (обязательно для верификации) rating: int(1-5) categories: quality: int(1-5) punctuality: int(1-5) communication: int(1-5) professionalism: int(1-5) text: string(max 2000) photos: array[media_url] (до 5 фото работ) verified: bool (только после завершения проекта) helpful_votes: int created_at: datetime updated_at: datetime ``` ### Правила - Отзыв можно оставить **только** после завершённого проекта - Каждый отзыв проходит модерацию (AI + ручная проверка для подозрительных) - Мастер может ответить на отзыв в течение 7 дней - Клиент может отредактировать отзыв в течение 48 часов - Отзывы с фото получают приоритет в выдаче ### Расчёт рейтинга мастера ```python rating = (reviews.aggregate(rating) * 0.6 + reviews.aggregate(quality) * 0.25 + reviews.count() * 0.15) # Минимум 3 отзыва для отображения рейтинга ``` ### Бейджи и уровни - ⭐ "Новичок" — < 10 отзывов - ⭐⭐ "Надёжный" — 10+ отзывов, рейтинг > 4.5 - ⭐⭐⭐ "Профи" — 50+ отзывов, рейтинг > 4.7 - 🏆 "Мастер года" — топ-3 в категории по отзывам --- ## Фича 2: Встроенный чат ### Архитектура ```yaml ChatMessage: id: uuid chat_id: uuid (project-based) sender_id: uuid content_type: enum[text, image, file, voice] content: string/blob reply_to: uuid (reply to message) read_at: datetime created_at: datetime Chat: id: uuid project_id: uuid master_id: uuid client_id: uuid status: enum[active, completed, archived] last_message_at: datetime ``` ### Функционал - **Текстовые сообщения** — мгновенная доставка (WebSocket) - **Голосовые сообщения** — до 2 минут, конвертация в текст для поиска - **Фото работ** — мастер может присылать фото процесса/результата - **Файлы** — договоры, сметы, документы - **Ответ на сообщение** (reply) - **Статус прочтения** (двойные галочки) - **Поиск по чату** — по ключевым словам ### Правила безопасности - Контакты мастеров скрыты до начала проекта - Чат ведётся только в рамках активного проекта - История сохраняется 2 года после завершения - Модерация на предмет оскорблений и спама --- ## Фича 3: AI-оценка стоимости (до выезда) ### Модель ```yaml PriceEstimate: project_id: uuid category: string location: geo complexity: enum[simple, medium, complex] estimated_cost_min: decimal estimated_cost_max: decimal confidence: float(0-1) factors: - {name: "area", value: sqm} - {name: "materials_needed": bool} - {name: "urgency": enum[standard, rush]} ``` ### Источники данных для обучения - Исторические цены по категориям и регионам - Средние чеки конкурентов (TaskRabbit, Профи.ру) - Региональные коэффициенты стоимости работ - Сезонность спроса --- ## Фича 4: Онлайн-диагностика проблемы ### Flow 1. Клиент описывает проблему (текст + фото) 2. AI анализирует и задаёт уточняющие вопросы 3. Мастер получает диагностику перед выездом 4. Мастер подтверждает/корректирует оценку ### Пример ``` Клиент: "Потёк кран на кухне, капает" AI → Вопросы: "Какой тип крана? (однорычажный / с двумя ручками)" Мастер → "Выезжаю, замена картриджа ~1500₽" ``` --- ## Фича 5: Подписка на обслуживание дома ### Тарифы | Пакет | Цена/мес | Включено | |-------|----------|----------| | Базовый | 990₽ | 1 выезд/мес, скидка 10% на доп. работы | | Стандарт | 2490₽ | 3 выезда/мес, приоритетный вызов, скидка 20% | | Премиум | 4990₽ | Безлимитные выезды, мастер в резерве, скидка 30% | ### Преимущества подписки - Фиксированная цена на типовые работы - Приоритетный выезд (в течение 2 часов) - Персональный менеджер - Бесплатная диагностика --- ## Технический стек для реализации ### Backend - **Язык:** Python (FastAPI) / Node.js (NestJS) - **База данных:** PostgreSQL + Redis (кэш рейтингов) - **Чат:** WebSocket (Socket.IO / Pusher) - **Хранилище медиа:** S3-compatible (MinIO) ### Frontend - **Mobile-first:** React Native / Flutter - **Web:** Next.js (SSR для SEO) ### AI/ML - **Оценка стоимости:** XGBoost + исторические данные - **Диагностика:** Fine-tuned LLM (Qwen 7B или аналог) - **Модерация отзывов:** BERT classifier --- ## Приоритеты разработки 1. **MVP (2 недели):** Чат + базовые отзывы 2. **V1 (4 недели):** Рейтинги + AI-оценка стоимости 3. **V2 (6 недель):** Онлайн-диагностика + подписки 4. **V3 (8 недель):** Бейджи, модерация, аналитика