Files
freelancer-match/localpro-finder-spec.md
T

8.0 KiB

LocalPro Finder — Спецификация фичей (Reviews, Ratings, Chat)

Анализ конкурентов

TaskRabbit

  • Отзывы: Только после завершения задачи, верифицированные покупателем
  • Рейтинг: 5-звёздочный с разбивкой по категориям (качество, пунктуальность, коммуникация)
  • Чат: Встроенный мессенджер между клиентом и мастером в приложении
  • Безопасность: Проверка личности и криминального прошлого мастера

Thumbtack

  • Отзывы: Детальные текстовые отзывы с фото работ, верификация через платформу
  • Рейтинг: 5-звёздочный + "Top Pro" бейдж для лучших мастеров
  • Чат: Встроенный чат до и после найма мастера

HomeAdvisor

  • Отзывы: Верифицированные отзывы с подтверждением работы, True Cost Guide
  • Рейтинг: 5-звёздочный + лицензия/страховка мастера
  • Чат: Через платформу, без показа личных контактов до найма

Профи.ру (RU)

  • Отзывы: Только после работы, проверка каждого отзыва, "Пять с плюсом" бейдж
  • Рейтинг: 5-звёздочный + количество отзывов влияет на позицию в выдаче
  • Чат: Мастера пишут сами клиенту, чат внутри платформы

Фича 1: Система отзывов и рейтингов

Модель данных

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 часов
  • Отзывы с фото получают приоритет в выдаче

Расчёт рейтинга мастера

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: Встроенный чат

Архитектура

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-оценка стоимости (до выезда)

Модель

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 недель): Бейджи, модерация, аналитика