Универсальный бэкенд + все платформы / Ставка 4 500 ₽/час / Оркестрация через Claude Code
Мини-приложение внутри Telegram. Уже работает, нужна доработка по ТЗ
Мини-приложение внутри мессенджера Max. Похожая архитектура, нужна адаптация
Сайт с регистрацией по email. Доступен без мессенджеров
Приложение из Google Play с push-уведомлениями
Приложение из App Store для iPhone и iPad
Десктопные приложения (.dmg / .exe)
Сейчас приложение может работать только внутри Telegram. Вот все точки привязки и насколько сложно каждую отвязать:
| # | Задача | Описание | Часы |
|---|---|---|---|
| 0.1 | Новая система пользователей | UUID вместо Telegram ID. Таблица привязок к платформам | 4–6 |
| 0.2 | Миграция базы данных | Обновить все 14 таблиц на новый ключ | 3–4 |
| 0.3 | Модульная авторизация | TelegramAuth, MaxAuth, EmailAuth — единый интерфейс | 4–6 |
| 0.4 | Сервис уведомлений | Абстракция: Telegram-бот, Max-бот, push, email — один сервис | 3–4 |
| 0.5 | Аватарки через загрузку | Загрузка пользователем + fallback на платформенную | 2–3 |
| 0.6 | Версионирование API | Все эндпоинты под /api/v1/ | 1–2 |
| # | Задача | Часы |
|---|---|---|
| 1.1 | Удалить мат из кода | 0.2 |
| 1.2 | Объединить экраны покупки/продажи | 1.5–2 |
| 1.3 | Убрать пароль из кода | 0.5 |
| 1.4 | Исправить скрытые падения (12 мест) | 1–1.5 |
| 1.5 | Доделать заглушки | 1–2 |
| 1.6 | Включить сжатие интерфейса | 0.3 |
| 1.7 | Показ ошибок пользователю | 1–1.5 |
| 1.8 | Ограничить доступ к серверу | 0.5 |
| 1.9 | Срок жизни токенов | 1–1.5 |
6 задач: удаление не-акций, график стоимости, общая стоимость, масштаб графика, pie chart, ревизия short pie chart
7 задач: добавление по нику, принятие/отклонение, уведомление о доступе, профиль друга, лог действий, уведомления через бота, список + удаление
4 задачи: переработка логики на сервере, новый экран покупки/продажи, разделение Long/Short, интеграция
10 задач: таблица дивидендов, логика начисления, API, интерфейс, тесты сервера, тесты фронта, разбить длинные файлы, упростить код, мелочи, финальная проверка
| # | Задача | Описание | Часы |
|---|---|---|---|
| 6.1 | Platform Provider | Интерфейс init/getUser/getTheme/navigate. Реализации: Telegram, Max, Web | 3–4 |
| 6.2 | Универсальные компоненты | Своя библиотека на Tailwind: Button, Card, Input, Avatar и ещё ~16 компонентов | 8–12 |
| 6.3 | Замена навигации | Свой header с кнопками вместо Telegram mainButton/backButton | 2–3 |
| 6.4 | Абстракция темы | ThemeProvider — цвета из платформы или из настроек | 1–2 |
| 6.5 | Адаптация 17 страниц | Переписать все экраны на новые компоненты | 6–10 |
| 6.6 | Тестирование Telegram | Убедиться что текущая версия не сломалась | 2–3 |
| # | Задача | Описание | Часы |
|---|---|---|---|
| 7.1 | Max Platform Provider | Инициализация через Max Bridge, авторизация, тема | 3–4 |
| 7.2 | Авторизация Max на сервере | Проверка подписи Max, создание/привязка пользователя | 3–4 |
| 7.3 | Max Bot | Уведомления, /start, кнопка открытия приложения | 4–6 |
| 7.4 | Адаптация UI под Max | Размеры, шрифты, safe areas | 2–3 |
| 7.5 | Deep linking Max | Ссылки для открытия из Max | 0.5–1 |
| 7.6 | Тестирование в Max | Все функции на реальном устройстве | 3–4 |
| # | Задача | Описание | Часы |
|---|---|---|---|
| 8.1 | Web Platform Provider | Тема из настроек пользователя, обычная навигация | 2–3 |
| 8.2 | Страница входа | Регистрация/вход через email + пароль | 4–6 |
| 8.3 | Email авторизация на сервере | Хэширование, JWT, подтверждение email | 3–4 |
| 8.4 | Адаптивная вёрстка | От мобильного до десктопа | 3–4 |
| 8.5 | Профиль и настройки | Смена пароля, загрузка аватарки | 2–3 |
| 8.6 | Тестирование | Chrome, Safari, Firefox, мобильные | 2–3 |
| # | Задача | Описание | Часы |
|---|---|---|---|
| 9.1 | Обёртка в Capacitor | Веб → нативное приложение (один код — два приложения) | 4–6 |
| 9.2 | Push-уведомления | Firebase (Android) + APNs (iOS) | 4–6 |
| 9.3 | Нативные особенности | Splash, иконка, биометрия, жесты | 3–4 |
| 9.4 | Сборка Android | Google Play Console, подпись | 2–3 |
| 9.5 | Сборка iOS | App Store Connect, Xcode signing | 2–3 |
| 9.6 | Тестирование | 3+ Android + iPhone + iPad | 3–4 |
| # | Задача | Описание | Часы |
|---|---|---|---|
| 10.1 | Обёртка в Tauri | Веб → десктопное приложение | 3–4 |
| 10.2 | Нативные особенности | Меню, трей, горячие клавиши, автообновление | 2–3 |
| 10.3 | Сборка Windows | Installer + подпись | 1.5–2 |
| 10.4 | Сборка macOS | DMG + нотаризация Apple | 1.5–2 |
| 10.5 | Тестирование | Windows 10/11 + macOS | 2–3 |
Max Mini Apps похожи на Telegram Mini Apps по архитектуре (оба используют window.WebApp, initData, ботов). Поэтому миграция проще, чем кажется.
| # | Компонент | Telegram (сейчас) | Max (нужно) | Сложность |
|---|---|---|---|---|
| 1 | SDK фронтенда | @telegram-apps/sdk-react | Max Bridge (JS) | Средняя |
| 2 | UI-компоненты | @telegram-apps/telegram-ui | Max UI или свои | Высокая |
| 3 | Авторизация (фронт) | retrieveLaunchParams() | window.WebApp → initData | Средняя |
| 4 | Авторизация (сервер) | HMAC-SHA256 + bot token | Проверка подписи Max | Средняя |
| 5 | Навигация | mainButton / backButton | Аналоги из Max или свои | Средняя |
| 6 | Бот | eu.vendeli.tgbot | Max Bot API | Высокая |
| 7 | Аватарки | Telegram getUserProfilePhotos | Max API или загрузка | Средняя |
| 8 | Уведомления | Telegram-бот | Max-бот | Средняя |
| 9 | Deep linking | t.me/bot?startapp=... | Max deep links (512 символов) | Низкая |
| 10 | Тема/цвета | bindThemeParamsCssVars() | Max Bridge CSS | Низкая |
⚠ Быстрый вариант без универсального бэкенда. Если потом нужны другие платформы — придётся переделывать. Рекомендуется Вариант Б.