Предложение по разработке

PerErnidad — маркетплейс прощания с питомцем

План создания MVP: объём, технологии, сроки

Дата: 24 августа 2026 Версия: 1.0 — для обсуждения Рынок: Испания Сайт: perernidad.es
6 недель
рабочий MVP + запас до 2 недель
3-я неделя
первое демо: сайт + админка
.NET 8 · React · PostgreSQL
основной стек команды разработки
500 поставщиков
до ~1 000 заказов/день — с большим запасом
01

Что уже есть и что строим

Сегодня perernidad.es — это контентная витрина: сильный бренд, ~30 SEO-гайдов для семей (цены по 15 городам, юридические инструкции, интерактивная шкала качества жизни HHHHHMM) и форма предзаписи поставщиков. Позиционирование уже сформулировано и полностью совпадает с идеей маркетплейса: «независимый технологический посредник — показываем реальные варианты в вашей зоне с ясными ценами, решение принимаете вы».

Чего на сайте пока нет — транзакционной части: поиска по почтовому индексу, реальных прайсов конкретных поставщиков, заказа, оплаты и связи «семья ↔ исполнитель». Именно её мы и строим.

02

Роли и сценарии

РольКто этоЧто делает в системе
Семья (клиент)Владелец питомцаПроходит визард, выбирает поставщика по цене, оплачивает, общается в WhatsApp-чате
Поставщик эвтаназииВетеринар с выездом на дом (autónomo или клиника)Получает заказы; имеет свой список партнёров-крематориев и предлагает кремацию клиенту на выезде — за процент
Поставщик кремацииКрематорийПолучает заказы напрямую с сайта или через ветеринаров-партнёров
Площадка (PerErnidad)Администратор сервисаВедёт базу поставщиков, зоны, цены и комиссии; участвует в каждом чате; управляет заказами

Визард подбора — три вопроса

  1. Состояние питомца: «в тяжёлом состоянии» → эвтаназия (можно сразу с кремацией) · «уже умер» → кремация.
  2. Почтовый индекс (código postal) — по нему отбираются поставщики, работающие в этой зоне.
  3. Весовая категория (например: до 3 кг · 3–10 · 10–25 · 25–45 · свыше 45) — по ней определяется точная цена.

Результат — список поставщиков с конкретными ценами, отсортированный по цене. Показываются только те, у кого индекс клиента есть в зоне обслуживания и задана цена для выбранной весовой категории.

Три сценария заказа и WhatsApp-чаты

После оплаты система автоматически создаёт групповой WhatsApp-чат. Площадка — участник каждого чата: видит, что услуга действительно оказана, и держит качество сервиса под контролем.

Визард состояние индекс (ZIP) вес питомца А · Питомец умер — кремация выбор крематория оплата Чат ×3 клиент · крематорий · площадка Б · Тяжёлое состояние — эвтаназия выбор ветеринара оплата Чат ×3 клиент · ветеринар · площадка на выезде: ветеринар предлагает кремацию партнёра · доплата Чат ×4 (+ крематорий) комиссия % — ветеринару В · Эвтаназия + кремация сразу выбор пары услуг оплата Чат ×4 клиент · ветеринар · крематорий · площадка
Состав WhatsApp-чата зависит от сценария. Ключевая B2B-механика — в сценарии Б: чат на троих расширяется до четверых, когда ветеринар допродаёт кремацию своего партнёра, и система фиксирует его комиссию в заказе.

Расширение заказа в сценарии Б в MVP оформляет площадка: администратор открывает заказ, нажимает «Добавить кремацию», выбирает крематория из партнёрского списка этого ветеринара — в чат уходит ссылка на доплату, после оплаты крематорий добавляется в чат, комиссия ветеринара записывается в заказ. Автоматический выбор кнопками прямо в чате (бот) — следующий этап после MVP.

03

Объём MVP

Публичный сайт (B2C, на испанском)

Админка площадки

WhatsApp-интеграция

Входит в MVP

  • Визард и выдача с реальными ценами
  • Заказ + оплата-заглушка
  • WhatsApp-чаты ×3 / ×4 с расширением
  • Админка: поставщики, зоны, цены, партнёры-комиссии, заказы
  • Учёт комиссий ветеринаров в заказах
  • Email-уведомления площадке о новых заказах

Сознательно после MVP

  • Личные кабинеты поставщиков (в MVP базу ведёт площадка)
  • Боевой эквайринг, автоматические выплаты и сплит комиссий
  • Выбор кремации кнопками прямо в чате (бот)
  • Отзывы, рейтинги, календарь и слоты записи
  • Надбавки за ночной выезд, срочность
  • Каталанский и английский языки, мобильные приложения
04

Технологии и архитектура

Нагрузка проекта скромная: 500 поставщиков по 1–2 заказа в день — это до ~1 000 заказов в сутки и единицы запросов в секунду в пике. Здесь выигрывает не «модная», а проверенная связка, на которой команда работает ежедневно: она даёт максимальную скорость разработки MVP и дешёвую поддержку. Монолитный API и одна база — осознанный выбор: микросервисы на этом масштабе только замедлили бы проект.

СлойВыборПочему
ФронтендReact 18 + TypeScript, Vite, TailwindЕдиный стек для визарда и админки; наш ежедневный инструмент на админ-панелях сопоставимого масштаба
Бэкенд.NET 8 (ASP.NET Core) + EF CoreОсновной серверный стек команды; строгая типизация, миграции БД, LTS-поддержка Microsoft
База данныхPostgreSQL 16Надёжный выбор по умолчанию; запас по нагрузке в десятки раз
ИнфраструктураDocker + nginx, VPS в ЕС, CI/CDStaging + prod окружения, автодеплой, HTTPS; данные клиентов остаются в ЕС (GDPR)
WhatsAppШлюз с поддержкой групп (Whapi.Cloud / GREEN-API) + выделенный номер площадкиЕдинственный класс решений, умеющий создавать группы, — см. блок ниже. В коде — абстракция: шлюз меняется без переделки логики
ПлатежиИнтерфейс PaymentProvider; в MVP — заглушкаЦелевой провайдер — Redsys (стандарт испанских банков-эквайеров) или Stripe, плюс Bizum; подключается без переписывания кода заказа
Важно про WhatsApp-группы — ограничение платформы, о котором стоит знать заранее

Официальный WhatsApp Business API (Meta) не умеет создавать групповые чаты — это ограничение самой платформы, а не нашего решения. Группы умеют только шлюзы, работающие поверх протокола WhatsApp Web (Whapi.Cloud, GREEN-API и аналоги), — их и берём для MVP, с отдельным номером площадки.

Риск: такие шлюзы формально вне правил WhatsApp, номер могут заблокировать. Митигируем: выделенный номер (не личный), малые объёмы сообщений, фолбэк на инвайт-ссылки и процедура быстрой замены номера. План Б, полностью «белый»: официальный Cloud API с индивидуальными уведомлениями каждому участнику вместо общей группы. Работоспособность шлюза проверяем спайком в первую же неделю — до того, как от него что-то зависит.

perernidad.es контент и SEO — уже есть ссылки Веб-приложение React + TypeScript визард B2C · админка REST API · .NET 8 заказы · подбор · комиссии EF Core PostgreSQL 16 одна БД на всё WhatsApp-шлюз группы ×3 / ×4 · номер площадки Платёжный модуль MVP: заглушка → Redsys / Stripe пунктир — существует или подключается позже
Всё новое — три блока: веб-приложение, API с базой и две внешние интеграции. Контентный сайт не трогаем.
05

Модель данных — основные сущности

СущностьЧто хранит
ПоставщикНазвание / ИП, тип услуг (эвтаназия · кремация · обе), контактное лицо, телефон WhatsApp (формат E.164, +34…), email, адрес, статус «активен»
Зоны обслуживанияСписок почтовых индексов поставщика (испанский формат — 5 цифр)
Весовые категорииСправочник площадки: до 3 кг · 3–10 · 10–25 · 25–45 · свыше 45 (редактируется)
ПрайсЦена за: поставщик × услуга (эвтаназия на дому · кремация коллективная · кремация индивидуальная · опция «забор тела») × весовая категория
Партнёрские связкиВетеринар → крематорий + процент комиссии по каждой паре
ЗаказКлиент (имя, WhatsApp-телефон), индекс, весовая категория, состав услуг, выбранные поставщики, цены и комиссия зафиксированы на момент покупки, статусы оплаты и выполнения
Чат заказаID WhatsApp-группы, участники, статус создания, лог доставки инвайтов
Журнал событийКто и что изменил в заказе: оплата, создание чата, расширение, комиссия, возврат — полная история каждого заказа
АдминистраторыУчётные записи команды площадки
06

План и сроки

Рабочий MVP — за 6 недель. Сверху закладываем запас до 2 недель (недели 7–8) на непредвиденное — внешние интеграции, правки по итогам демо; если запас не понадобится, сдаём раньше. Первое демо основного сайта и админки — в конце 3-й недели.

нед 1
нед 2
нед 3
нед 4
нед 5
нед 6
нед 7
нед 8
Фаза 0 · Фундамент
Фаза 1 · Сайт + админка
Фаза 2 · Заказы + WhatsApp
Фаза 3 · Запуск пилота
разработка неделя с демо заказчику запас на непредвиденное
ФазаНеделиСодержаниеРезультат
0 · Фундамент1Репозиторий, CI/CD, staging-домен (например app.perernidad.es), каркасы API и фронта, схема БД, UI-кит в бренде PerErnidad, спайк WhatsApp-шлюзаПустое приложение деплоится; главный технический риск снят
1 · Сайт + админка2–3Вход в админку, редактор поставщиков (контакты, зоны, цены, партнёры), справочники, публичный визард с выдачей ценДемо №1: подбор по индексу и весу работает на реальных данных
2 · Заказы + WhatsApp4–5Оформление заказа, оплата-заглушка, создание чатов ×3/×4, расширение заказа кремацией, фиксация комиссий, email-уведомленияПолный цикл всех трёх сценариев проходит насквозь
3 · Запуск пилота6Статусы и журнал заказов, прогон сценариев, наполнение первыми 10–20 реальными поставщиками, прод-деплойДемо №2 — приёмка MVP, старт пилота

Первичная реализация подробно Недели 1–3

То, что показываем на первом демо: основной сайт и админка с редактором поставщиков.

  1. Схема БД и миграции — сущности из раздела 05, кроме заказов и чатов (они в Фазе 2).
  2. Вход в админку — email + пароль, хэширование, сессии, защита всех маршрутов админки. Одна роль — администратор площадки; учётки создаём для команды PerErnidad вручную.
  3. Редактор поставщиков — список с поиском и фильтрами (тип услуги, индекс) и карточка из четырёх вкладок:
    • Профиль: название / ИП, тип услуг, контактное лицо, телефон WhatsApp — с валидацией формата (+34…) и проверкой регистрации номера в WhatsApp: именно этот номер система добавит в чаты заказов, — email, адрес, заметки, признак «активен».
    • Зоны: почтовые индексы списком — ввод пачкой через запятую или вставкой из Excel, валидация испанского формата.
    • Цены: матрица «услуга × весовая категория»; пустая ячейка — услугу для этого веса не оказывает.
    • Партнёры (у поставщиков эвтаназии): выбор крематориев из базы + процент комиссии по каждому.
  4. Справочник весовых категорий — редактируемый, со стартовым набором из пяти диапазонов.
  5. Публичный визард (испанский): три шага → выдача поставщиков с точными ценами; кнопка заказа на этом этапе собирает контакт («мы свяжемся»), полноценный заказ включится в Фазе 2.
  6. Staging-деплой, наполнение 5–10 тестовыми поставщиками, прогон, Демо №1.
07

Риски и допущения

Риск / допущениеВлияниеЧто делаем
WhatsApp-шлюзБлокировка номера остановит создание чатовСпайк в неделю 1; выделенный номер; фолбэк-инвайты; план Б — официальный API с 1:1-уведомлениями
Эквайринг RedsysДоговор с банком оформляется неделямиВ MVP — заглушка; документы на эквайринг заказчик подаёт параллельно с разработкой, подключение — первый пост-MVP шаг
Данные поставщиковПустая база = нечего показывать в выдачеЗоны и прайсы первых 10–20 поставщиков нужны от заказчика к неделе 5; источник — заявки с формы лендинга
GDPRПерсональные данные семей и поставщиковХостинг в ЕС, минимум собираемых данных, согласия в формах; политика конфиденциальности на сайте уже есть
Номер без WhatsAppУчастника не добавить в чатПроверка номера при заведении поставщика и при оформлении заказа, до оплаты
Невозможность оказать услугуПоставщик не смог принять или выполнить заказПравило простое: деньги возвращаются клиенту полностью. В MVP возврат оформляет площадка вручную; с боевым эквайрингом — возврат кнопкой через платёжного провайдера

Допущения: язык публичной части — испанский; язык админки согласуем (по умолчанию русский, каркас перевода закладываем сразу). Юридическую схему комиссионных расчётов с поставщиками (агентский договор, счета) готовит заказчик — системе для MVP достаточно учитывать комиссии в заказах.

08

Как работаем