OneWallet — Timeline разработки и запуска
|
|
| Версия |
1.0 |
| Дата |
2026-04-16 |
| Горизонт |
3 месяца (Apr 16 — Jul 16, 2026) |
| Команда |
2 fullstack-разработчика |
| Целевая дата MVP |
~16 мая 2026 |
| Статус |
🟡 В работе |
Оглавление
- Executive Summary
- Текущий статус — что готово
- Месяц 1 — MVP Launch
- Месяц 2 — Стабилизация и Agent Portal
- Месяц 3 — Расширение функционала
- Риски и зависимости
- Регуляторные требования
- Распределение команды
1. Executive Summary
OneWallet — платёжный кошелёк (Flutter + Serverpod + PostgreSQL). Ядро системы (Auth, KYC, Admin Panel, blnkfinance) разработано. Главная задача месяца — построить платёжный слой, поднять prod-инфраструктуру и опубликовать приложение в сторах.
| Период |
Цель |
Итог |
| Месяц 1 (Apr 16 — May 16) |
MVP в прод: платежи, инфраструктура, App Store |
🎯 Запуск |
| Месяц 2 (May 17 — Jun 16) |
Agent Portal, пуши, стабилизация |
📈 Рост |
| Месяц 3 (Jun 17 — Jul 16) |
OAuth, MiniApps, compliance |
🔒 Зрелость |
2. Текущий статус — что готово
Актуально на 16 апреля 2026
✅ Завершено
| Компонент |
Готовность |
Примечания |
| Serverpod: Auth module |
✅ 100% |
Email+OTP регистрация, JWT, RBAC, refresh tokens |
| Serverpod: KYC module |
✅ 100% |
10-шаговый флоу, OCR via Gemini API, статусы |
| KYC микросервис |
✅ 100% |
CompreFace, BullMQ, Node.js worker |
| Flutter: Auth screens |
✅ 100% |
Регистрация, вход, OTP, пароль, рефереральный код |
| Flutter: KYC flow |
✅ 100% |
Загрузка документов, биометрия лица |
| Flutter: Home screen |
✅ 100% |
Баланс-карта, сетка быстрых действий |
| Flutter: PIN / Биометрия |
✅ 100% |
6-значный PIN (НацБанк), биометрия, auto-lock 5 мин |
| Admin Panel |
✅ 100% |
Users, KYC review, Transactions, Agents — SvelteKit |
| blnkfinance UI |
✅ 100% |
Ledger, счета, транзакции подключены |
| S3 хранилище |
✅ 100% |
Загрузка KYC-документов, presigned URLs |
🟡 Требует доработки (незначительно)
| Компонент |
Статус |
Задачи |
| Admin Panel: KYC E2E |
🟡 95% |
Seed superadmin, проверить Approve → Finalize поток |
| S3 KYC Storage |
🟡 0% (backlog) |
Cron-очистка, lifecycle policy, userId в пути |
| Service Resilience |
🟡 40% |
CompreFace volumes persistence, BullMQ watchdog |
🔴 Не начато (строится в месяц 1)
| Компонент |
Приоритет |
| Payment Manager |
P0 — критично |
| IPPS PPXC Adapter |
P0 — критично |
| QP API Adapter |
P0 — критично |
| API Gateway (Nginx/Traefik) |
P0 — критично |
| CI/CD pipeline |
P0 — критично |
| Prod-инфраструктура |
P0 — критично |
| Flutter: Top Up / Pay / Transfer / History |
P0 — критично |
| Logging (Fluent Bit + Loki + Grafana) |
P1 |
| Agent Portal |
P1 |
3. Месяц 1 — MVP Launch (Apr 16 — May 16)
Цель: Рабочее приложение в Google Play + App Store, платежи работают на prod.
Неделя 1 (Apr 16–22) — Инфраструктура и DevOps
Dev 1: API Gateway + CI/CD
Dev 2: Docker Compose full stack + Prod setup
| # |
Задача |
Ответственный |
Статус |
| 1.1 |
Docker Compose — полный стек (все сервисы, сети, volumes) |
Dev 2 |
⬜ |
| 1.2 |
API Gateway (Nginx): TLS termination, маршрутизация, auth_request |
Dev 1 |
⬜ |
| 1.3 |
Rate limiting на API Gateway (IP + token) |
Dev 1 |
⬜ |
| 1.4 |
CI/CD pipeline: lint → test → build → deploy (GitHub Actions) |
Dev 1 |
⬜ |
| 1.5 |
Настройка prod-сервера: PostgreSQL, Redis, S3, env vars |
Dev 2 |
⬜ |
| 1.6 |
Fluent Bit + Loki + Grafana — базовый стек логирования |
Dev 2 |
⬜ |
| 1.7 |
Service resilience: CompreFace volume persistence |
Dev 2 |
⬜ |
| 1.8 |
BullMQ watchdog + retry endpoints для KYC microservice |
Dev 1 |
⬜ |
Критерий готовности: Все сервисы запускаются через docker compose up, CI/CD деплоит на prod-сервер.
Недели 2–3 (Apr 23 — May 6) — Платёжный слой + Flutter параллельно
Flutter-экраны разрабатываются параллельно с бэкендом. Dev 2 работает против mock-эндпоинтов на неделе 2, на неделе 3 подключается к реальному API.
Apr 23 ──────────────────────── May 6
Dev 1: [──── Payment Manager ────][──── Adapters + SIT ────]
Dev 2: [── Flutter screens (mock) ─][── подключение к API ──]
Неделя 2 (Apr 23–29)
Dev 1: Payment Manager (core)
Dev 2: Flutter платёжные экраны (на mock-данных)
| # |
Задача |
Ответственный |
Статус |
| 2.1 |
Payment Manager: маршрутизация, проверка лимитов, расчёт комиссий |
Dev 1 |
⬜ |
| 2.2 |
Payment Manager: жизненный цикл транзакции (INFLIGHT → APPLIED/REJECTED) |
Dev 1 |
⬜ |
| 2.3 |
Payment Manager: двухфазная активация кошелька (blnkfinance Phase 1+2) |
Dev 1 |
⬜ |
| 2.4 |
BullMQ: настройка очередей payment.outgoing, payment.topup, payment.result |
Dev 1 |
⬜ |
| 2.5 |
Admin Panel: Seed superadmin + E2E Approve → Finalize |
Dev 1 |
⬜ |
| 2.6 |
Flutter: Top Up экран — генерация QR, отображение, polling статуса (mock) |
Dev 2 |
⬜ |
| 2.7 |
Flutter: Pay экран — QR-сканер, TLV-парсинг Thai QR, подтверждение, результат (mock) |
Dev 2 |
⬜ |
| 2.8 |
Flutter: Transfer экран — поиск по One ID, подтверждение, результат (mock) |
Dev 2 |
⬜ |
| 2.9 |
Flutter: История транзакций — список, фильтры, детали (mock) |
Dev 2 |
⬜ |
Неделя 3 (Apr 30 — May 6)
Dev 1: Provider Adapters + SIT
Dev 2: Подключение Flutter к реальному API + Push
| # |
Задача |
Ответственный |
Статус |
| 3.1 |
IPPS PPXC Adapter: исходящие платежи (Thai QR / PromptPay) |
Dev 1 |
⬜ |
| 3.2 |
QP API Adapter: входящие пополнения (PromptPay QR) |
Dev 1 |
⬜ |
| 3.3 |
Webhook-обработчик для IPPS PPXC и QP API (callback приём) |
Dev 1 |
⬜ |
| 3.4 |
SIT-тестирование: полный цикл Top Up + Pay с реальными sandbox-данными |
Dev 1 |
⬜ |
| 3.5 |
Flutter: подключить Top Up / Pay / Transfer / History к реальному API |
Dev 2 |
⬜ |
| 3.6 |
Flutter: блокировка Pay/Top Up если статус не fully_verified |
Dev 2 |
⬜ |
| 3.7 |
Flutter: FCM push-уведомления — результат платежа, статус KYC |
Dev 2 |
⬜ |
| 3.8 |
Flutter: APNs интеграция для iOS |
Dev 2 |
⬜ |
| 3.9 |
S3 улучшения: userId в пути, lifecycle policy на kyc-data |
Dev 1 |
⬜ |
Критерий готовности: E2E — пользователь проходит полный цикл: регистрация → KYC → пополнение → платёж → перевод через SIT-среду провайдеров.
Неделя 4 (May 7–13) — QA, Staging, Store Submission
Dev 1 + Dev 2: совместная QA + деплой
| # |
Задача |
Ответственный |
Статус |
| 4.1 |
Deploy staging: полный стек на отдельном окружении |
Dev 2 |
⬜ |
| 4.2 |
E2E тесты всех потоков на staging (Happy path + ошибки) |
Оба |
⬜ |
| 4.3 |
Security: проверка auth_request, rate limiting, JWT expiry |
Dev 1 |
⬜ |
| 4.4 |
Flutter: финальная сборка release (Android AAB + iOS Archive) |
Dev 1 |
⬜ |
| 4.5 |
Google Play: загрузка в Internal Testing → Production track |
Dev 2 |
⬜ |
| 4.6 |
App Store Connect: загрузка, заполнение метаданных, submit на ревью |
Dev 2 |
⬜ |
| 4.7 |
Grafana: базовые алерты (error rate, service down, payment failures) |
Dev 1 |
⬜ |
| 4.8 |
DNS + SSL на prod-сервере |
Dev 2 |
⬜ |
⚠️ Apple App Store: review занимает 1–3 рабочих дня. Сабмит не позднее 9 мая.
Буфер / Launch (May 14–16) — Production Go-Live
| # |
Задача |
Ответственный |
Статус |
| 5.1 |
Production deploy: все сервисы |
Оба |
⬜ |
| 5.2 |
Smoke-тесты на prod |
Оба |
⬜ |
| 5.3 |
Мониторинг 24ч после запуска |
Оба |
⬜ |
| 5.4 |
Публикация приложения (Google Play + App Store) |
Dev 2 |
⬜ |
Сводка по Месяцу 1
Apr 16 ──────────────────────────────────────────────────────── May 16
│ │ │ │
Неделя 1 Недели 2–3 Неделя 4 Launch
Infra & DevOps ┌─ Payment ─┐ QA+Staging Prod
└─ Flutter ─┘ +Stores Go-Live
(параллельно)
4. Месяц 2 — Стабилизация и Agent Portal (May 17 — Jun 16)
Цель: Устойчивое prod-окружение, Agent Portal в работе, расширенный UX.
4.1. Стабилизация (May 17–23)
| Задача |
Приоритет |
| Анализ метрик после 1-й недели в проде |
P0 |
| Hotfix-цикл по инцидентам из логов |
P0 |
| Нагрузочное тестирование (stress test основных потоков) |
P1 |
| Terraform IaC — описать prod-инфраструктуру в коде |
P1 |
| Полная настройка алертов Grafana (все сервисы по спеке 13-logging.md) |
P1 |
4.2. Agent Portal — Backend (May 24 — Jun 1)
| Задача |
Описание |
| Agent module: Serverpod endpoints |
CRUD агентов, реферальные коды, баланс агента |
| Agent commission queue |
agent.commission в BullMQ, начисление через blnkfinance |
| Agent withdrawal flow |
Запрос вывода → очередь → выплата |
| Admin Panel: управление агентами |
Approve/suspend/terminate, просмотр клиентов агента |
4.3. Agent Portal — Frontend (Jun 2–11)
| Задача |
Описание |
| SvelteKit PWA: настройка проекта + auth (SSO через Serverpod) |
|
| Дашборд агента: баланс комиссий, новые клиенты |
|
| Список клиентов с фильтрами |
|
| История транзакций и начислений |
|
| Форма запроса вывода средств |
|
4.4. Flutter — Enhanced UX (Jun 2–11)
| Задача |
Приоритет |
| Мультиязычность: EN + TH (l10n) |
P1 |
| Экран Профиля: персональные данные, смена пароля |
P1 |
| Push-уведомления: все события (KYC, переводы, пополнения) |
P1 |
| Google/Apple OAuth (Sign in with) |
P2 |
4.5. Финализация Месяца 2 (Jun 12–16)
| Задача |
| E2E тестирование Agent Portal |
| Deploy Agent Portal в prod |
| Обновление Flutter-приложения в сторах (v1.1) |
| Обновление документации (docs/) |
5. Месяц 3 — Расширение функционала (Jun 17 — Jul 16)
Цель: Compliance-ready система, расширенный функционал, MiniApps.
5.1. Compliance & Security (Jun 17–27)
| Задача |
Описание |
| Security audit |
Penetration test или внутренний аудит по OWASP Top 10 |
| Encryption at-rest |
Верификация dm-crypt / LUKS на prod PostgreSQL |
| S3 SSE-KMS |
Переход на KMS-шифрование для KYC-документов |
| Регуляторная документация |
← заполняется операционной командой (см. раздел 7) |
5.2. MiniApps (Jun 17 — Jul 3)
| Задача |
Описание |
| Flutter WebView контейнер |
Открытие партнёрских мини-приложений |
| Auth passthrough |
JWT передача в WebView для SSO |
| Admin Panel: управление MiniApps |
Добавить/убрать/редактировать баннеры |
5.3. Deep Linking & Advanced UX (Jul 4–10)
| Задача |
| Universal Links (iOS) + App Links (Android) |
| Deep link в оплату по QR из сторонних приложений |
| Offline-режим: показ cached данных при отсутствии сети |
5.4. Финализация Месяца 3 (Jul 11–16)
| Задача |
| Релиз Flutter v1.2 в сторах |
| Полный регрессионный тест |
| Обновление всей технической документации |
| Ретроспектива: backlog для следующего квартала |
6. Риски и зависимости
Высокие риски
| Риск |
Вероятность |
Влияние |
Митигация |
| App Store review задержка (Apple) |
Средняя |
Задержка запуска |
Submit не позднее 9 мая; подготовить TestFlight как план Б |
| Ошибки интеграции IPPS / QP в SIT |
Средняя |
Сдвиг платёжного слоя |
Начать тестирование SIT на неделе 2, не ждать неделю 3 |
| Недооценка объёма Payment Manager |
Средняя |
Срыв недели 2 |
При необходимости — перенести S3/logging на месяц 2 |
| Prod-инциденты после go-live |
Высокая |
Негативный UX |
Мониторинг 24/7 первые 72ч, rollback-процедура |
Внешние зависимости
| Зависимость |
Статус |
Кто решает |
| IPPS PPXC SIT credentials |
✅ Есть |
— |
| QP API sandbox credentials |
✅ Есть |
— |
| Prod-сервер / VPS |
✅ Есть |
Dev 2 настраивает |
| Apple Developer Program (App Store) |
Нужна проверка аккаунта |
Dev 2 |
| Google Play Console |
Нужна проверка аккаунта |
Dev 2 |
| FCM / APNs сертификаты |
Нужна настройка |
Dev 2 |
7. Регуляторные требования
⚠️ Этот раздел заполняется операционной командой.
| Требование |
Регулятор |
Срок |
Статус |
Ответственный |
| Лицензия платёжного оператора |
|
|
|
|
| KYC/AML политика |
|
|
|
|
| Требования к хранению данных |
|
|
|
|
| Pre-launch аудит / инспекция |
|
|
|
|
| Reporting requirements |
|
|
|
|
| PIN 6 цифр (НацБанк РК?) |
НацБанк |
✅ Реализовано |
✅ |
Dev 1 |
| Прочее |
|
|
|
|
8. Распределение команды
Месяц 1 — фокус
Dev 1: API Gateway → Payment Manager → Flutter Pay/TopUp → QA → Store build
Dev 2: Docker/Infra → Provider Adapters → Flutter Transfer/History → Stage deploy
Принцип работы
- Синхронизация каждое утро (15 мин): статус задач, блокеры
- Еженедельный PM-чекпоинт в пятницу: обновление этого документа
- Блокеры эскалируются в день обнаружения — не копятся
Changelog
| Дата |
Версия |
Изменение |
| 2026-04-16 |
1.0 |
Первая версия |