Введение в проект TAK

Проект TAK — это монорепозиторий, объединяющий:

Введение в проект TAK

Проект TAK — это монорепозиторий, объединяющий:

  • Strapi (apps/strapi) — headless CMS для управления контентом
  • Nuxt (apps/web) — фронтенд на Vue 3 и Nuxt 4
  • Docus (apps/docus) — документация (это приложение)

Архитектура

flowchart LR
    subgraph Backend [Backend]
        Strapi[Strapi CMS]
    end

    subgraph Frontend [Frontend]
        Nuxt[Nuxt Web]
    end

    subgraph Docs [Docs]
        Docus[Docus]
    end

    Nuxt -->|REST API| Strapi

Контент создаётся в Strapi, сохраняется в базу данных и отдаётся через REST API. Nuxt-приложение запрашивает данные и рендерит страницы с помощью компонентов, соответствующих блокам из Strapi.

Ключевые концепции

Content Types (типы контента)

  • Single types — один экземпляр (header, footer, contact, map и т.д.)
  • Collection types — множество записей (страницы, проекты, новости, акции и т.д.)

Blocks (блоки)

Страницы, проекты, новости и другие сущности состоят из блоков (Dynamic Zone). Каждый блок — это компонент с полями. На фронте блоки маппятся на Vue-компоненты в Renderer.vue.

Структура блоков

При добавлении нового блока в один content-type его нужно добавить во все типы, где используется Dynamic Zone:

  • Страницы (api::page.page)
  • Новости (api::new.new)
  • Акции (api::promotion.promotion)
  • Проекты (api::project.project)
  • Вторички (api::secondary-house.secondary-house)
  • Страница квартиры (api::apartment-page.apartment-page)

Подробнее — в разделе Strapi.

Copyright © 2026