Files
pipu-music/docs/roadmap.md
T
mrleo1nidandClaude Opus 5.5 9eb1c25147 docs: add product idea, design prototypes and development documentation
- IDEA.md: product vision from the user's perspective (input for design)
- Architecture, ADRs, data model, REST API overview
- Auth and roles, library storage (NFS, path regexes, scanner, search),
  playback, recommendation system ("My Wave"), track upload queue
- Web, Android (offline, self-update), i18n, design system
- Testing strategy, Gitea Actions CI/CD, deployment, conventions, roadmap
- Clickable web/Android design prototypes and wave button variants
- .claude/launch.json to serve the prototypes locally

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 23:21:31 +03:00

60 lines
4.9 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.
# План разработки
Каждый этап заканчивается рабочей версией с тегом и релизом.
## M0 — Скелет (v0.1)
- Монорепо: pnpm + Turborepo, Go-модуль, Python-проект, `openapi.yaml` с `server-info`.
- `deploy/compose.dev.yaml`, nginx, Postgres, Redis, Meilisearch.
- `ci.yml` и `release.yml` (пока собирают пустые образы и debug-APK «hello»), генерация тестовой музыки.
- **Готово, когда:** тег `v0.1.0` создаёт релиз в Gitea с образами и APK.
## M1 — Доступ (v0.2)
- Bootstrap-админ, вход, refresh-ротация, смена пароля / учётных данных, сессии.
- Роли и политика прав, админка «Пользователи», аудит.
- Веб: каркас (топбар, сайдбар, пустой плеер), экраны входа и setup, i18n ru / en.
- **Готово, когда:** E2E-сценарии 1, 2, 8, 9, 10 зелёные.
## M2 — Библиотека и поиск (v0.3)
- storage-agent, источники NFS / local, тест подключения.
- Шаблоны путей с предпросмотром, сканер (инкрементальный, переименования, дубли), обложки.
- Meilisearch, suggest и страница поиска, страницы исполнителя и альбома.
- **Готово, когда:** реальная библиотека 11k треков сканируется, поиск < 50 мс, сценарии 3, 4.
## M3 — Воспроизведение (v0.4)
- Стриминг через X-Accel, подписанные ссылки, транскодинг и кэш.
- Плеер в вебе (очередь, Media Session, горячие клавиши, нормализация), сохранение состояния.
- События, история, лайки / дизлайки, раздел «Коллекция».
- **Готово, когда:** сценарии 5, 7; перемотка мгновенная; позиция восстанавливается на другом устройстве.
## M4 — Моя волна v1 (v0.5)
- analyzer (Essentia), признаки и эмбеддинги, прогресс в админке.
- recommender: кандидаты, эвристическое ранжирование, контексты (занятия / настроения), сессионный вектор,
правила разнообразия; fallback в Go.
- Анимированная кнопка волны и MoodPicker в вебе.
- **Готово, когда:** сценарий 6; метрики волны видны в админке.
## M5 — Android (v0.6)
- Вход с адресом сервера, главная с волной, поиск, коллекция, плеер с фоновым воспроизведением.
- Офлайн: загрузки, «Скачанное», очередь событий.
- Самообновление через сервер.
- **Готово, когда:** Maestro-сценарии зелёные; обновление 0.6.0 → 0.6.1 проходит на реальном устройстве.
## M5.5 — Очередь на добавление (v0.7)
- Отпечатки (SHA-256, Chromaprint) для существующей библиотеки.
- Запись через storage-agent, `accepts_uploads`, `write_template` с автоподбором и проверкой обратимости.
- tus-загрузка, предпроверка дублей, квота, обработка, экраны «Предложить треки», «Очередь на добавление», «Настройки».
- **Готово, когда:** E2E-сценарии 11, 12; импорт реального альбома ложится рядом с существующими по той же структуре.
## M6 — Моя волна v2 (v0.8)
- ALS, центроиды вкусов, LightGBM-ранжировщик, бандит, онбординг, ночное обучение с проверкой метрик.
- Персонализация suggest.
- **Готово, когда:** на накопленных данных v2 лучше v1 по офлайн-NDCG и онлайн early-skip rate.
## M7 — Стабилизация (v1.0)
- Нагрузочный smoke, бэкапы и восстановление (проверено), документация администратора,
доступность, полировка анимаций, багфиксы.
## Дальше (идеи)
- Плейлисты, волна по исполнителю / треку, ежедневные подборки, тексты песен, Chromecast / DLNA,
Android Auto, iOS (TestFlight), Last.fm-скробблинг, импорт лайков.