Files
AR 15 M4 4f1b611065 docs: инициализация проекта, структура репозитория и проектная документация
- README.md: стек, структура monorepo, git-workflow, быстрый старт
- docs/BRANDBOOK_SCOPE.md: полный состав цифрового брендбука
- docs/SPRINTS.md: план 12 недельных спринтов
- .gitignore: node_modules, .env, .next, .DS_Store, .claude

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 14:34:50 +05:00

206 lines
6.2 KiB
Markdown

# О!Клиника — Интерактивный брендбук
Живой цифровой брендбук клиники «О!Клиника» (oclinica.ru).
Формат: **Living Styleguide** — полноценное веб-приложение, где дизайнеры видят все UI-компоненты, блоки и страницы в реальном виде, а также могут создавать и сохранять экспериментальные элементы.
---
## Стек технологий
| Слой | Технология |
|------------|-----------------------------|
| Frontend | Next.js (App Router) |
| Backend | NestJS |
| База данных| PostgreSQL |
| ORM | Prisma |
| Стилизация | CSS Modules / Tailwind CSS |
| Шрифт | Fira Sans (Google Fonts) |
---
## Структура монорепозитория
```
oclinica-brandbook/
├── apps/
│ ├── web/ # Next.js — фронтенд брендбука
│ └── api/ # NestJS — REST API
├── packages/
│ └── tokens/ # Дизайн-токены (цвета, типографика) — shared
├── docs/ # Проектная документация
│ ├── BRANDBOOK_SCOPE.md
│ ├── SPRINTS.md
│ └── decisions/ # ADR — Architecture Decision Records
├── .env.example
├── docker-compose.yml
└── README.md
```
---
## Быстрый старт (локальная разработка)
### Требования
- Node.js >= 20
- pnpm >= 9
- Docker (для PostgreSQL)
### 1. Клонировать репозиторий
```bash
git clone <repo-url>
cd oclinica-brandbook
```
### 2. Установить зависимости
```bash
pnpm install
```
### 3. Настроить окружение
```bash
cp .env.example .env
# Отредактировать .env — указать DATABASE_URL и другие переменные
```
### 4. Запустить PostgreSQL через Docker
```bash
docker-compose up -d
```
### 5. Применить миграции Prisma
```bash
cd apps/api
pnpm prisma migrate dev
pnpm prisma db seed # опционально — тестовые данные
```
### 6. Запустить проект
```bash
# Из корня монорепозитория
pnpm dev
# web: http://localhost:3000
# api: http://localhost:3001
```
---
## Переменные окружения
Создайте `.env` в корне на основе `.env.example`:
```env
# База данных
DATABASE_URL="postgresql://user:password@localhost:5432/brandbook"
# API
API_PORT=3001
API_URL=http://localhost:3001
# Web
NEXT_PUBLIC_API_URL=http://localhost:3001
```
---
## Git-workflow
### Ветки
| Ветка | Назначение |
|---------------|-------------------------------------------------|
| `main` | Стабильный production-ready код |
| `develop` | Интеграционная ветка, основа для спринтов |
| `sprint/N` | Ветка текущего спринта (например `sprint/2`) |
| `feature/xxx` | Конкретная фича или компонент |
| `fix/xxx` | Исправление бага |
### Процесс работы
```
main ← develop ← sprint/N ← feature/component-name
```
1. Новую задачу начинаем с ветки от `sprint/N`:
```bash
git checkout develop
git checkout -b feature/hero-block
```
2. Коммитим по конвенции (см. ниже)
3. Открываем PR в `sprint/N` (или напрямую в `develop` для мелких правок)
4. В конце спринта `sprint/N` мержится в `develop`
5. После тестирования `develop` мержится в `main` и деплоится
### Конвенция коммитов (Conventional Commits)
```
<type>(<scope>): <описание на русском или английском>
feat(colors): добавлена цветовая палитра primary
fix(button): исправлен hover-стейт для ghost-кнопки
docs(readme): обновлена инструкция по запуску
refactor(card): вынесен компонент DoctorCard
style(typography): выровнены размеры заголовков
chore(deps): обновлена версия Prisma
```
Типы: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`
---
## Деплой
### Production (сервер)
```bash
# На сервере
pnpm build
pnpm start
```
### Docker (опционально)
```bash
docker-compose -f docker-compose.prod.yml up -d
```
> Подробности деплоя — в `docs/deployment.md` (создаётся в ходе разработки)
---
## Структура базы данных (схема Prisma)
Основные модели:
- `Component` — экспериментальный компонент (name, html, css, status, author)
- `Page` — экспериментальная страница (name, blocks[], status)
- `Block` — блок страницы (name, componentId, order)
---
## Документация
| Файл | Содержание |
|----------------------------|-------------------------------------|
| `docs/BRANDBOOK_SCOPE.md` | Полный состав брендбука |
| `docs/SPRINTS.md` | План спринтов |
| `docs/decisions/` | Архитектурные решения (ADR) |
---
## Команда
| Роль | Участник |
|-------------------|--------------------|
| Дизайн + контент | О!Клиника |
| Разработка | совместно с ИИ |
---
*Проект разрабатывается итеративно. Документация обновляется в ходе спринтов.*