a9d669e397
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>
119 lines
10 KiB
Markdown
119 lines
10 KiB
Markdown
# Спринты
|
||
|
||
Документ для планирования и отслеживания работ по прототипу мобильного приложения Клиники УГН.
|
||
|
||
## Как вести
|
||
|
||
- Каждый спринт — отдельный заголовок `## Спринт 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 экранов прототипа
|
||
|
||
### Итоги
|
||
_заполнить в конце спринта_
|