ТTessora Docs

Страницы приложения

Все роуты, их назначение и доступ по ролям

Публичные страницы

Доступны без аутентификации.

ПутьНазначение
/Редирект: авторизован → /dashboard, нет → /login
/loginВход (email + пароль)
/forgot-passwordВосстановление пароля
/invite/acceptПринятие приглашения по токену (единственный способ регистрации)

Защищённые страницы (app)

Все лежат в src/app/(app)/ и наследуют общий layout (Sidebar + Topbar). Видимость пунктов меню определяется в src/components/sidebar/nav-config.ts по роли и permission.

Общие (клиент + команда)

ПутьСтраницаДоступ
/dashboardОбзор: статистика, быстрые действияклиентские роли
/directionsНаправленияклиентские роли
/new-taskСоздание задачи: Smart Selector, материалы, референсыtask.create
/tasksСписок задач: фильтры, поиск, пагинацияtask.view
/tasks-targetТаргет-задачи (отдельный список, isTarget=true)task.view
/calendar-liveКалендарь с drag-and-drop (@dnd-kit)calendar.view
/ready-liveГотовый контент: просмотр, приемка, правки, версииcontent.view_ready
/references-liveРеференсы: галерея по категориям, загрузкавсе роли
/content-makerКонтент-конструктор (сейчас скрыт из меню)
/safebot«Скачать Референс» — Instagram downloadersafebot.view

Monster Team

ПутьСтраницаДоступ
/team/dashboardГлавная команды: в работе, очередь, метрикиmonster_pm, monster_creator
/team/queueОчередь задачкоманда + админы
/team/calendarКалендарь работ командыкоманда
/team/notificationsИстория уведомленийкоманда

Администрирование

ПутьСтраницаДоступ
/adminАдмин-панель (входная точка)super_admin, monster_admin
/companies, /companies/[id]Компании: клиенты и Monster Teamcompany.view
/usersПользователи: роли, permission overrides, приглашенияuser.view
/storageХранилище: файлы в R2/MinIOadmin.manage_storage
/audit-logЖурнал событий: кто, что, когдаaudit.view
/aiAI Генерация: провайдеры, бюджет, usageadmin.manage_ai_budget (только super_admin)

Служебные / демо

ПутьНазначение
/ui-kitДемо всех UI-компонентов (кнопки, пагинация, цвета)
/smart-selector-demoДемо Smart Selector
/toast-demoДемо Toast-уведомлений

Как добавить новую защищённую страницу

  1. Создать src/app/(app)/<route>/page.tsx — layout наследуется автоматически.
  2. Если роль не должна видеть страницу — добавить guard в src/lib/auth/redirects.ts.
  3. Пункт меню — в src/components/sidebar/nav-config.ts (массивы NAV_CLIENT / NAV_TEAM / NAV_ADMIN_BASE).
  4. Данные — через TanStack Query хук в src/hooks/ или src/lib/api/hooks/.

On this page