feat(sprint-1): финальные правки — логотип, название клиники, порты

- PNG логотипа извлечён из PDF (PyMuPDF + Pillow), прозрачный фон (numpy)
- Инвертированный логотип: CSS filter brightness(0) invert(1) на прозрачном PNG
- Исправлено название: «Клиника ухо, горло, нос им. проф. Е.Н.Оленевой»
- PostgreSQL переведён на порт 5433 (5432 занят на хосте)
- next.config.ts: turbopack.root для монорепо
- docs/SPRINTS.md: Sprint 1 помечен  ЗАВЕРШЁН

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
AR 15 M4
2026-03-22 17:39:18 +05:00
parent 5105310c92
commit 03cceea13d
10 changed files with 174 additions and 320 deletions
+30 -21
View File
@@ -14,33 +14,42 @@
---
## Sprint 1 — Инициализация проекта + страница «Логотип»
## Sprint 1 — Инициализация проекта + страница «Логотип» ✅ ЗАВЕРШЁН
**Цель:** Рабочее окружение, monorepo, базовая архитектура, первая живая страница брендбука — «Логотип».
### Задачи — инфраструктура
- [ ] FE: Инициализация Next.js (App Router) в `apps/web`
- [ ] BE: Инициализация NestJS в `apps/api`
- [ ] DB: Подключение PostgreSQL + Prisma, базовая схема
- [ ] Настройка Docker Compose для локальной разработки
- [ ] Настройка monorepo (pnpm workspaces)
- [ ] Создание `.env.example`
- [ ] Git: создание веток `develop` и `sprint/1`
- [ ] FE: Базовая структура брендбука (layout, боковая навигация по разделам)
- [ ] FE: Подключение шрифта Fira Sans (веб) + подготовка к DINPro (бренд)
- [x] FE: Инициализация Next.js 16 (App Router, Tailwind 4, TypeScript) в `apps/web`
- [x] BE: Инициализация NestJS 11 в `apps/api`
- [x] DB: PostgreSQL 16 + Prisma 7, схема User + ExperimentalComponent
- [x] Настройка Docker Compose (порт 5433 — 5432 занят на хосте)
- [x] Настройка monorepo (pnpm workspaces)
- [x] Создание `.env.example`
- [x] Git: создание веток `develop` и `sprint/1`, подключён remote git.pirogov.ai
- [x] FE: Layout с боковой навигацией (все разделы, статус «скоро»)
- [x] FE: Fira Sans подключён через next/font/google, CSS-токены бренда в globals.css
### Задачи — страница «Логотип» (первый контент брендбука)
- [ ] Design: Экспорт PNG логотипа из PDF для использования как placeholder
- [ ] FE: Страница `/foundation/logo` в брендбуке
- [ ] FE: Отображение обеих версий логотипа: «Общий» и «Основной»
- [ ] FE: Секция «Иерархия»: описание применения каждой версии
- [ ] FE: Секция «Цветовые варианты»: основной / инвертированный / на форме
- [ ] FE: Секция «Охранная зона» с визуализацией отступов
- [ ] FE: Секция «Минимальные размеры» (таблица: до 46 р. и от 48 р.)
- [ ] FE: Секция «Недопустимые варианты» — правило не менять и не сочетать с текстом
- [ ] FE: Placeholder-блок «Скачать вектор» (кнопка неактивна до получения SVG)
### Задачи — страница «Логотип»
- [x] Design: PNG логотипа извлечён из PDF программно (PyMuPDF + Pillow)
- [x] FE: Прозрачная версия логотипа (удалён белый фон через numpy)
- [x] FE: Страница `/foundation/logo`
- [x] FE: Иерархия версий (Основной / Общий) с реальным изображением из PDF
- [x] FE: Цветовые варианты: светлый / инвертированный (CSS filter) / на форме
- [x] FE: Охранная зона с визуализацией отступов
- [x] FE: Таблица минимальных размеров (до 46 р. и от 48 р.)
- [x] FE: 6 правил недопустимого использования
- [x] FE: Placeholder «Скачать вектор» (кнопка неактивна)
**Результат спринта:** Запускается `pnpm dev`, открывается брендбук с навигацией. Раздел «Логотип» полностью заполнен контентом и правилами.
### Фактические результаты
- Брендбук запущен локально на `http://localhost:3001`
- Название клиники исправлено: «Клиника ухо, горло, нос им. проф. Е.Н.Оленевой»
- Инвертированный логотип корректно отображается (белый на тёмном фоне)
### Технические решения Sprint 1
- PostgreSQL запущен на порту **5433** (5432 занят на хосте)
- Логотип хранится как PNG с прозрачным фоном (`public/logo/logo-transparent.png`)
- Инверсия логотипа: CSS `filter: brightness(0) invert(1)` на прозрачном PNG
- Next.js запускается на порту **3001** (3000 занят на хосте)
---