Pravum — техническое описание

0. Бизнес-цели и успех (обязательно)

  • Цель бизнеса (12–24 мес): Получать 60+ квалифицированных обращений в месяц и довести долю корпоративных клиентов на абонементе до 40% за 18 мес.
  • Кто платит vs кто пользуется: Платит управляющий партнёр юрфирмы; пользуются физлица и представители бизнеса.
  • Ценность для пользователя (одной фразой): Быстро понять, что юристы решали похожие задачи, и записаться на первичную консультацию с понятной ценой.
  • KPI успеха v1 (3–7 измеримых):
    • ≥ 60 заявок в месяц
    • Доля квалифицированных заявок ≥ 50%
    • Конверсия консультация → договор ≥ 35%
    • Конверсия сайта ≥ 3%
    • ≥ 10 опубликованных обезличенных кейсов
  • Монетизация / экономика: Первичная консультация 3 000 ₽ (засчитывается в договор), ведение дел по фиксированной цене или почасово, абонентское обслуживание бизнеса от 25 000 ₽/мес.
  • Go-to-market: Контекст по узким запросам (арбитраж, банкротство, семейные споры), Право.ру и профрейтинги, вебинары для бизнеса, партнёрство с бухгалтерскими фирмами.
  • SEO / контент / маркетинг в v1: Страница на каждую практику, обезличенные кейсы как контент, FAQ с микроразметкой, статьи-разборы; разметка LegalService/Attorney.
  • Конкуренты / аналоги (1–3) и отличие: Крупные фирмы (Пепеляев, Качкин), онлайн-сервисы (Правовед), частные юристы. Отличие: фиксированные цены, публичные обезличенные кейсы, ответ за 2 часа.
  • Анти-цели v1: Не публикуем ПД клиентов и номера дел, не обещаем гарантированный исход, не даём бесплатных онлайн-ответов в чате в v1.

1. Название и суть

  • Название проекта: Pravum — сайт юридической фирмы
  • Одной фразой: Сайт юрфирмы с практиками, обезличенными кейсами, FAQ и записью на консультацию.
  • Для кого: Собственники малого и среднего бизнеса и физлица со спорами, сделками, наследственными и семейными вопросами.
  • Проблема: Клиенты не доверяют юристам без подтверждённого опыта и боятся непредсказуемых счетов.
  • Связь с §0: каждый сценарий v1 ведёт к KPI конверсии и измеряется целями в аналитике.

2. Границы

IN SCOPE (обязательно в v1):

  • Hero и УТП
  • Специализации: корпоративное право, арбитраж, недвижимость, семейное и наследственное, банкротство, трудовые споры
  • Кейсы: задача, действия, результат — без имён, ИНН, номеров дел
  • Команда и квалификация
  • Первичная консультация: формат, цена, что подготовить
  • FAQ-аккордеон
  • Форма заявки с выбором практики и удобного способа связи
  • Админка: заявки, кейсы, FAQ

OUT OF SCOPE:

  • Личный кабинет клиента
  • Загрузка документов через сайт
  • Онлайн-оплата
  • Чат-бот с юридическими ответами

Позже (v2+):

  • Защищённая загрузка документов
  • Онлайн-оплата консультации
  • Интеграция с CRM
  • Блог и вебинары

3. Стек

  • Frontend: React 19 + Vite (продакшен); макет — чистый HTML/CSS/JS без сборки
  • Стили UI: CSS Modules / собственная дизайн-система по INPUT/DESIGN.html
  • Backend: Node.js 20 LTS + Express
  • БД OLTP: PostgreSQL 16
  • Аналитика / OLAP: Яндекс Метрика; OLAP не требуется в v1
  • Кэш / очереди / observability: не требуется в v1; логи pino, uptime-мониторинг
  • Хостинг / облако: VPS в РФ (Timeweb Cloud / Selectel), Nginx, Docker Compose
  • Монолит / модульный монолит / сервисы: модульный монолит

4. Ключевые сценарии

  1. Директор ООО выбирает «Арбитраж», читает кейс о взыскании 4,2 млн ₽, оставляет заявку на консультацию в офисе.
  2. Физлицо открывает FAQ по наследству, выбирает онлайн-консультацию и указывает WhatsApp для связи.
  3. Партнёр в админке публикует новый обезличенный кейс после проверки на отсутствие ПД.

5. Сущности и данные

СущностьПоля (примерно)СвязиЗаметки
Leadid, name, phone, email, practice_id, contact_method, short_description, consent_at, statusN:1 PracticeОписание ограничено 500 символами, предупреждение не указывать чужие ПД
Practicetitle, slug, description, price_from1:N Case, Lead6 практик в v1
Casepractice_id, title, task, actions, result, amount, publishedN:1 PracticeПроверка на ПД перед публикацией
Lawyername, photo, position, experience_years, education—Фото с согласием
Faqquestion, answer, practice_idN:1 PracticeАккордеон

6. Интеграции

  • Telegram/SMTP — уведомление о заявке
  • Яндекс Карты — офис
  • Яндекс Метрика — цели «lead_sent», «case_view»

7. Нефункциональные требования

  • Ожидаемая нагрузка: До 8 000 посетителей и 300 заявок в месяц
  • Latency / доступность: TTFB < 300 мс, LCP < 2,5 с на mobile, доступность 99,5%
  • Retention EventLog / evidence / audit: логи 30 дней, заявки/заказы 3 года, бэкап БД ежедневно с хранением 14 дней
  • Compliance: 152-ФЗ: согласие, политика, хранение ПД в РФ; адвокатская тайна/конфиденциальность — кейсы только обезличенные; закон о рекламе — без гарантий исхода

8. Безопасность

  • Посетители без регистрации; админка с ролями partner/editor (JWT); rate-limit, капча; описание заявки шифруется в БД, не пишется в логи.
  • HTTPS (Let's Encrypt), helmet, CSP, валидация входных данных на сервере, секреты в .env вне репозитория.

9. UX / клиенты

  • Web, mobile-first; строгий премиальный стиль; админка desktop.
  • Доступность: контраст AA, фокус-состояния, подписи полей форм.

9b. Дизайн

  • HTML-референс: INPUT/DESIGN.html (картинки в INPUT/assets/, описания в INPUT/assets/DESCRIPTIONS.md)

9c. CI/CD и окружения

  • Окружения: local / ci / staging / production
  • CI: GitHub Actions — lint, тесты, сборка Docker-образа; деплой на staging по merge в main, на production по тегу
  • Хостинг: VPS в РФ, Docker Compose, Nginx reverse proxy

10. Ограничения

  • Язык кода: TypeScript (strict) на фронте и бэке; автотесты Vitest + Playwright для ключевых сценариев
  • Запрещённые практики: хранение секретов в репозитории, ПД в логах, inline-SQL без параметров

11. Готовые модули

  • logging-pino
  • rate-limiting
  • caching-redis
  • auth-jwt
  • websocket-socketio
  • admin-panel
  • file-upload
  • crud-table
  • payments-stripe
  • search
  • email-nodemailer

12. Критерии приёмки v1

  • Ни один кейс не содержит ФИО, наименований, ИНН и номеров дел
  • Фильтр кейсов по практике работает без перезагрузки
  • FAQ раскрывается с клавиатуры (a11y)
  • Заявка без согласия на ПД не отправляется
  • На сайте нет обещаний гарантированного результата
  • Lighthouse SEO ≥ 95

13. Свободные заметки

Проект Webcraftly

Нужен такой же продукт?

Сайт юридической фирмы: практики, кейсы, первичная консультация и заявка.