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. Ключевые сценарии
- Директор ООО выбирает «Арбитраж», читает кейс о взыскании 4,2 млн ₽, оставляет заявку на консультацию в офисе.
- Физлицо открывает FAQ по наследству, выбирает онлайн-консультацию и указывает WhatsApp для связи.
- Партнёр в админке публикует новый обезличенный кейс после проверки на отсутствие ПД.
5. Сущности и данные
| Сущность | Поля (примерно) | Связи | Заметки |
|---|---|---|---|
| Lead | id, name, phone, email, practice_id, contact_method, short_description, consent_at, status | N:1 Practice | Описание ограничено 500 символами, предупреждение не указывать чужие ПД |
| Practice | title, slug, description, price_from | 1:N Case, Lead | 6 практик в v1 |
| Case | practice_id, title, task, actions, result, amount, published | N:1 Practice | Проверка на ПД перед публикацией |
| Lawyer | name, photo, position, experience_years, education | — | Фото с согласием |
| Faq | question, answer, practice_id | N: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
Нужен такой же продукт?
Сайт юридической фирмы: практики, кейсы, первичная консультация и заявка.