GET THINGS DONE
Здесь я, Влад, основатель приложения Вертушки, делюсь всем прогрессом. Тут также можно увидеть что планирую реализовать в ближайшее время. Специально сделал публичным этот борд, чтобы каждый мог заскочить и посмотреть! Спасибо, что пользуйтесь :)
0 clones · 0 likes · 0 followers
Backlog
- СупермаркетВ разделе Маркета есть иконка тележки, при нажатии на которую открывается супермаркет с самыми редкими и цепляющими пластинками со сторов
- Улучшить experience сканирования пластинокСценарий: юзер стоит на ярмарке или в магазине перед ящиком из 300 пластинок. Вопросы в голове на каждую интересную: она в вишлисте? 1500₽ — это дорого или дёшево? редкая? Сейчас он открывает Discogs, ищет руками, ждёт, теряет 2 минуты на пластинку. Флоу: Кнопка «Диггер» (в Поиске или на табе) → полноэкранная камера, ничего лишнего Навёл на обложку (или штрихкод) → твой существующий скан-стек (barcode + Vision + CLIP) → вердикт одним экраном, крупно:🟢 «В ВИШЛИСТЕ!» + медианная цена: «просят обычно 3200₽» → если ценник 1500₽ — хватай 🔵 «УЖЕ ЕСТЬ» — не бери дубль (или бери, если пресс другой — показать какой у тебя) 🟣 «Лимитка» / 💚 «Коллекционка» — рарити-теги уже считаются ⚪ ничего особенного — цена + кнопка «в вишлист» Свайп вниз → следующий скан. Скорость — главное: цель < 5 сек на пластинку
- Умные оповещения про динамику цен и апдейтов по вишлисту + Маркет«Упало в цене» — парсеры уже ходят каждые 6ч; храним историю цен листинга (новая таблица listing_price_history или дельта в store_listing) → карточки «−28% · было 4200₽ → 2990₽ · Vinyl.ru». Критерий попадания: drop ≥ 15% за 7 дней «Редкость в наличии» — пересечение store_listing × рарити-флаги: коллекционка/лимитка появилась в наличии в РФ. Это редкое событие само по себе — можно и push тем, у кого в вишлисте «Ниже мировой» — листинги, где цена RUB < медианы Discogs (пересчитанной твоей формулой pricing.py). «В РФ дешевле, чем заказывать: 2400₽ против ~3800₽ с доставкой». Убойный аргумент — ты единственный, кто может это посчитать «Последний экземпляр» — quantity=1 или пропал-появился (уже есть Hot Stock pill — обобщить) Сценарий юзера: утренний заход → скролл дилов как ленты → тап → карточка записи с оффером → клик в магазин (= PurchaseClick, M7 affiliate). Дилы дня — это по сути affiliate-инвентарь, который сам себя собирает. Технически ядро — история цен. Как только она есть, все 4 блока — SQL-запросы. Заодно она же питает «динамику цен» в C1-радаре — делать одной подсистемой.
- Сделать логотип загрузки#дизайн
- Vinyl WrappedГодовая (+ опц. месячная) share-карточка: сколько добавил за год, топ-жанры/десятилетия, самая редкая находка года, прирост стоимости коллекции в RUB, доля лимиток/коллекционок, страны прессов. Почему: Spotify Wrapped доказал — главный органический канал привлечения. Прямой контент под TikTok-стратегию из M10. База: og_image-генерация и share-карточки ачивок уже есть; collection_value_snapshot даёт динамику стоимости. Реализация: backend-агрегатор по коллекции за период → набор story-карточек (5–7 экранов) → share PNG. Запуск в декабре, пуш «твой год готов». Метрика: доля юзеров, зашеривших ≥1 карточку.
- Сделать кнопку «мне повезёт»В Поиске добавить кнопку, которая показывает рандомную пластинку (но зачееем, тут надо додумать)
- Афиша винил-ивентовНе строим клубы сами — становимся афишей. Discover-лист ивентов: прослушивание нового альбома в Коробке Винила, распродажа в AI Sheff, ярмарки (вкл. бывший E2 — календарь ярмарок МСК/СПб/регионы), DJ-сеты. RSVP «пойду» + видно кто из подписок идёт Магазины постят сами (им трафик) → партнёрская валюта для M7-переговоров: «мы приводим людей на ваши ивенты» Внутри ярмарочного ивента — вход в Диггер (C2) v1: ивенты добавляются вручную (admin), магазины — через нас; v2: кабинет магазина
- Витрина неделиПубличная «коллекция недели». Участвуют все с публичным профилем — отдельная галка не нужна. Автоматический шорт-лист (сигналы): Полнота карточек: фото, condition, заметки — «ухоженность» Разнообразие: страны прессов, десятилетия, жанры (глубина > количество) Рарити-плотность: доля collectible/limited (НЕ стоимость — иначе pay-to-win витрина) Свежая активность за неделю Финал: ручной выбор из шорт-листа 5–10 с редакционной подписью («Коллекция недели: 60 лет японских прессов»). Ротация: один юзер не чаще раза в N месяцев. Формат: карточка в поиске/ленте + пост в Telegram-канал. Позже — тематические недели
- Сообщения: фишкиОбщие пластинки как ice-breaker. Под шапкой чата (или в empty state «Это начало вашей беседы») — строка «У вас 14 общих пластинок · 3 совпадения по вишлистам» с горизонтальной лентой обложек. Данные уже есть в коллекциях, это просто пересечение. Убивает проблему «о чём написать». Бейдж «у вас в вишлисте» на карточке пластинки. Когда собеседник шарит релиз, который у тебя в вишлисте — карточка подсвечивается: «⭐ Она у вас в вишлисте». И обратный вариант: «💿 У вас уже есть». Мгновенный контекст без перехода в карточку. Быстрые ответы на карточку пластинки. Под чужой карточкой — два чипа: «🔥 Хочу» (добавляет в вишлист + реакция) и «💿 Есть такая». Одним тапом и отреагировал, и обновил коллекцию. Крутящаяся обложка. Обложка в карточке пластинки медленно вращается как винил на вертушке (или начинает вращаться при появлении в ленте). Дешёвый reanimated-loop, а бренд-момент сильный — это буквально имя приложения. Виниловый набор реакций. Заменить/дополнить дефолтный QUICK_REACTIONS тематикой: 💿 🎵 🔥 🤝 («махнёмся»), 💸 («продай»). Реакция «💸» на карточку пластинки — естественный вход в маркет-сценарий. Структурное предложение обмена/продажи. У вас уже есть маркет — сообщение-оффер: карточка «Предлагаю обмен: моя X на твою Y» или «Продам за N ₽» с кнопками принять/отклонить/встречное. Это то, ради чего коллекционеры реально пишут друг другу, и сейчас они делают это плейн-текстом. Подарок через чат. Флоу подарков (app/gift/) уже существует — сообщение-подарок с анимацией разворачивания (конверт → обложка) вместо перехода в отдельный экран. «Сейчас на вертушке». Лёгкий статус: юзер отмечает, что слушает сейчас — это видно в шапке чата под именем вместо «был(а) N мин назад», и по тапу открывается релиз. Даёт живой повод для сообщения и очень в духе приложения.
- КрутаниКнопка «Крутани» в Поиске. Тап → горизонтальная лента обложек летит слева направо, замедляется, останавливается на рандомной редкости — визуал jukebox / слот-машины. Выборка: рандом из дампа с фильтром рарити (collectible/limited, или have < N + want/have высокий) — флаги уже считаются Результат: карточка → «в вишлист» / «крутануть ещё» / share («смотри что выпало») Залипательная механика + спрятанная фича = делает раздел Поиска живым Backend: один endpoint random-выборки по существующим флагам. Основная работа — анимация ленты (Reanimated; физика замедления как в AutoRail) v2: тематические барабаны («только 60-е», «только Мелодия»), home-screen виджет «редкость дня» с той же логикой
- Рекомендации исходя из коллекции пользователя
- Подумать как докрутить Радар
- Сделать интеграцию с вишлистами WishApptg @grulex
- Винил цветной (апгрейд)Добавить нестандартного вида винил фосфорный с песком с водой внутри marble и тд У нас есть какого-то плана макеты, но их нужно дорабатывать
- Подключить P2P между юзерами
- AppStore: Innapp eventsIn-App Events Событие в App Store — отдельная карточка, которая индексируется поиском (дополнительная площадь под ключи), показывается на продуктовой странице, в выдаче и может попасть в редакционные подборки. Плюс это один из типов, которые можно номинировать на фичеринг Док APPSTORE_ASO_KIT.md
- Просерчить тему с B2B маркетплейсамиОень прикольный инсайт: есть сервисы в РФ, которые подключапют оплату так, чтобы определнный процент шел сразу мастеру с покупки (и компания не платит налог и не парится на эту тему) Надо поискать такие сервисы, подключить его, чтобы работало вот так: Для этого потом будет работать в след виде: внутри приложения чел покупает пластинку в маркетплейсе у меня и деньги прилетают сразу в маркетплейс и часть процента с покупки мне на счет
- Сделать анимации с маскотом
- Волны шерингаВремя от времени включать рубильник на шеринг в приложение по реф ссылке, чтобы кто пригласит больше юзеров, будет бороться за топ места среди которых есть исключительные виды ачивок и главный приз - пластинка
- Добавить коллабу с Scratch DJ SchoolКогда у нас аватарки будут в виде пластинок, каждый кто захочет её тапом поскретичить, получит всплывающий баннер внизу на пробный урок по диджеингу с контактами
- Коллаборации giveaway с тг-сообществами
- Придумать фан факты во время загрузкиСейсас очень долго прогружается старничка артиста, если много релизов, может как-то этот процесс разбавить?
- Отредачить аватарку (пластинка)Протестить вариант, чтобы фотография грузилась в шаблон пластинки, которая как раз крутится. Ну и давать возможность сркетчить аватарку емае!
To Do
- Улучшить сканирование обложекСейчас стоит low quality, можно поставить auto, но стоимость вырастет в несколько раз за запрос Отличный пример! Это Tame Impala — InnerSpeaker (сверху) и Mac Miller — Faces (снизу). Обе — культовые, визуально узнаваемые обложки без текста. С detail: "low" модель получает крошечную картинку 512x512 — на ней artwork превращается в кашу. Без повышения detail даже идеальный промпт не поможет — модель просто не видит деталей. Компромиссный вариант — поменять только detail на "auto", без смены модели. Это увеличит стоимость с ~$0.001 до ~$0.01 за запрос (при $5 хватит на ~500 сканирований), но распознавание визуальных обложек станет кардинально лучше. Промпт тут вторичен — главный bottleneck именно качество картинки. Хочешь попробовать только detail: "auto"? А есть ли что-то между ними? Типа detail чутка улучшить Нет, у OpenAI только три варианта: low, high и auto. Промежуточных нет. low — всегда 512x512, 85 токенов high — полное разрешение (до 2048px), ~1100+ токенов auto — модель сама выбирает между low и high По факту auto для обложек с artwork почти всегда выберет high. Но это всё равно ~$0.01 за скан — при $5 хватит на 500 штук, это много.
- Прокидывать в письмо ссылку на инфо о пластинке + ссылки на магазины (если они есть)🖼
- Alert Check WishlistДобавить внутри пластинки из вишлиста алерт, чтобы приходила инфа по стоимости и где в наличии она, чтобы юзер был в курсе. Типа колокольчик, чтобы не потерять стоимость и динамику Для остальных делать сводку раз в день что из актуального в продаже
- Изучить подключение без сайта через дискогс (дискомаркет пример)
- Пофиксить прогрузку витрин в Поиске при открытии приложения
- Добавить поиск в Коллекцию (сценарий: когда 3000 пластинок)
- Добавить фильтры в коллекцию: жанры
- Сделать фильтр в вишлисте (в наличии, есть аналог)
- Сделать фильтр в Вишлисте (в продаже, есть аналог) + поиск
In Progress
- Создание схемы выгрузки всех обложек релизов, чтобы загружались моментально
- Уведомления подписчиков: прыгать во все релизы, подтягивать иконки ачивок
- Пилим первый драфт по Андроиду
- Продолжить план по дотюниванию подключения магазинов MARKET_STORES_SCALING.md
Done
- Добавить папки как сущность в вишлист
- Google & Apple Sign inОкей, по каждой штуке пошагово. 1) Google Client IDs Где взять: Google Cloud Console → выбрать/создать проект → APIs & Services → Credentials → + CREATE CREDENTIALS → OAuth client ID. Тебе нужно создать 3 OAuth Client ID (для одного и того же проекта): ТипЧто заполнятьКуда пойдётWeb applicationname = "Vertushka Web", всё остальное пустоеgoogleWebClientId + Backend GOOGLE_CLIENT_IDiOSbundle ID = com.vertushka.app (из app.json)googleIosClientId + reversed → iosUrlSchemeAndroidpackage = com.vertushka.app, SHA-1 fingerprint (см. ниже)ничего вписывать не надо — работает по package+SHA-1 Где взять SHA-1 для Android: cd "/Users/vladislavrumancev/Desktop/Cursor/Вертушка/Mobile" && eas credentials -p android Выбираешь production профиль → покажет SHA-1 fingerprint. Копируешь в Google Cloud Console. Перед созданием клиентов: Google требует настроить OAuth consent screen (тип External, заполнить app name = "Вертушка", support email, privacy policy URL = https://vinyl-vertushka.ru/privacy). Куда вписывать Mobile/app.json — три места: "plugins": [ ... [ "@react-native-google-signin/google-signin", { "iosUrlScheme": "com.googleusercontent.apps.123456789-abcdef..." // ← reversed iOS Client ID. Если iOS Client ID = // 123456789-abcdef.apps.googleusercontent.com, // то reversed = com.googleusercontent.apps.123456789-abcdef } ], ... ], "extra": { ... "googleWebClientId": "123456789-xxxxxxx.apps.googleusercontent.com", "googleIosClientId": "123456789-yyyyyyy.apps.googleusercontent.com", ... } Backend .env на проде: ssh deploy@85.198.85.12 'nano ~/vertushka/Backend/.env' Добавить/обновить: GOOGLE_CLIENT_ID=123456789-xxxxxxx.apps.googleusercontent.com Важно: значение должно совпадать с googleWebClientId (Web Client ID — он же audience в id_token, бэк его проверяет). После правки .env — рестартни бэк: ssh deploy@85.198.85.12 'cd ~/vertushka && docker compose -f Backend/docker-compose.prod.yml restart backend' 2) Amplitude API Key Где взять: amplitude.com → создать аккаунт → Settings (шестерёнка слева внизу) → Projects → + Create Project → name = "Вертушка" → откроется проект → General → скопировать API Key (32-символьная строка). Куда вписать: Mobile/app.json → extra.amplitudeApiKey: "extra": { ... "amplitudeApiKey": "abc123def456...", ... } Для бэкенда Amplitude не нужен — события трекает только Mobile. 3) После всех правок — пересобрать Mobile Google native sign-in и Amplitude — это нативные модули, Expo Go их не поддерживает. Нужен EAS Build: cd "/Users/vladislavrumancev/Desktop/Cursor/Вертушка/Mobile" eas build --profile preview --platform all Потом установить .ipa/.apk на устройство и проверить: Логин через Apple на iOS Логин через Google на iOS и Android В Amplitude дашборде → User Look-Up → должны прилетать события login, register, scan_barcode и т.д.
- Сделать экран для юзера через @
- Найти базу русских пластинок и загрузить на серверК примеру, что не могу найти: Бульвар Депо Неееет, ты что
- Сделать Notification Engine
- Перенести на EAS для дистанционки
- Перепроверить коэффицент умножения стоимости пластинок на корректность
- Добавить анимацию с маскотом в загрузку#дизайн
- Добавить аватарки в уведомления для профиля🖼
- Подключить Амплитуду
- Подключить Tesflight
- Настроить ранжирование витрины Маркета в публичном профиле как в ПоискеЧтобы пластинки менялись исходя из того, что сейчас в наличии
- Сканирование обложек по визуалуПодключил API Open AI, чтобы вытаскивать имиджи. Пока стоит на low на некоторых вариантах проблемно пока работает, где нет текста
- Увеличить скорость загрузки артистов
- Сделать нормальную шапку в Ачивках
- Обновить сниппет в пулбичном профиле
- Выделять цветные пластинкиДиалог в Claude Code Display vinyl record colors from Discogs API Ограничения: Покрытие неполное — только если кто-то руками заполнил в Discogs (у редких/коллекционных изданий лучше, у обычного чёрного — ничего) Нет стандартного enum — цвета это вольный текст, поэтому нужно будет парсить/нормализовать Как можно реализовать: Извлечь formats[0].text в ответ релиза как поле vinyl_color_text Написать простой парсер/словарь: из descriptions и text вытащить нормализованный цвет ("red", "blue", "clear" и т.д.)
- Пофиксить восстановление удаленного акка
- Добавить фильтр внутри версий мастер релизаТакой же как и в поиске 🖼
- Добавить интеграцию с Dr. Head
- Феномен Joji: почему обложка пластинки теряется и подставляется другая, не красная
- Обновить обложки по скану : отображаются только первые обложки
- Добавить иконку флажка на report личных записей + проверить удаление🖼
- Пофиксить свайп страниц, чтобы не только с краю но и с центра двигалась
- Выпустить приложение в AppStore
- Добавить кнопку «импорт из дискогс» как для коллекции, так и для вишлиста раздела
- Мелкие фиксы
- Подключить аналитику1. Прописать DNS В панели регистратора домена vinyl-vertushka.ru добавить A-запись: metabase.vinyl-vertushka.ru → 85.198.85.12 Подождать 5–15 минут пока пропагируется (можно проверить: dig metabase.vinyl-vertushka.ru — должен вернуть твой IP). 2. Закоммитить и задеплоить cd /Users/vladislavrumancev/Desktop/Cursor/Вертушка git add Backend/ git commit -m "feat(analytics): nginx-конфиг для metabase.vinyl-vertushka.ru" git push ssh deploy@85.198.85.12 'cd ~/vertushka && bash Вертушка/Backend/scripts/deploy.sh' После деплоя поднимется Metabase, но nginx упадёт при reload — потому что он попытается прочитать SSL-сертификат, которого ещё нет. Это нормально, чиним в шаге 3. 3. Получить SSL-сертификат через certbot На сервере: ssh deploy@85.198.85.12 cd ~/vertushka/Вертушка/Backend docker compose -f docker-compose.prod.yml run --rm certbot \ certonly --webroot -w /var/www/certbot \ -d metabase.vinyl-vertushka.ru \ --email vladrum0310@gmail.com --agree-tos --no-eff-email Потом перезапустить nginx, чтобы он подхватил сертификат: docker compose -f docker-compose.prod.yml restart nginx 4. Прописать SITE_URL для Metabase На сервере в ~/vertushka/Вертушка/Backend/.env.prod добавить строку: METABASE_SITE_URL=https://metabase.vinyl-vertushka.ru И перезапустить Metabase, чтобы он подхватил: docker compose -f docker-compose.prod.yml up -d metabase Без этого Metabase будет генерировать ссылки в письмах с localhost:3000 — для UI работы это не критично. 5. Создать read-only пользователя БД (если ещё не сделал) METABASE_RO_PASSWORD='придумай-длинный-пароль' bash ~/vertushka/Вертушка/Backend/scripts/setup_metabase_role.sh 6. Открыть Metabase в браузере https://metabase.vinyl-vertushka.ru При первом входе: Создаёшь админ-аккаунт (свой email + пароль) Add database → PostgreSQL:Host: db Port: 5432 Database name: vertushka Username: metabase_ro Password: тот, что задал в шаге 5 Готово — Metabase сам отсканирует все таблицы и view'хи (v_user_overview, v_gift_funnel и т.д.).
- Прокачать личный профиль
- Оставить плашку «забронировано» у юзера кому даришь🖼Сейчас эта плашка не прорастает у юзера, надо сделать
- Пофиксить ошибку входа через Apple и Discogs
- Добавить механизмы для отправки жалоб на UGC контент (правила Эппл)UGC_MODERATION_M2.md
- Перепроверить дабл чек добавления пластинки дубля в коллекциюСейчас через штрихкод добавляется пластинка такая же что и в коллекции, хотя она там уже есть и должен быть поп-ап с дабл чеком
- Сделать ачивки
- В маркет: если пластинка с ценой, показывать по кнопке опции с ценамиСейчас если у нас кнопка "в маркет" имеет функцию перехода в магазин, было бы круто показывать опции на цены в магазинах, если они есть
- Добавить приложение в App Store ЕС
- Унифицировать дизайн
- Экспортить свои данные из аккаунта
- Протестить на импорт загрузки Discogs большую коллекцию
- Дизайн маскота
- Шеринг своей коллекции со стоимостью
- Дотюнить онбордингСейчас иконки в разной стилистике Нет нативного онбординга по интерфейсу, только общие сведения что делать
- Отражать цены на тех пластинках где их нетПорой встречаются релизы, к которым не подтягивается цена, хорошо бы это решить Есть еще такие релизы как Антоха МС - Родня, они кастомные и только внутри Коробки Винила, цена у них есть исходя из инфы магазина, здесь её бы подтянуть
- Добить раздел регистрации
- Сделать фильтры по жанрам и не только в МаркетеСейчас есть общий поиск, но было бы круто по жанрам и другим способам фильтровать музыку из всех маркетплейсов
- Сделать и прочекать публичную страницу как она работает
- Дотюнить раздел с коллекциями
- Добавить сущность «папка» в Коллекции
- Придумать логотип#дизайн 🖼
- Сделать красивый блок по архетипам в рамках профиля ачивок
- Добавить тг алерт и чекнуть glitchtip
- Перенести из локалки на сервер
- Сделать Радар вишлистаСамая недооценённая позиция старого Backlog. Retention-машина + affiliate-мостик. Два слоя: Активный — кнопка «Радар» в вишлисте. Экран по каждой позиции: спарклайн динамики цены, текущие офферы РФ-магазинов (цена, магазин, наличие), медиана Discogs через pricing.py, события «появилось/пропало/подешевело». Пассивный — пуши. «Пластинка из вишлиста появилась в Коробке Винила за 2400₽», «подешевела на 20%». Инфраструктура: парсеры с stock-refresh 6ч + notifications v2 (dedup, quiet hours) — всё готово. Новое в данных: история цен листингов — таблица listing_price_history (listing_id, price_rub, is_available, seen_at), запись при каждом refresh с дельта-фильтром. Эта же таблица питает C3. Никто в РФ этого не делает; Discogs — тем более. Метрика: CTR пуша радара; клики → PurchaseClick (M7).
- Добавить возможность добавлять пластинку вне Discogs
- Добавить экран с повторением версии релиза в коллекцииЕсли ты добавляешь одинаковый релиз в коллекцию, появляется поп-ап с инфой, что такая версия релиза у тебя добавлена, ты точно хочешь добавить вторую
- Добавить пуш об оценке приложения
- Уменьшить количество поп-апов и их дизайн
- Подготовить обложки приложения в стор
- Добавить иконку в уведомлениях на level up🖼
- Дабл чекнуть нотификации перед релизом в прод
- Добить уведомления для Радара и профиля
- Добавить notification лентуЧтобы видеть все адпейты что происходит внутри Вертушки новая подписка бронь твоей пластинки из вишлиста выход новой пластинки и тд
- Подгрузить данные с других магазинов для поиска внутри приложения
- Добавить пункт ? для раздела оценки стоимостиРасписать четко как строится ценообразование, чтобы каждый юзер мог узнать
- Отправить на ревью в стор приложение
- Сделать уведомления раздел с подписчиками
- Подключить Discogs API APPЭто развяжет нам руки на то, чтобы у каждого юзера были свои токены
- Пофиксить баг с цветными пластинками в Маркете🖼
- Подчистить меню и убрать лишние разделы🖼
- Коррекция дизайна интерфейса
- Фиксы в Маркете
- Добавить донаты для Вертушки на публичные страницы
- Сделать Discogs Data DumpsСейчас наш matcher для создания новой records (когда юзер кликает на пластинку, или когда парсер магазина приносит новый листинг с barcode которого ещё нет в нашей БД) дёргает Discogs API через _try_discogs_fetch / _try_discogs_fetch_by_text. Это создаёт два бутылочных горлышка: Rate limit Discogs API: 60 req/min на токен. Жёсткий лимит, заплатить за повышение нельзя — Discogs не продаёт premium tier. Latency: ~300-500 мс на запрос. При активном backfill 10к листингов один matcher batch занимает часы. В стационаре после первоначального импорта (когда у нас в магазинах ~100к листингов, и большинство уже сматчены) проблема снижается. Но на каждом новом магазине или при перепарсинге у нас всплеск Discogs-запросов. Решение: Discogs официально публикует полные дампы базы данных на S3. Если их распарсить и держать local mirror таблицы records — matcher работает полностью локально, без сети, без лимитов. На каждое обновление магазина (10к-100к листингов) — мгновенный матчинг через INDEX lookup по barcode. Подробнее есть инфа в MD файле DISCOGS_DATA_DUMPS.md
- Добавить возможность для ручного релиза добавлять фотки из фотоальбома
- Маркет: добавить фильтры отдельно в каждый магазин + отображение расширитьСейчас когда по флиьтрам прыгаешь, то показывает определенное количество пластинок, дальше не скроллится - пофиксить
- Создать и добавить почту, которая будет рассылать письма-отбивки при бронировании для публичного профиляЧтобы письма реально уходили, добавь в .env.prod на сервере: SMTP_USER=your@yandex.ru SMTP_PASSWORD=<пароль приложения из настроек Яндекс ID> EMAIL_FROM=your@yandex.ru Название темы в Claude App Redesign public profile implementation
- Добавить предварительную стоимость пластинок
- Поправить иконки и сделать в единой стилистике
- Пофиксить косты по русским пластинкамЧто важно понимать про точность: для Кино реальная цена в магазинах РФ — 2500-3600 ₽ (Maschina Records 2019 reissue). Наша оценка для $15-медианы Discogs даёт 1755 ₽ — это ниже. Причина не в формуле, а в данных: Discogs медиана $15 — это в основном убитые оригиналы 1988 года от международных продавцов, а в РФ магазинах продают новенькие переиздания. Это разные товары под одним мастер-релизом, и формулой это не лечится — нужен фильтр по pressing variant или интеграция с РФ-магазинами.
- Поправить раздел NotificationsВ первую очередь, чтобы не нажимать на нкопку «Отметить все прочитанным», а сделать паттерн как в Инстаграме: то что юзер видит на экране, оно уже считается прочитанным, это супер комфортно и корректно, а кнопку вообще убрать тогда в таком случае. Если там много нотификаций и они идут ниже его отображаемой зоны экрана, то те уведомления остаются не прочитанными. Также сейчас есть такая тема: у меня приходят одни и те же push и насчет одних и тех же обложек, с периодичностью раза в два дня. Это надо пересмотреть. Смотрите, это немного странно выглядит в том плане, что просто приходят одни и те же отбивки, и они информативные, но они, как будто бы, их слишком много. Поэтому здесь это надо как-то пересмотреть. А также очень важно уведомления группировать со временем, потому что на данный момент это не совсем корректно выглядит. А также то, чего у нас сейчас нет, это то, что при нажатии на какой-то push открывалось именно то, что нам нужно. То есть у нас открывается пластинка. Это круто, когда она снова в продаже и цену мы видим. Если мы их будем группировать, посмотрите на все пластинки, что у вас доступны сейчас по ценам, мы жмем, и наверное нужно показать экран со всеми текущими пластинками, которые находятся в продаже, но может быть, я не прав. Тут нужно подумать. С точки зрения уведомление про ачивки: когда я на них нажимаю, я проваливаюсь просто в раздел с ачивками. Нужно, чтобы открывалась та самая ачивка, которую ты получил. Это тоже важно учесть. И давай еще подумаем про другие сценарии, к которым я мог не учесть. А также кнопка «удалить» работает странно, не плавно, не красиво и более того при свайпе все равно открываетсчя раздел пластинки, даже если ты его удаляешь. Нужно сделать скругленным свайп удаления, чтобы все было красиво и аккуратно
- Улучшить поиск- Фильтры (формат, год, страна) - Группировка по master release - Нормальный UI (не как у Discogs)
- Ачивки шеринг: при сохранении шерить процент редкости
- Бронь подарков: дабл чекнуть что все работает
- Отправить рассылку всем кто ждёт приложение🖼
- Фиксы по приле Build no1
- Маркет: подсветить раздел сильнее
- Запустить ачивку топ 100ssh deploy@85.198.85.12 'docker exec vertushka_scheduler python -m app.scripts.grant_founding_hundred' уйдут пуши, в гриде появится полка «Истоки» с маскотом-соткой, у пина будет улика и share-карточка для Stories. Слоты 4–100 дальше заполняются сами — первой пластинкой каждого нового юзера после отсечки.
- Добавить haptic на сплеш анимацию в начале
- Подсвечивать пасхалки у других подписчиковСейчас пишет количество, однако не показываются
- Сделать нативным свайп в ручном релизе
- Скачать обложки из Internet Archivehttps://archive.org/ Сверился. Ответ: по-настоящему легальная база для массового обогащения ровно одна — Cover Art Archive, и она специально для этого создана. Остальное — API «по требованию» с запретом на массовое хранение. Разбор: Главный источник: Cover Art Archive (CAA)
- Собрать свой линктри
- Улучшить поискСейчас он находится строго по названию артиста, а надо сделать поиск умным, чтобы он понимал и работал по следующему принципу: Если сделана ошибка в слове, то выдается по поиску самая ближайшая версия по смыслу Если по запросу подходит несколько артистов, то выдавать несколько вариантов
- Вертушка на сервере: фиксы
- Показывать новинки в приложении при поискеЧат с инфой как это работает Redesign public profile implementation
- Публичная коллекция и вишлистПубличный профиль - Уникальная ссылка app.vertushka.ru/@username - Красивая веб-страница с коллекцией - Wishlist с кнопкой "Забронировать"
- Маркет: если выбрал цветной, то сразу фильтр по форматам винил
- Навесить метрики на переходы в магазины
- Почистить поиск и убрать всех из выдачи у кого внутри нет релизов
- Забронировать подарок (внешняя)- Анонимное бронирование (без авторизации) - Email уведомление владельцу "Кто-то забронировал" - Работает по принципу
- Подтюнить дизайн экрана юзера @
- Маркет: прорастить фильтры по жанрам глубже
- Прочекать все шаги по выгрузке в стор
- Поправить логику ачивки «распахнул»работала при активации, сейчас у всех включены профили Как вариант, сделать так, чтобы при первом переходе на публичную ссылку он активировался, подумать
- Посмотреть на нотификейшн центр, чтобы изучить все текущие триггеры
- Импорт вишлиста из Discogs
- Добавить ссылку на публичный профиль на экране «мне дарят»🖼
- Ачивки: сделать просмотр майлстоунов в формате каруселиЭто связано с тем, чтобы не скроллить долго вниз
- Выделять лимитки в поискеХочется добавить на них какую-то плашку привлечения внимания, чтобы переливался цвет и юзер мог сразу увидеть, что это какой о hidden gem уникальный
- Пофиксить дизайн в сканировании🖼
- Попап из кнопки «в маркет»Если ты прыгаешь из версии релиза и данной плачти
Browse all community boards · Create your own board on Timestripe