system/@platform-ui.app/CLAUDE.md

Platform UI

Версия: 1.0.0
Дата: 2025-12-06
Тип: Приложение (@app)


НАЗНАЧЕНИЕ

Веб-интерфейс для работы с Platform v1:
- Авторизация (OAuth)
- Воркспейсы и группы
- Проекты
- Чат с Claude (WebSocket)
- Просмотр файлов


АРХИТЕКТУРА

┌─────────────┐     WebSocket     ┌─────────────┐
│   Browser   │◄────────────────►│   Backend   │
│   (Svelte)  │                   │  (FastAPI)  │
└─────────────┘                   └──────┬──────┘
                                         │
                    ┌────────────────────┼────────────────────┐
                    │                    │                    │
              ┌─────▼─────┐       ┌──────▼──────┐      ┌──────▼──────┐
              │   Auth    │       │   Claude    │      │    Files    │
              │  (OAuth)  │       │   (API)     │      │  (Storage)  │
              └───────────┘       └─────────────┘      └─────────────┘

СТРУКТУРА

@platform-ui.app/
├── CLAUDE.md              # Этот файл
├── index.yaml             # Метаданные
├── docker-compose.yml     # Деплой

├── backend/               # Python FastAPI
   ├── main.py            # Точка входа
   ├── config.py          # Конфигурация
   ├── auth/              # OAuth (Google)
      ├── __init__.py
      ├── oauth.py
      └── jwt.py
   ├── api/               # REST endpoints
      ├── __init__.py
      ├── workspaces.py
      ├── groups.py
      ├── projects.py
      └── files.py
   ├── ws/                # WebSocket
      ├── __init__.py
      └── chat.py
   ├── models/            # SQLAlchemy
      ├── __init__.py
      ├── user.py
      ├── group.py
      └── workspace.py
   └── requirements.txt

└── frontend/              # Svelte + Vite
    ├── src/
       ├── App.svelte
       ├── routes/
          ├── Login.svelte
          ├── Workspaces.svelte
          ├── Workspace.svelte
          └── Project.svelte
       ├── components/
          ├── Header.svelte
          ├── Sidebar.svelte
          ├── Chat.svelte
          ├── FileTree.svelte
          └── FileViewer.svelte
       ├── stores/
          ├── auth.js
          ├── workspace.js
          └── chat.js
       └── lib/
           ├── api.js
           └── websocket.js
    ├── package.json
    └── vite.config.js

МОДЕЛЬ ДАННЫХ

User

id: UUID
email: string
name: string
avatar: string?
created_at: datetime

Group

id: UUID
name: string
owner_id: UUID (FK User)
created_at: datetime

GroupMember

group_id: UUID (FK Group)
user_id: UUID (FK User)
role: enum (owner, editor, viewer)
joined_at: datetime

Workspace

id: UUID
name: string
path: string
group_id: UUID (FK Group)
created_at: datetime

Project

id: UUID
workspace_id: UUID (FK Workspace)
name: string
type: string
created_at: datetime

API ENDPOINTS

Auth

GET  /auth/google          → Redirect to Google
GET  /auth/google/callback → Handle OAuth callback
POST /auth/logout          → Logout
GET  /auth/me              → Current user

Workspaces

GET    /api/workspaces           → List user's workspaces
POST   /api/workspaces           → Create workspace
GET    /api/workspaces/{id}      → Get workspace
DELETE /api/workspaces/{id}      → Delete workspace

Groups

GET    /api/groups/{id}          → Get group
POST   /api/groups/{id}/invite   → Invite user
DELETE /api/groups/{id}/members/{user_id} → Remove member
PATCH  /api/groups/{id}/members/{user_id} → Change role

Projects

GET    /api/workspaces/{ws_id}/projects      → List projects
POST   /api/workspaces/{ws_id}/projects      → Create project
DELETE /api/workspaces/{ws_id}/projects/{id} → Delete project

Files

GET /api/projects/{id}/files          → File tree
GET /api/projects/{id}/files/{path}   → File content

WebSocket

WS /ws/chat/{project_id}  → Chat with Claude

РОЛИ И ПРАВА

Действие owner editor viewer
Читать файлы
Чат с Claude
Создавать проекты
Удалять проекты
Управлять группой
Удалить воркспейс

КОНФИГУРАЦИЯ

Переменные окружения

# OAuth
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

# JWT
JWT_SECRET=
JWT_ALGORITHM=HS256
JWT_EXPIRE_HOURS=24

# Database
DATABASE_URL=sqlite:///./platform.db

# Claude
CLAUDE_API_KEY=

# Server
HOST=0.0.0.0
PORT=8000

ЗАПУСК

Development

# Backend
cd backend
pip install -r requirements.txt
uvicorn main:app --reload

# Frontend
cd frontend
npm install
npm run dev

Production

docker-compose up -d

ROADMAP


Версия: 1.0.0