Files
mobile-app-prototip/SPRINTS.md
T
arazor72 a9d669e397 Sprint 5: in-prototype screen documentation
Shared data layer + two access points for design-review docs.

- src/docs.js — SCREEN_DOCS dictionary keyed by screen id with
  title, category, goal, tasks[], rationale[], and optional
  variants note; helpers getScreenDoc(screenId, ctx) resolves home
  variants (home:cards / home:list / home:feed) and compound routes
  (doctor:id, article:id, chat:id, etc.); getAllDocs groups by
  category; resolveRouteForDoc maps doc key back to a concrete
  navigable route

- Toggle "Описания" in Tweaks + plashka above the phone in single
  layout: card with category, full-width title, and full goal text
  (line-clamp removed so whole sentence is readable); tap opens a
  full modal with tasks, rationale, and variants

- Live sync: PhoneApp reports top-of-stack via onCurrentChange prop,
  App tracks innerScreen state so the plashka follows the real nav
  inside the phone (clicking "Записаться" on home now updates the
  plashka to the booking screen)

- DocsScreen route "docs" in Tweaks screen selector — categorized
  list of all ~30 screens with collapsible inline descriptions and
  an "Открыть экран" CTA per row

- Convention: SPRINTS.md "Правила разработки" + memory note — when
  editing any src/screens/* file, update the matching entry in
  src/docs.js to keep in-prototype documentation in sync

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 18:41:15 +05:00

119 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Спринты
Документ для планирования и отслеживания работ по прототипу мобильного приложения Клиники УГН.
## Как вести
- Каждый спринт — отдельный заголовок `## Спринт N · даты`
- Задачи — чекбоксы `- [ ] описание`, ставим `- [x]` когда готово
- По завершении спринта — короткое резюме в блоке **Итоги**
- Нерешённое переносится в следующий спринт
## Правила разработки
- **Документация = часть прототипа.** При любом изменении экрана в `src/screens/*.jsx` — проверить и обновить соответствующую запись в `src/docs.js` (`goal` / `tasks` / `rationale` / `variants`). Эти описания показываются в плашке над телефоном и на экране «Документация», поэтому устаревшие формулировки мешают коллегам на ревью.
- Новый экран → добавить запись в `SCREEN_DOCS`, выбрать категорию из `ORDER``getAllDocs`), для compound-маршрутов (`something:id`) прописать кейс в `resolveRouteForDoc`.
- Мелкие CSS-правки (цвета, отступы, иконки) документировать не нужно — в `docs.js` описывается intent, а не пиксели.
- Варианты экрана с ctx (home cards/list/feed) — отдельная запись на каждый вариант (`home:cards`, `home:list`, `home:feed`).
---
## Спринт 1 · 19 апр 2026
**Цель:** развернуть прототип ЛОР-клиники из дизайн-бандла Claude Design и закрыть базовые пробелы.
### План
- [x] Распаковать дизайн-бандл, перенести на Vite + React (20 экранов)
- [x] iOS / Android рамки + Tweaks-панель (экраны, устройство, компоновка, акцент, шрифт, плотность, масштаб)
- [x] Экран результата эндоскопии: 2×2 снимков, заключение, рекомендации, PDF, полноэкранный просмотр
- [x] Статьи: список с фильтрами по тегам + детальная страница (hero, body-блоки, автор, связанные)
- [x] Главная 2: универсальный поиск, тайлы, статистика клиники
- [x] Поиск: врачи / услуги / симптомы / статьи / приёмы с реальной фильтрацией
- [x] Контакты: телефон, два адреса с мокапами зданий и мини-карт
- [x] Цены: поиск + пиллы-категории, группировка, диапазон
- [ ] Развернуть на публичный URL (surge / netlify) и отправить коллегам
- [ ] Собрать первичный фидбек по прототипу
### Итоги
_заполнить в конце спринта_
---
## Спринт 2 · 19 апр 2026
**Цель:** превратить одиночный чат в центр всех коммуникаций с клиникой — AI-помощник, врач, администратор.
**Итоги.** Закрыт. Чат стал списком из трёх диалогов (AI-помощник, врач, администратор), каждая карточка ведёт в отдельную конверсацию с разными UI-акцентами. Таббар автоматически скрывается в подэкранах `chat:<id>`.
### План
- [x] Экран `chat` — список диалогов: AI-помощник (featured), врач, администратор
- [x] Данные: три чата в `data.js` (kind, участники, сообщения, online, непрочитанные, время последнего сообщения)
- [x] AI-помощник: расширенный диалог с напоминаниями о лекарствах, чипсы с подсказками ответов
- [x] Чат с регистратурой: запросы справок, переносы приёмов, счета
- [x] Экран `chat:<id>` — конверсация: разный аватар/статус/UI-акценты для AI, врача, оператора
- [x] Видеозвонок-кнопка только у врача; suggested replies только у AI
- [x] Переадресация: сурджен в «Восстановлении» → `chat:doctor-syndaev`
- [x] Tweaks: добавить три варианта чата в список экранов
### Задел на Спринт 3
- [ ] Экран онбординга (первый запуск)
- [ ] Пустые состояния для всех вкладок
- [ ] Анимации переходов между экранами
- [ ] Реальные аватары врачей и иконки
- [ ] Сравнение результатов эндоскопии с предыдущим
- [ ] Раздел «Программа лояльности» (бонусы, уровни)
- [ ] Детальная карточка услуги (с описанием и подготовкой)
- [ ] Форма обратной связи / отзыв о враче
- [ ] Тёмная тема
### Итоги
_заполнить в конце спринта_
---
## Спринт 3 · 20 апр 2026
**Цель:** применить новую палитру из дизайн-системы (скрин от 20.04) и добавить её как 4-й вариант в Tweaks.
Входные цвета: `#ffffff #fffde4 #f2fee6 #d4f6f8 #e9e4d4 #ffa39c #63bac3 #29aee3 #93908f` — sky-blue primary + coral accent + warm pastels.
### План
- [x] Расширить схему `ACCENT_OPTIONS`: добавить `accent`, `accentDark`, `accent50` (чтобы палитра меняла и красный акцент, а не только primary + warm)
- [x] Обновить `applyTheme` — устанавливать `--c-accent`, `--c-accent-dark`, `--c-accent-50` из палитры
- [x] Проставить accent-поля в существующих палитрах (тил/терра/марин) → сохранить текущий красный `#E04E44`
- [x] Добавить 4-ю палитру **Лагуна**: primary `#29AEE3`, accent `#FFA39C`, warm `#E9E4D4`
- [x] Пристроить три оставшихся цвета из скрина: `#f2fee6``success-50`, `#93908f``fg-4`, `#63bac3``primary-300` (с видимым применением в бордере Clinic Stats card на Home V2)
- [x] Добавить 5-ю палитру **Бриз** — вариант Лагуны с приглушённым primary `#63BAC3` (яркий `#29AEE3` переехал в p300, warm/accent/success/fg-4 наследуются от Лагуны)
- [ ] Визуальная проверка всех экранов в новой палитре: кнопки, чипы, CTA, прогресс восстановления, успех-галочка, таббар-бейджи
---
## Спринт 4 · 20 апр 2026
**Цель:** служебные экраны для разработчиков — визуализация дизайн-системы прямо в прототипе, чтобы переключая палитру сразу видеть все цвета и их применение.
### План
- [x] Пробросить текущую палитру через `ctx.palette` (чтобы dev-экраны могли прочитать все поля)
- [x] Экран **DEV · Палитра**: таблица всех цветов (primary / warm / accent / status / neutrals / text), у каждой строки — свотч, название роли, CSS-переменная, hex-код, краткое описание применения
- [x] Экран **DEV · Примеры**: реальные компоненты (кнопки, чипы, карточки, текстовая иерархия, статусы) с подписями «какая CSS-переменная используется»
- [x] Добавить оба экрана в SCREEN_OPTIONS Tweaks
- [x] Динамический рендер: при переключении палитры значения hex обновляются автоматически
---
## Спринт 5 · 20 апр 2026
**Цель:** документация прототипа внутри самого прототипа — чтобы на ревью с коллегами можно было сразу увидеть цель и design-решения по любому экрану.
### План
- [x] Общий слой данных `src/docs.js` — словарь описаний по screen-id: title, category, goal, tasks[], rationale[], variants
- [x] Helper `getScreenDoc(screenId, ctx)` — резолвит варианты home (cards/list/feed) и compound-экраны
- [x] Toggle «Описания» в Tweaks (вкл/выкл)
- [x] Плашка-описание над телефоном в режиме single (только когда тоггл ON) — category + title + 1 строка goal
- [x] Тап по плашке → модал-оверлей поверх сцены с полным описанием (задачи, design-решения, варианты, CTA «Закрыть»)
- [x] Отдельный экран `docs` (Вариант 4) — список всех экранов по категориям с collapsible-описаниями и кнопкой «Открыть экран»
- [x] Наполнить описаниями все ~30 экранов прототипа
### Итоги
_заполнить в конце спринта_