Files
67/apps/web/README.md
2026-06-22 20:13:14 +03:00

3.6 KiB
Raw Blame History

ДГТУ МЕДИА

Frontend MVP информационной системы управления медиаконтентом университета. Проект выполнен на JavaScript/JSX, React, Vite и Tailwind CSS.

Запуск

Требуются Node.js 22+ и Corepack.

corepack prepare pnpm@11.0.0 --activate
corepack pnpm install
corepack pnpm dev

Откройте http://localhost:5173.

Проверки

corepack pnpm lint
corepack pnpm test
corepack pnpm build

Структура

src/
  app/          маршрутизация, layouts и состояние сессии
  pages/        публичные страницы и ролевые кабинеты
  shared/
    api/        Axios-клиент и общая обработка ошибок
    data/       реалистичные mock-данные
    lib/        небольшие общие helpers
    ui/         переиспользуемые компоненты

В DESIGN.md описаны дизайн-токены, визуальный характер, правила компонентов и анимаций.

Реализованные страницы

  • главная редакционная страница;
  • каталог с поиском и фильтрами через URL;
  • страница материала;
  • афиша событий;
  • медиаканалы: радио, журналы и социальные сети;
  • страница о медиапортале;
  • вход и тестовые роли;
  • профиль пользователя;
  • кабинет редактора и форма материала;
  • очередь модератора;
  • статистика и пользователи администратора;
  • страницы 403 и 404 с SVG-анимацией.

Тестовые роли

Пароль может быть любым от 6 символов.

Роль Учётная запись
Пользователь user@dstu.ru
Редактор editor@dstu.ru
Модератор moderator@dstu.ru
Администратор admin@dstu.ru

Роль также можно переключить в шапке кабинета для демонстрации интерфейсов.

Ожидаемые backend endpoints

  • POST /auth/login, POST /auth/refresh, POST /auth/logout;
  • GET/PATCH /users/me;
  • CRUD /materials, /categories, /tags, /events;
  • /materials/:id/comments, /subscriptions, /notifications;
  • /moderation/queue, /moderation/:id/approve, /moderation/:id/return;
  • /admin/users, /admin/stats, /admin/audit-log;
  • POST /uploads.

Адрес API задаётся через VITE_API_URL. Пока интерфейс использует локальные mock-данные.

Безопасность зависимостей

Проект закреплён на pnpm 11. В pnpm-workspace.yaml включены:

  • minimumReleaseAge: 1440;
  • blockExoticSubdeps: true;
  • trustPolicy: no-downgrade;
  • явный allowBuilds только для esbuild и @tailwindcss/oxide.

Lockfile необходимо хранить в репозитории.

Ограничения MVP

  • данные не сохраняются после обновления страницы;
  • загрузка файлов и комментарии представлены интерфейсом без backend;
  • внешние изображения загружаются с Unsplash;
  • график администратора демонстрационный.