Initial commit: проект документации YARU

This commit is contained in:
2026-03-01 17:32:45 +03:00
commit 243b5caf7e
860 changed files with 13239 additions and 0 deletions
+94
View File
@@ -0,0 +1,94 @@
# Frontend документация
## Стек технологий
| Компонент | Технология | Примечание |
|-----------|------------|------------|
| Фреймворк | Svelte 4+ | Проверка достаточности возможностей |
| Язык | TypeScript | Строгая типизация |
| Сборщик | Vite | Быстрая разработка |
| Стили | SCSS + CSS Modules | Или Tailwind CSS |
| Состояние | Svelte Stores | Или Zustand-like решение |
| Роутинг | SvelteKit | Если нужен SSR |
---
## Требования к фронтенду
### 1. Основные страницы
- [ ] **Лента (Home)** — посты подписок, бесконечный скролл
- [ ] **Публичная лента** — все посты сервера
- [ ] **Профиль пользователя** — аватар, био, карма, посты
- [ ] **Создание поста** — текстовый редактор + загрузка медиа
- [ ] **Пост (детальный просмотр)** — комментарии, лайки, репосты
- [ ] **Подписки/Подписчики** — списки пользователей
- [ ] **Настройки** — профиль, безопасность, экспорт данных
### 2. Компоненты интерфейса
- [ ] `PostCard` — отображение поста (текст, медиа, карма)
- [ ] `UserProfile` — карточка пользователя
- [ ] `Composer` — форма создания поста
- [ ] `Timeline` — лента постов с пагинацией
- [ ] `MediaGallery` — галерея изображений/видео
- [ ] `KarmaDisplay` — отображение кармы
- [ ] `FollowButton` — кнопка подписки/отписки
### 3. Интеграция с редактором
**Временно**: Используем готовые решения:
- [ ] TipTap — расширяемый WYSIWYG редактор
- [ ] Quill — простой редактор с Markdown поддержкой
- [ ] Markdown textarea — резервный вариант
**В будущем**: Интеграция с Chronicle.nixg.ru
### 4. Управление состоянием
- [ ] Глобальное состояние: текущий пользователь, настройки
- [ ] Кэш постов: оптимистичное обновление UI
- [ ] Real-time обновления: WebSocket для новых постов
### 5. Адаптивный дизайн
- [ ] Mobile first подход
- [ ] Поддержка тёмной темы
- [ ] PWA возможности (оффлайн режим, push уведомления)
### 6. Экспорт данных (UI)
- [ ] Кнопка "Экспортировать мои данные" в настройках
- [ ] Прогресс-бар экспорта
- [ ] Скачивание ZIP архива с контентом
---
## Вопросы для проверки Svelte
- [ ] Хватит ли Svelte Stores для сложного состояния (лента + real-time)?
- [ ] Нужен ли SSR через SvelteKit для SEO?
- [ ] Поддержка WebSocket в Svelte (для live обновлений)?
- [ ] Производительность при большом количестве постов в ленте?
---
## План разработки фронтенда
1. [ ] Настройка Svelte + Vite + TypeScript
2. [ ] Базовая структура проекта (роуты, layout)
3. [ ] Компоненты: PostCard, UserProfile, Timeline
4. [ ] Интеграция с REST API бэкенда
5. [ ] Страница создания поста (редактор + медиа)
6. [ ] Real-time обновления (WebSocket)
7. [ ] Экспорт данных (UI + download)
8. [ ] Адаптивность + тёмная тема
---
## Вопросы для обсуждения
- [ ] Нужен ли SSR (SvelteKit) или достаточно SPA?
- [ ] Какой редактор выбрать для MVP (TipTap/Quill/Markdown)?
- [ ] Требуется ли поддержка PWA (оффлайн, push)?
- [ ] Нужна ли локализация интерфейса (только русский или мультиязычность)?