Files
twitch-panels/plans/PROJECT_PLAN.md
T

205 lines
12 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.
# Twitch Panels Creator - Project Plan
## MVP (Minimum Viable Product)
### Цель MVP
Создать инструмент для быстрого создания нескольких Twitch панелей в едином стиле с разными текстами.
### Функциональность MVP
#### 1. Загрузка фонового изображения
- Автоматическая загрузка фонового изображения по умолчанию при старте
- Возможность загрузки собственного фонового изображения
- Обрезка изображения до нужных пропорций
#### 2. Создание панелей
- Ввод текстов для создания отдельных панелей
- Каждый текст создает отдельную панель
- Все панели используют одно фоновое изображение
- Настройки текста применяются ко всем панелям
#### 3. Настройки текста
- Размер шрифта (10-72px)
- Выбор шрифта из списка (Arial, Verdana, Georgia и др.)
- Цвет текста
- Выравнивание (лево, центр, право)
- Боковые отступы
- Вертикальное смещение от центра
#### 4. Управление текстами
- Список всех созданных текстов
- Редактирование текста прямо в списке
- Удаление текста кнопкой "×"
- Автоматическое обновление панелей при изменении текстов
- Автоматическая фильтрация пустых текстов и дубликатов
#### 5. Просмотр панелей
- Единое фоновое изображение в боковой панели (один раз вверху)
- Превью всех созданных панелей с текстом на фоне
- Превью только для просмотра
- Скачивание отдельной панели
- Массовое скачивание всех панелей
#### 6. Экспорт панелей
- Скачивание панелей в формате PNG
- Размер панелей: 320px ширина, настраиваемая высота (по умолчанию 100px)
## Workflow работы программы (MVP)
### Шаг 1: Запуск приложения
1. Пользователь открывает приложение
2. Автоматически загружается фоновое изображение по умолчанию
3. Пользователь видит экран добавления текстов
### Шаг 2: Настройка фона (опционально)
1. Фоновое изображение отображается в боковой панели с кнопкой "Загрузить"
2. Пользователь может загрузить собственное фоновое изображение
3. При необходимости обрезает изображение
4. Фон отображается один раз в боковой панели с правильными размерами (максимальная ширина 320px)
5. Фон применяется ко всем создаваемым панелям
6. Превью панелей показывают финальный результат с текстом на фоне
### Шаг 3: Создание и редактирование текстов
1. Пользователь вводит текст для первой панели (например: "links")
2. Нажимает кнопку "Добавить"
3. Текст добавляется в список текстов (пустые тексты и дубликаты автоматически фильтруются)
4. В боковой панели автоматически отображается превью созданной панели
5. Пользователь повторяет процесс для других текстов ("about me", "projects", "memes")
6. Все тексты отображаются в списке ниже поля ввода
7. Каждый текст в списке можно редактировать прямо в поле ввода (дубликаты автоматически фильтруются)
8. Любой текст можно удалить кнопкой "×"
9. При редактировании или удалении текста автоматически обновляется соответствующая панель
### Шаг 4: Настройка внешнего вида (опционально)
1. Пользователь настраивает параметры текста:
- Размер шрифта
- Шрифт
- Цвет
- Выравнивание
- Отступы
2. Настройки применяются ко всем создаваемым панелям
3. Превью панелей в боковой панели обновляется в реальном времени
### Шаг 5: Просмотр панелей
1. В боковой панели отображается фоновое изображение (один раз вверху)
2. Ниже отображаются превью всех созданных панелей
3. Превью панелей показывают финальный результат с текстом на фоне
4. Превью только для просмотра, редактирование происходит в списке текстов
### Шаг 6: Экспорт панелей
1. Пользователь скачивает отдельные панели или все сразу
2. Панели сохраняются в формате PNG
3. Готовые панели загружаются в Twitch
## Технические требования MVP
### Frontend
- Svelte 5 с runes
- TypeScript
- SvelteKit
- Tailwind CSS (опционально для стилей)
### Основные компоненты
#### UI компоненты (максимум 5)
- AppHeader - заголовок приложения с кнопкой загрузки изображения
- ImageManager - управление загрузкой и обрезкой изображений
- TextSection - управление текстами и настройками
- BackgroundPreview - превью фонового изображения
- PanelsList - список превью всех созданных панелей
#### Вспомогательные компоненты
- ImageUpload - загрузка изображений
- ImageCropper - обрезка изображений
- TextManager - добавление, редактирование и удаление текстов
- PanelPreview - превью отдельной панели (только для просмотра)
### Хранилище данных
- panelStore - хранение состояния панелей и функций для их создания
- uiStore - хранение состояния UI (текущий шаг, загрузка и т.д.)
- texts - массив текстов для создания панелей (хранится в компоненте страницы)
### Сервисы
- exportService - экспорт панелей в PNG
## Будущее развитие (Future Roadmap)
### Фаза 2: Расширение функциональности
#### 1. Дополнительные настройки
- Добавление иконок к панелям
- Настройка тени текста
- Градиентный текст
- Несколько текстовых элементов на одной панели
- Настройка прозрачности фона
#### 2. Библиотека шаблонов
- Предустановленные шаблоны панелей
- Возможность сохранения собственных шаблонов
- Категории шаблонов (игры, технологии, искусство и т.д.)
#### 3. Пакетная обработка
- Импорт списка текстов из файла
- Автоматическое создание панелей из списка
- Пакетное переименование панелей
### Фаза 3: Социальные функции
#### 1. Облачное хранилище
- Сохранение проектов в облаке
- Синхронизация между устройствами
- История версий
#### 2. Шаринг
- Возможность делиться проектами
- Публичная библиотека панелей
- Рейтинг и отзывы
#### 3. Интеграции
- Интеграция с Twitch API
- Автоматическая загрузка панелей в Twitch
- Интеграция с другими платформами (YouTube, Discord)
### Фаза 4: Монетизация
#### 1. Premium функции
- Дополнительные шаблоны
- Расширенные настройки
- Приоритетная поддержка
#### 2. Маркетплейс
- Продажа премиальных шаблонов
- Комиссионные продажи
## Метрики успеха MVP
- Время создания одной панели: < 30 секунд
- Время создания набора из 5 панелей: < 2 минут
- Успешное скачивание панелей: 100%
- Положительный фидбек от первых пользователей
## Ограничения MVP
- Один фоновый рисунок для всех панелей
- Фон отображается один раз в боковой панели (максимальная ширина 320px)
- Превью панелей показывают финальный результат с текстом на фоне
- Один текстовый элемент на панель
- Фиксированная ширина панели (320px)
- Только экспорт в PNG
- Работа в браузере без сохранения на сервере
- Редактирование текстов происходит в списке, превью только для просмотра
## Следующие шаги
1. ✅ Реализовать базовую структуру приложения
2. ✅ Реализовать загрузку и обрезку изображений
3. ✅ Реализовать создание панелей из текстов
4. ✅ Реализовать настройки текста
5. ✅ Реализовать управление текстами (редактирование, удаление)
6. ✅ Реализовать превью панелей (только для просмотра)
7. ✅ Реализовать экспорт панелей
8. ✅ Разделить редактирование текстов и превью панелей
9. 🔄 Тестирование и исправление багов
10. ⏳ Сборка фидбека от пользователей
11. ⏳ Планирование Фазы 2 на основе фидбека