1
0
forked from mixa/67
Files
67/README.md
2026-06-15 00:19:37 +03:00

106 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 подготовлены, но постоянное хранение через БД остается следующим этапом.
## Локальный запуск
Установить зависимости:
```bash
npm install
```
Запустить весь проект без Docker:
```bash
npm run dev
```
Это одновременно запускает Go backend services, Node gateway и React/Vite frontend.
Запустить backend без Docker: все Go-сервисы + Node gateway:
```bash
npm run dev:backend
```
Запустить только gateway с fallback demo API:
```bash
npm run dev:gateway
```
В обычном локальном режиме gateway работает с fallback demo API, если Go-сервисы не запущены и `*_SERVICE_URL` не заданы.
Запустить frontend:
```bash
npm run dev:web
```
Проверить Go services:
```bash
npm run test:go
```
Docker сейчас необязателен. Для текущей разработки используйте `npm run dev:backend` и `npm run dev:web`.
Запуск всего окружения через Docker, если он понадобится позже:
```bash
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.
- Формулы показателей эффективности контента.