Zemna.AI
    zemna.ai

    Scientific Publication Editor

    📝
    Editor
    ResearchersNew
    PublicationsLive
    Templates
    Концепції
    Швидкий старт
    Collaboration
    AI Assistant
    Roadmap
    Documentation
    v1.3.2 © Trinity
    PrivacyContact
    Ring Platform Logo

    Loading Documentation Hub...

    Scanning documentation library

    Documentation

    📚 Documentation

    AI Research Assistant
    Citations & References
    Collaboration
    First Success Validation
    Getting Started
    Pricing
    Research Tools
    Support
    Документація Zemna.AI
    Дорожня карта розробки
    Ласкаво просимо до Zemna.AI
    Налаштування облікового запису
    Написання та редагування
    Науковий редактор
    Фаза 1: Фундамент
    Фаза 2: Покращення наукового редактора
    Фаза 3: Менеджер цитат та бібліографії
    Фаза 4: Спільна робота в реальному часі
    Фаза 5: AI-асистент для досліджень
    Фаза 6: Публікація та експорт

    🌾 Quick Access

    📖 Welcome to GreenFood.live
    👨‍🌾 Complete Farmer Guide
    🛒 Complete Buyer Guide
    💰 DAAR/DAARION Token System
    Zemna.AI
    zemna.ai

    Scientific Publication Editor

    📝
    Editor
    ResearchersNew
    PublicationsLive
    Templates
    Концепції
    Швидкий старт
    Collaboration
    AI Assistant
    Roadmap
    Documentation
    v1.3.2 © Trinity
    PrivacyContact
    Ring Platform Logo

    Loading Documentation Hub...

    Scanning documentation library

    Documentation

    📚 Documentation

    AI Research Assistant
    Citations & References
    Collaboration
    First Success Validation
    Getting Started
    Pricing
    Research Tools
    Support
    Документація Zemna.AI
    Дорожня карта розробки
    Ласкаво просимо до Zemna.AI
    Налаштування облікового запису
    Написання та редагування
    Науковий редактор
    Фаза 1: Фундамент
    Фаза 2: Покращення наукового редактора
    Фаза 3: Менеджер цитат та бібліографії
    Фаза 4: Спільна робота в реальному часі
    Фаза 5: AI-асистент для досліджень
    Фаза 6: Публікація та експорт

    🌾 Quick Access

    📖 Welcome to GreenFood.live
    👨‍🌾 Complete Farmer Guide
    🛒 Complete Buyer Guide
    💰 DAAR/DAARION Token System
    Ring Platform Logo

    Loading Documentation Hub...

    Scanning documentation library

    Documentation

    📚 Documentation

    AI Research Assistant
    Citations & References
    Collaboration
    First Success Validation
    Getting Started
    Pricing
    Research Tools
    Support
    Документація Zemna.AI
    Дорожня карта розробки
    Ласкаво просимо до Zemna.AI
    Налаштування облікового запису
    Написання та редагування
    Науковий редактор
    Фаза 1: Фундамент
    Фаза 2: Покращення наукового редактора
    Фаза 3: Менеджер цитат та бібліографії
    Фаза 4: Спільна робота в реальному часі
    Фаза 5: AI-асистент для досліджень
    Фаза 6: Публікація та експорт

    🌾 Quick Access

    📖 Welcome to GreenFood.live
    👨‍🌾 Complete Farmer Guide
    🛒 Complete Buyer Guide
    💰 DAAR/DAARION Token System
    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    Фаза 2: Покращення наукового редактора

    Статус: 🔄 В процесі (спринти 2.1–2.3 завершені; залишилися 2.4–2.5)
    Тривалість: 2-3 тижні
    Попередні вимоги: Завершена Фаза 1

    Огляд

    Фаза 2 перетворює базовий contentEditable редактор на науковий редактор публікацій світового класу з розширеним редагуванням тексту, підтримкою LaTeX-рівнянь, автозбереженням, історією версій та можливостями експорту.

    Реалізовано (2026-02-25): Форматований текст (Tiptap), LaTeX (KaTeX + модальне вікно формул), автозбереження (затримка 30 с), історія версій (знімок/відновлення), схема публікацій та API. Детальна документація: Науковий редактор.


    🎯 Ключові завдання

    1. Розширений текстовий редактор — Редактор на базі Tiptap з науковими розширеннями ✅
    2. LaTeX-рівняння — Рендеринг KaTeX для математичного контенту ✅
    3. Система автозбереження — Безперервне збереження з історією версій ✅
    4. Підтримка рисунків та таблиць — Завантаження зображень та створення таблиць 🚧
    5. Функціональність експорту — Експорт у PDF, Word та Markdown 🚧

    📅 Розбивка по спринтах

    Спринт 2.1: Основа розширеного текстового редактора (1 тиждень) ✅ ЗАВЕРШЕНО

    • Встановлення залежностей Tiptap (17 пакетів)
    • Створення компонента ScientificEditor

    Фаза 2: Покращення наукового редактора

    Статус: 🔄 В процесі (спринти 2.1–2.3 завершені; залишилися 2.4–2.5)
    Тривалість: 2-3 тижні
    Попередні вимоги: Завершена Фаза 1

    Огляд

    Фаза 2 перетворює базовий contentEditable редактор на науковий редактор публікацій світового класу з розширеним редагуванням тексту, підтримкою LaTeX-рівнянь, автозбереженням, історією версій та можливостями експорту.

    Реалізовано (2026-02-25): Форматований текст (Tiptap), LaTeX (KaTeX + модальне вікно формул), автозбереження (затримка 30 с), історія версій (знімок/відновлення), схема публікацій та API. Детальна документація: Науковий редактор.


    🎯 Ключові завдання

    1. Розширений текстовий редактор — Редактор на базі Tiptap з науковими розширеннями ✅
    2. LaTeX-рівняння — Рендеринг KaTeX для математичного контенту ✅
    3. Система автозбереження — Безперервне збереження з історією версій ✅
    4. Підтримка рисунків та таблиць — Завантаження зображень та створення таблиць 🚧
    5. Функціональність експорту — Експорт у PDF, Word та Markdown 🚧

    📅 Розбивка по спринтах

    Спринт 2.1: Основа розширеного текстового редактора (1 тиждень) ✅ ЗАВЕРШЕНО

    • Встановлення залежностей Tiptap (17 пакетів)
    • Створення компонента ScientificEditor

    Фаза 2: Покращення наукового редактора

    Статус: 🔄 В процесі (спринти 2.1–2.3 завершені; залишилися 2.4–2.5)
    Тривалість: 2-3 тижні
    Попередні вимоги: Завершена Фаза 1

    Огляд

    Фаза 2 перетворює базовий contentEditable редактор на науковий редактор публікацій світового класу з розширеним редагуванням тексту, підтримкою LaTeX-рівнянь, автозбереженням, історією версій та можливостями експорту.

    Реалізовано (2026-02-25): Форматований текст (Tiptap), LaTeX (KaTeX + модальне вікно формул), автозбереження (затримка 30 с), історія версій (знімок/відновлення), схема публікацій та API. Детальна документація: Науковий редактор.


    🎯 Ключові завдання

    1. Розширений текстовий редактор — Редактор на базі Tiptap з науковими розширеннями ✅
    2. LaTeX-рівняння — Рендеринг KaTeX для математичного контенту ✅
    3. Система автозбереження — Безперервне збереження з історією версій ✅
    4. Підтримка рисунків та таблиць — Завантаження зображень та створення таблиць 🚧
    5. Функціональність експорту — Експорт у PDF, Word та Markdown 🚧

    📅 Розбивка по спринтах

    Спринт 2.1: Основа розширеного текстового редактора (1 тиждень) ✅ ЗАВЕРШЕНО

    • Встановлення залежностей Tiptap (17 пакетів)
    • Створення компонента ScientificEditor
  1. Створення компонента EditorToolbar
  2. Інтеграція редактора на сторінку редактора
  3. Ключові компоненти:

    • components/editor/scientific-editor.tsx — Основний редактор Tiptap
    • components/editor/editor-toolbar.tsx — Панель форматування

    Спринт 2.2: Підтримка LaTeX-рівнянь (1 тиждень) ✅ ЗАВЕРШЕНО

    • Встановлення залежностей KaTeX
    • Створення розширення Tiptap для LaTeX
    • Створення модального вікна EquationEditor
    • Додавання кнопки рівнянь на панель інструментів

    Функції:

    • Блочна математика через вузол mathBlock (KaTeX); модальне вікно формул з попереднім переглядом
    • Перемикач display/inline; кнопки шаблонів (дріб, сума, інтеграл, матриця)

    Спринт 2.3: Автозбереження та історія версій (1 тиждень) ✅ ЗАВЕРШЕНО

    • Створення схеми бази даних публікацій
    • Створення PublicationService
    • Створення хука useAutoSave
    • Створення VersionHistoryPanel
    • Створення API-маршрутів

    Схема бази даних (шаблон Ring JSONB у data/schema.sql):

  4. Створення компонента EditorToolbar
  5. Інтеграція редактора на сторінку редактора
  6. Ключові компоненти:

    • components/editor/scientific-editor.tsx — Основний редактор Tiptap
    • components/editor/editor-toolbar.tsx — Панель форматування

    Спринт 2.2: Підтримка LaTeX-рівнянь (1 тиждень) ✅ ЗАВЕРШЕНО

    • Встановлення залежностей KaTeX
    • Створення розширення Tiptap для LaTeX
    • Створення модального вікна EquationEditor
    • Додавання кнопки рівнянь на панель інструментів

    Функції:

    • Блочна математика через вузол mathBlock (KaTeX); модальне вікно формул з попереднім переглядом
    • Перемикач display/inline; кнопки шаблонів (дріб, сума, інтеграл, матриця)

    Спринт 2.3: Автозбереження та історія версій (1 тиждень) ✅ ЗАВЕРШЕНО

    • Створення схеми бази даних публікацій
    • Створення PublicationService
    • Створення хука useAutoSave
    • Створення VersionHistoryPanel
    • Створення API-маршрутів

    Схема бази даних (шаблон Ring JSONB у data/schema.sql):

  7. Створення компонента EditorToolbar
  8. Інтеграція редактора на сторінку редактора
  9. Ключові компоненти:

    • components/editor/scientific-editor.tsx — Основний редактор Tiptap
    • components/editor/editor-toolbar.tsx — Панель форматування

    Спринт 2.2: Підтримка LaTeX-рівнянь (1 тиждень) ✅ ЗАВЕРШЕНО

    • Встановлення залежностей KaTeX
    • Створення розширення Tiptap для LaTeX
    • Створення модального вікна EquationEditor
    • Додавання кнопки рівнянь на панель інструментів

    Функції:

    • Блочна математика через вузол mathBlock (KaTeX); модальне вікно формул з попереднім переглядом
    • Перемикач display/inline; кнопки шаблонів (дріб, сума, інтеграл, матриця)

    Спринт 2.3: Автозбереження та історія версій (1 тиждень) ✅ ЗАВЕРШЕНО

    • Створення схеми бази даних публікацій
    • Створення PublicationService
    • Створення хука useAutoSave
    • Створення VersionHistoryPanel
    • Створення API-маршрутів

    Схема бази даних (шаблон Ring JSONB у data/schema.sql):

    • publications: id, data (user_id, title, content, status, template_id), created_at, updated_at
    • publication_versions: id, data (publication_id, version_number, content, change_summary, created_by), created_at, updated_at

    API: GET/POST /api/publications, GET/PUT/DELETE /api/publications/[id], GET/POST /api/publications/[id]/versions (знімок/відновлення).

    Спринт 2.4: Підтримка рисунків та таблиць (1 тиждень)

    • Створення компонента FigureUpload
    • Створення компонента TableEditor
    • Створення системи перехресних посилань
    • Інтеграція сервісу завантаження файлів

    Функції:

    • Завантаження зображень перетягуванням
    • Підписи та нумерація рисунків
    • Створення таблиць з управлінням рядками/стовпцями
    • Перехресні посилання (Рисунок 1, Таблиця 2)

    Спринт 2.5: Функціональність експорту (1 тиждень)

    • Встановлення залежностей для експорту
    • Створення PDFExportService
    • Створення DocxExportService
    • Створення MarkdownExportService
    • Створення компонента ExportDialog
    • Додавання кнопки експорту на панель інструментів

    Формати експорту:

    • publications: id, data (user_id, title, content, status, template_id), created_at, updated_at
    • publication_versions: id, data (publication_id, version_number, content, change_summary, created_by), created_at, updated_at

    API: GET/POST /api/publications, GET/PUT/DELETE /api/publications/[id], GET/POST /api/publications/[id]/versions (знімок/відновлення).

    Спринт 2.4: Підтримка рисунків та таблиць (1 тиждень)

    • Створення компонента FigureUpload
    • Створення компонента TableEditor
    • Створення системи перехресних посилань
    • Інтеграція сервісу завантаження файлів

    Функції:

    • Завантаження зображень перетягуванням
    • Підписи та нумерація рисунків
    • Створення таблиць з управлінням рядками/стовпцями
    • Перехресні посилання (Рисунок 1, Таблиця 2)

    Спринт 2.5: Функціональність експорту (1 тиждень)

    • Встановлення залежностей для експорту
    • Створення PDFExportService
    • Створення DocxExportService
    • Створення MarkdownExportService
    • Створення компонента ExportDialog
    • Додавання кнопки експорту на панель інструментів

    Формати експорту:

    • publications: id, data (user_id, title, content, status, template_id), created_at, updated_at
    • publication_versions: id, data (publication_id, version_number, content, change_summary, created_by), created_at, updated_at

    API: GET/POST /api/publications, GET/PUT/DELETE /api/publications/[id], GET/POST /api/publications/[id]/versions (знімок/відновлення).

    Спринт 2.4: Підтримка рисунків та таблиць (1 тиждень)

    • Створення компонента FigureUpload
    • Створення компонента TableEditor
    • Створення системи перехресних посилань
    • Інтеграція сервісу завантаження файлів

    Функції:

    • Завантаження зображень перетягуванням
    • Підписи та нумерація рисунків
    • Створення таблиць з управлінням рядками/стовпцями
    • Перехресні посилання (Рисунок 1, Таблиця 2)

    Спринт 2.5: Функціональність експорту (1 тиждень)

    • Встановлення залежностей для експорту
    • Створення PDFExportService
    • Створення DocxExportService
    • Створення MarkdownExportService
    • Створення компонента ExportDialog
    • Додавання кнопки експорту на панель інструментів

    Формати експорту:

    • PDF: Форматування наукової статті, відрендерені рівняння
    • Word: Редагований DOCX зі збереженим форматуванням
    • Markdown: З метаданими frontmatter

    📦 Залежності

    NPM-пакети для встановлення

    • PDF: Форматування наукової статті, відрендерені рівняння
    • Word: Редагований DOCX зі збереженим форматуванням
    • Markdown: З метаданими frontmatter

    📦 Залежності

    NPM-пакети для встановлення

    • PDF: Форматування наукової статті, відрендерені рівняння
    • Word: Редагований DOCX зі збереженим форматуванням
    • Markdown: З метаданими frontmatter

    📦 Залежності

    NPM-пакети для встановлення

    # Редактор Tiptap (17 пакетів)
    npm install @tiptap/react @tiptap/starter-kit @tiptap/extension-placeholder \
      @tiptap/extension-highlight @tiptap/extension-typography \
      @tiptap/extension-text-align @tiptap/extension-underline \
      @tiptap/extension-subscript @tiptap/extension-superscript \
      @tiptap/extension-table @tiptap/extension-table-row \
      @tiptap/extension-table-cell @tiptap/extension-table-header \
      @tiptap/extension-image @tiptap/extension-link \
      @tiptap/extension-code-block-lowlight lowlight
    
    # LaTeX
    npm install katex react-katex
    
    
    
    # Редактор Tiptap (17 пакетів)
    npm install @tiptap/react @tiptap/starter-kit @tiptap/extension-placeholder \
      @tiptap/extension-highlight @tiptap/extension-typography \
      @tiptap/extension-text-align @tiptap/extension-underline \
      @tiptap/extension-subscript @tiptap/extension-superscript \
      @tiptap/extension-table @tiptap/extension-table-row \
      @tiptap/extension-table-cell @tiptap/extension-table-header \
      @tiptap/extension-image @tiptap/extension-link \
      @tiptap/extension-code-block-lowlight lowlight
    
    # LaTeX
    npm install katex react-katex
    
    
    
    # Редактор Tiptap (17 пакетів)
    npm install @tiptap/react @tiptap/starter-kit @tiptap/extension-placeholder \
      @tiptap/extension-highlight @tiptap/extension-typography \
      @tiptap/extension-text-align @tiptap/extension-underline \
      @tiptap/extension-subscript @tiptap/extension-superscript \
      @tiptap/extension-table @tiptap/extension-table-row \
      @tiptap/extension-table-cell @tiptap/extension-table-header \
      @tiptap/extension-image @tiptap/extension-link \
      @tiptap/extension-code-block-lowlight lowlight
    
    # LaTeX
    npm install katex react-katex
    
    
    

    🔧 Технічна архітектура

    Структура компонентів редактора

    components/editor/
    ├── scientific-editor.tsx      # Основний редактор з Tiptap
    ├── editor-toolbar.tsx         # Панель форматування
    ├── extensions/
    │   └── latex-extension.ts     # Рендеринг LaTeX
    ├── equation-editor.tsx        # Модальне вікно рівнянь
    ├── figure-upload.tsx          # Завантаження зображень
    ├── table-editor.tsx           # Створення таблиць
    ├── version-history-panel.tsx  # Браузер версій
    └── export-dialog.tsx          # Опції експорту
    

    Сервісний шар

    features/publications/services/
    ├── publication-service.ts     # CRUD-операції
    ├── pdf-export-service.ts      # Генерація PDF
    ├── docx-export-service.ts     # Експорт Word
    └── markdown-export-service.ts # Експорт Markdown
    

    📊 Метрики успіху


    🔧 Технічна архітектура

    Структура компонентів редактора

    components/editor/
    ├── scientific-editor.tsx      # Основний редактор з Tiptap
    ├── editor-toolbar.tsx         # Панель форматування
    ├── extensions/
    │   └── latex-extension.ts     # Рендеринг LaTeX
    ├── equation-editor.tsx        # Модальне вікно рівнянь
    ├── figure-upload.tsx          # Завантаження зображень
    ├── table-editor.tsx           # Створення таблиць
    ├── version-history-panel.tsx  # Браузер версій
    └── export-dialog.tsx          # Опції експорту
    

    Сервісний шар

    features/publications/services/
    ├── publication-service.ts     # CRUD-операції
    ├── pdf-export-service.ts      # Генерація PDF
    ├── docx-export-service.ts     # Експорт Word
    └── markdown-export-service.ts # Експорт Markdown
    

    📊 Метрики успіху


    🔧 Технічна архітектура

    Структура компонентів редактора

    components/editor/
    ├── scientific-editor.tsx      # Основний редактор з Tiptap
    ├── editor-toolbar.tsx         # Панель форматування
    ├── extensions/
    │   └── latex-extension.ts     # Рендеринг LaTeX
    ├── equation-editor.tsx        # Модальне вікно рівнянь
    ├── figure-upload.tsx          # Завантаження зображень
    ├── table-editor.tsx           # Створення таблиць
    ├── version-history-panel.tsx  # Браузер версій
    └── export-dialog.tsx          # Опції експорту
    

    Сервісний шар

    features/publications/services/
    ├── publication-service.ts     # CRUD-операції
    ├── pdf-export-service.ts      # Генерація PDF
    ├── docx-export-service.ts     # Експорт Word
    └── markdown-export-service.ts # Експорт Markdown
    

    📊 Метрики успіху

    МетрикаЦіль
    Час рендерингу редактораменше 100мс
    Затримка автозбереженняменше 500мс
    Час завантаження версіїменше 1с
    Час експорту PDFменше 5с
    Час експорту Wordменше 3с
    Покриття тестамипонад 80%
    Оцінка Lighthouseпонад 90
    МетрикаЦіль
    Час рендерингу редактораменше 100мс
    Затримка автозбереженняменше 500мс
    Час завантаження версіїменше 1с
    Час експорту PDFменше 5с
    Час експорту Wordменше 3с
    Покриття тестамипонад 80%
    Оцінка Lighthouseпонад 90
    МетрикаЦіль
    Час рендерингу редактораменше 100мс
    Затримка автозбереженняменше 500мс
    Час завантаження версіїменше 1с
    Час експорту PDFменше 5с
    Час експорту Wordменше 3с
    Покриття тестамипонад 80%
    Оцінка Lighthouseпонад 90

    ⚠️ Зниження ризиків


    ⚠️ Зниження ризиків


    ⚠️ Зниження ризиків

    РизикРішення
    Крива навчання TiptapПочати з starter-kit, додавати розширення поступово
    Продуктивність LaTeXЛедачий рендеринг рівнянь поза областю видимості
    Втрата форматування при експортіТестування зі складними документами, попередній перегляд
    Конфлікти автозбереженняВиявлення вкладок та UI вирішення конфліктів
    РизикРішення
    Крива навчання TiptapПочати з starter-kit, додавати розширення поступово
    Продуктивність LaTeXЛедачий рендеринг рівнянь поза областю видимості
    Втрата форматування при експортіТестування зі складними документами, попередній перегляд
    Конфлікти автозбереженняВиявлення вкладок та UI вирішення конфліктів
    РизикРішення
    Крива навчання TiptapПочати з starter-kit, додавати розширення поступово
    Продуктивність LaTeXЛедачий рендеринг рівнянь поза областю видимості
    Втрата форматування при експортіТестування зі складними документами, попередній перегляд
    Конфлікти автозбереженняВиявлення вкладок та UI вирішення конфліктів

    🔗 Використовувані активи Ring Platform

    • lib/file/FileService.ts — Абстракція завантаження файлів
    • lib/file/adapters/VercelAdapter.ts — Сховище Vercel Blob
    • features/news/components/editor/rich-text-editor.tsx — Референс TinyMCE
    • components/vendor/store-logo-uploader.tsx — Патерн drag & drop

    📚 Оновлення AI-CONTEXT

    Концепції для створення

    • zemna-ai-scientific-editor-architecture
    • zemna-ai-tiptap-integration
    • zemna-ai-latex-support
    • zemna-ai-version-history-system
    • zemna-ai-export-pipeline

    Реалізації для документування

    • scientific-editor-component
    • auto-save-hook
    • pdf-export-service
    • figure-table-system

    ✅ Чекліст деплою


    🔗 Використовувані активи Ring Platform

    • lib/file/FileService.ts — Абстракція завантаження файлів
    • lib/file/adapters/VercelAdapter.ts — Сховище Vercel Blob
    • features/news/components/editor/rich-text-editor.tsx — Референс TinyMCE
    • components/vendor/store-logo-uploader.tsx — Патерн drag & drop

    📚 Оновлення AI-CONTEXT

    Концепції для створення

    • zemna-ai-scientific-editor-architecture
    • zemna-ai-tiptap-integration
    • zemna-ai-latex-support
    • zemna-ai-version-history-system
    • zemna-ai-export-pipeline

    Реалізації для документування

    • scientific-editor-component
    • auto-save-hook
    • pdf-export-service
    • figure-table-system

    ✅ Чекліст деплою


    🔗 Використовувані активи Ring Platform

    • lib/file/FileService.ts — Абстракція завантаження файлів
    • lib/file/adapters/VercelAdapter.ts — Сховище Vercel Blob
    • features/news/components/editor/rich-text-editor.tsx — Референс TinyMCE
    • components/vendor/store-logo-uploader.tsx — Патерн drag & drop

    📚 Оновлення AI-CONTEXT

    Концепції для створення

    • zemna-ai-scientific-editor-architecture
    • zemna-ai-tiptap-integration
    • zemna-ai-latex-support
    • zemna-ai-version-history-system
    • zemna-ai-export-pipeline

    Реалізації для документування

    • scientific-editor-component
    • auto-save-hook
    • pdf-export-service
    • figure-table-system

    ✅ Чекліст деплою

    • Всі npm-пакети встановлені та зафіксовані
    • Міграції бази даних застосовані
    • Змінні оточення налаштовані
    • Файлове сховище (Vercel Blob) налаштовано
    • API-маршрути протестовані
    • Сервіси експорту протестовані зі зразками документів
    • Бенчмарки продуктивності досягнуті
    • Аудит доступності пройдено

    ← Фаза 1: Фундамент | Фаза 3: Менеджер цитат →

    # Експорт
    npm install @react-pdf/renderer docx file-saver
    • Всі npm-пакети встановлені та зафіксовані
    • Міграції бази даних застосовані
    • Змінні оточення налаштовані
    • Файлове сховище (Vercel Blob) налаштовано
    • API-маршрути протестовані
    • Сервіси експорту протестовані зі зразками документів
    • Бенчмарки продуктивності досягнуті
    • Аудит доступності пройдено

    ← Фаза 1: Фундамент | Фаза 3: Менеджер цитат →

    # Експорт
    npm install @react-pdf/renderer docx file-saver
    • Всі npm-пакети встановлені та зафіксовані
    • Міграції бази даних застосовані
    • Змінні оточення налаштовані
    • Файлове сховище (Vercel Blob) налаштовано
    • API-маршрути протестовані
    • Сервіси експорту протестовані зі зразками документів
    • Бенчмарки продуктивності досягнуті
    • Аудит доступності пройдено

    ← Фаза 1: Фундамент | Фаза 3: Менеджер цитат →

    # Експорт
    npm install @react-pdf/renderer docx file-saver