ДГТУ МЕДИА
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;
- график администратора демонстрационный.