1
0
forked from mixa/67
This branch is 2 commits behind mixa/67:main
2026-06-22 20:13:14 +03:00
2026-06-15 00:20:48 +03:00
2026-06-15 00:20:48 +03:00
2026-06-15 00:20:48 +03:00
2026-06-15 00:20:48 +03:00
2026-06-15 00:20:48 +03:00
2026-06-15 00:20:48 +03:00
2026-06-15 00:20:48 +03:00
2026-06-15 00:20:48 +03:00
2026-06-15 00:20:48 +03:00
2026-06-15 00:20:48 +03:00
2026-06-15 00:20:48 +03:00
2026-06-15 00:19:37 +03:00
2026-06-15 00:20:48 +03:00

Fable Media Platform

Рабочий scaffold по plan.md и ТЗ_единый.md: университетская платформа управления медиаконтентом, а не общий сайт университета.

Что реализовано

  • React + TailwindCSS frontend на русском языке.
  • Публичный контур: главная, каталог, поиск, материалы, медиа, мероприятия как тип контента, спикеры.
  • Персонифицированный контур: демо-вход, профиль, роли, подписки, уведомления, комментарии.
  • Административный контур: dashboard, пользователи и роли, очередь модерации, журнал действий, форма черновика.
  • Elysia gateway на Node.js с CORS, request ID, rate limiting, service proxy, token-style fallback auth и RBAC checks.
  • Go microservices для auth, user, content, taxonomy, speaker, subscription, notification, comment, search, analytics, audit, media.
  • Рабочие backend endpoints: регистрация, вход, профиль, контент CRUD, медиа, категории, теги, спикеры, подписки, уведомления, комментарии, поиск, аналитика, admin users/roles/audit.
  • PostgreSQL migration для сущностей из ТЗ.
  • Docker Compose для локального запуска всех контуров.

Все данные в интерфейсе и API являются явно демонстрационными заглушками. Реальные люди, подразделения, интеграции, юридические сведения и брендовые материалы не добавлялись.

Backend сейчас использует in-memory demo store внутри Go-сервисов. PostgreSQL schema и Docker PostgreSQL подготовлены, но постоянное хранение через БД остается следующим этапом.

Локальный запуск

Установить зависимости:

npm install

Запустить весь проект без Docker:

npm run dev

Это одновременно запускает Go backend services, Node gateway и React/Vite frontend.

Запустить backend без Docker: все Go-сервисы + Node gateway:

npm run dev:backend

Запустить только gateway с fallback demo API:

npm run dev:gateway

В обычном локальном режиме gateway работает с fallback demo API, если Go-сервисы не запущены и *_SERVICE_URL не заданы.

Запустить frontend:

npm run dev:web

Проверить Go services:

npm run test:go

Docker сейчас необязателен. Для текущей разработки используйте npm run dev:backend и npm run dev:web.

Запуск всего окружения через Docker, если он понадобится позже:

docker compose up --build

В Docker Compose gateway проксирует /api/* в Go-сервисы. Frontend nginx также проксирует /api/* в gateway, поэтому http://localhost:5173 работает как единое приложение.

Frontend: http://localhost:5173.

Gateway health: http://localhost:3000/health.

Internal services health through gateway: http://localhost:3000/api/services/health.

Демо-вход

Логин: demo_admin

Пароль: demo_password

Auth service принимает демо-учетную запись и возвращает demo token. Это не production-аутентификация; для промышленного контура нужен подписанный JWT или другой проверяемый token format.

Backend API

  • POST /api/auth/register, POST /api/auth/login, GET /api/auth/me, POST /api/auth/logout, POST /api/auth/change-password
  • GET /api/content, GET /api/content/:id, POST /api/content, PATCH /api/content/:id, DELETE /api/content/:id
  • GET /api/media, GET /api/events, GET /api/categories, GET /api/tags, GET /api/speakers
  • GET /api/search?q=..., GET /api/subscriptions, POST /api/subscriptions
  • GET /api/notifications, PATCH /api/notifications/:id/read
  • GET /api/comments/:contentId, POST /api/comments/:contentId
  • GET /api/analytics/summary, GET /api/admin/dashboard, GET /api/admin/users, GET /api/admin/roles, GET /api/admin/audit

Открытые вопросы из плана

  • Финальное название платформы.
  • Разрешенные логотипы и брендовые материалы.
  • Источник реальных данных для миграции.
  • Точная матрица ролей и прав.
  • Являются ли мероприятия отдельной сущностью или типом контента.
  • Production runtime и инфраструктура для gateway.
  • Формулы показателей эффективности контента.
Description
No description provided
Readme 1.7 MiB
Languages
TypeScript 72.3%
Go 23.5%
CSS 1.3%
Shell 1.3%
Dockerfile 0.8%
Other 0.8%