YouVet — Roadmap

Состояние прое��та · что сделано · что планируется
← Все документы Обновлено: апрель 2026

О проекте

YouVet — Telegram Mini App для ветеринарных клиник. Владельцы питомцев получают доступ к информации о клинике, статьям по первой помощи, расписанию врачей и услугам груминга прямо в Telegram. Клиника управляет всем через веб-панель администратора.

Архитектура изначально рассчитана на несколько клиник (clinic_id во всех таблицах) — подключение новой клиники не требует изменений в коде.

3
приложения в монорепо
8
миграций БД
10+
экранов в админке
3
роли пользователей

Фазы разработки

Фаза 1 — Фундамент
Завершено
Монорепо и инфраструктура
Turborepo + npm workspaces, Go бэкенд, PostgreSQL, Docker, CI/CD через GitHub Actions
Infra
Мультитенантность
clinic_id во всех таблицах, JWT с ClinicID + Role в claims
Infra
Ролевая система
Роли admin / editor / groomer — бэкенд + фронтенд
Core
Статьи по первой помощи
WYSIWYG редактор (TipTap), статусы draft/published, привязка к видам животных
Core
Telegram бот
Long polling, отправка статей, ссылки на Mini App
Core
Фаза 2 — Клиника и расписание
Завершено
Профили врачей
Фото, специализация, описание, загрузка изображений (до 5MB)
Core
Расписание приёма
Слоты по датам, исключения, горизонтальная карусель дат в Mini App
Core
Груминг
Породы + цены, шаблон рабочих дней, запись через админку
Core
Информация о клинике
Название, описание, телефон, адрес, email, сайт, логотип, баннер
Core
Персистентный хедер в Mini App
Логотип клиники (или котик-фолбэк), название, кнопка звонка — на всех экранах
UX
CI/CD через GHCR
Docker образ сервера собирается в CI и пушится в GitHub Container Registry. VPS только тянет готовый образ — никаких PAT
Infra
Документационный портал
docs.snzbeachvolleyball25.ru — автодеплой при изменении docs/
Infra
Фаза 3 — Готовность к запуску
В работе
Эти задачи блокируют или существенно влияют на запуск реальных пользователей.
🔴
Скрытие груминга если раздел не настроен
Плитка «Груминг» всегда видна в меню. Нужно скрывать если breeds и schedule пустые
Блокер
🔴
Telegram initData валидация
Проверить и при необходимости добавить валидацию подписи initData на бэкенде
Блокер
🟡
Пересмотр архитектуры статей
Возможно убрать категории и отдавать все статьи по виду животного — решить до масштабирования контента
UX
Фаза 4 — Запись на приём
Запланировано
Ключевая фича для реальных пользоват��лей. Требует детального UX-плана — автоматическое подтверждение не подходит, т.к. клиники работают в смешанном режиме (поток + запись).
📋
Заявка на запись (pending flow)
Пользователь выбирает врача → слот → отправляет заявку. Статус: pending
Core
📋
Подтверждение клиникой
Экран заявок в админке. Клиника подтверждает или отклоняет → статус меняется
Core
📋
Уведомления через бота
При смене статуса бот пишет пользователю в Telegram. Бот уже работает — нужно сохранять telegram_user_id и вызывать SendMessage
Core
Фаза 5 — Аналитика
Запланировано
📊
Сбор событий
Middleware записывает события (открытие разделов, просмотр врача и т.д.) в таблицу analytics_events. Можно добавить раньше UI — начать копить данные
Infra
📊
Дашборд в админке
Уникальные пользователи за день/неделю/месяц, популярные разделы
UX
Фаза 6 — SaaS и масштабирование
Будущее
Архитектура уже готова к этому — мультитенантность реализована с первого дня. Фаза не требует рефакторинга кода, только продуктовых и бизнесовых решений.
🔵
Онбординг новой клиники
Self-service регистрация, создание slug, первый admin-пользователь
SaaS
🔵
Биллинг и тарифы
Подписка, ограничения по тарифу (кол-во врачей, статей и т.д.)
SaaS
🔵
Управление клиниками
Super-admin панель для управления всеми клиниками на платформе
SaaS
Фаза 7 — Личные кабинеты
Идея
Переход от «инфо-приложения» к полноценной платформе. Каждый участник получает персональный контекст.
🔵
Кабинет владельца питомца
История визитов, предстоящие записи, уведомления. Идентификация через Telegram — без регистрации
Core
🔵
Профиль животного
Имя, порода, возраст, вес, прививки, хронические заболевания. Можно добавить несколько питомцев
Core
🔵
Кабинет врача
Личное расписание, список предстоящих приёмов, история пациентов
Core
Фаза 8 — Анализы и медицинские данные
Идея
Интеграция с лабораторными анализаторами — получаем данные напрямую и показываем владельцу питомца в понятном виде, без PDF и бумажных распечаток.
🔵
Интеграция с анализаторами
Получение данных от лабораторного оборудования (API или экспорт). Приоритет — популярные анализаторы в ветклиниках СНГ
Infra
🔵
Отображение результатов
Таблица показателей с нормами, цветовая индикация отклонений. Динамика в сравнении с предыдущими анализами
UX
🔵
Уведомление о готовности
Бот пишет владельцу в Telegram когда результаты загружены. Привязка к профилю животного
Core
Фаза 9 — Документационный портал
Идея
Развить docs.snzbeachvolleyball25.ru из статичного HTML в живой инструмент для команды — что-то среднее между Notion и GitHub Wiki, но своё и под контролем.
🔵
Заметки к задачам
Возможность оставлять комментарии и заметки прямо на странице Roadmap — без внешних инструментов
Infra
🔵
Взять задачу на себя
Кнопка «Беру» на карточке roadmap — привязка задачи к участнику команды. Лёгкий способ распределять работу без Jira
UX
🔵
Живые страницы
Markdown-редактор для создания новых страниц прямо в браузере. Деплой через git push или напрямую через API
Infra

Банк идей

Идеи из обсуждений — не запланированы, но не хочется терять. Контекст: коммерческая ветклиника в закрытом городе ~50к жителей + деревни в округе. Хорошо оснащена: врачи, операционная, рентген, УЗИ, груминг, большой магазин.

Услуги и цены
💡
Каталог услуг
Разделы: первичный приём, диагностика (УЗИ, рентген), хирургия, вакцинация, груминг. Люди едут из деревень — хотят знать заранее что доступно и сколько стоит
Core
💡
Часы работы
Поле working_hours есть в планах для clinic_info, но не реализовано. Критично для клиентов из сёл — едут специально, важно не попасть на выходной
Core
💡
Экстренный приём
Есть ли ночной/экстренный приём? Если да — отдельная кнопка/баннер с телефоном дежурного. Это высокоэмоциональный момент для владельца
UX
Магазин
💡
Каталог товаров
Большой магазин — отдельный трафик. Люди из деревень едут за кормами и лекарствами. Хотя бы витрина без цен — «что есть в наличии»
Core
💡
Наличие и цены
Следующий шаг после каталога — актуальные цены и наличие. Возможно интеграция с 1С или ручное управление через админку
Сложно
Удержание и коммуникация
💡
Отзывы
В малом городе сарафан работает лучше рекламы. Возможность оставить отзыв через бота — он уже умеет писать пользователям
UX
💡
Напоминания о визите
Бот напоминает за день до приёма. Снижает неявки — важно для расписания врача
Core
💡
Вопрос врачу
Быстрая форма «задать вопрос» — сообщение уходит в Telegram дежурному. Снижает звонки по пустякам и создаёт лояльность
UX
💡
Поделиться / пригласить
Кнопка «поделиться ботом» — Telegram нативно поддерживает. Сарафан в цифре
UX
Открытые вопросы
Режим работы клиники
Есть ли экстренный/ночной приём? Ответ влияет на приоритет фичи «экстренный контакт»
Магазин — основной трафик или дополнение?
Если магазин генерит сопоставимый с клиникой трафик — стоит делать полноценный каталог раньше
Специализация врачей
Врачи узкие специалисты (хирург, диагност) или все делают всё? Влияет на отображение профилей и маршрутизацию записи

YouVet · docs.snzbeachvolleyball25.ru