📈 Прогресс¶
Спринты 0-6 · Backend 97% · Frontend 95%
Обновлено: 2026-02-19
97%Backend
95%Frontend
98%Документация
Sprint Timeline¶
gantt
title Спринты Red Petroleum EV
dateFormat YYYY-MM-DD
axisFormat %d %b
section Sprint 0
Подготовка и анализ :done, 2026-02-07, 5d
section Sprint 1-2
Auth + Balance + Charging :done, 2026-02-12, 4d
section Sprint 3-4
Guest + Partner + Admin :done, 2026-02-16, 5d
section Sprint 5
Тесты + Интеграция :done, 2026-02-19, 3d
section Sprint 6
Polish + Deploy :active, 2026-02-22, 7d
Sprint 0 — Подготовка ✅¶
| Задача | Статус | Ответственный | Дата |
|---|---|---|---|
| Изучить ТЗ Red Petroleum | ✅ Done | Ruslan | 2026-02-10 |
| Gap-анализ существующего кода | ✅ Done | Ruslan | 2026-02-10 |
| Создать STATE.md (source of truth) | ✅ Done | Ruslan | 2026-02-10 |
| Создать SCREENS.md для дизайнера | ✅ Done | Ruslan | 2026-02-10 |
| Создать AI-координатора (/rp) | ✅ Done | Ruslan | 2026-02-10 |
| Создать ONBOARDING.md | ✅ Done | Ruslan | 2026-02-10 |
| Настроить GitHub репозиторий | ✅ Done | Ruslan | 2026-02-12 |
| Онбординг команды | ✅ Done | Ruslan | 2026-02-13 |
| Полный аудит проекта | ✅ Done | Ruslan | 2026-02-19 |
Sprints 1-4 — Core Development ✅¶
| Модуль | Backend | Frontend | Комментарий |
|---|---|---|---|
| Auth (SMS OTP) | ✅ | ✅ | Nikita SMS интегрирован |
| Balance (Namba One) | ✅ | ✅ | HMAC-SHA512, webhooks |
| Charging (OCPP) | ✅ | ✅ | Start/stop, realtime WS |
| Guest Charging | ✅ | ✅ | QR → Web → Pay → Charge |
| Stations | ✅ | ✅ | Карта 2GIS, фильтры |
| History | ✅ | ✅ | Сессии + чеки |
| Favorites | ✅ | ✅ | — |
| Notifications | ✅ | ✅ | VAPID Push |
| Partner | ✅ | 🟡 80% | Кабинет в разработке |
| Admin | ✅ (22 endpoints) | 🟡 70% | Dashboard в разработке |
Sprint 5 — Testing ✅¶
| Задача | Результат |
|---|---|
| 81 unit тест | ✅ 81/81 pass, 0 fail |
| E2E OCPP тест | ✅ 12/12 steps pass |
| Cookie domain bug fix | ✅ Fixed (cf00f8f, 9b99d5d) |
| VAPID Push Notifications | ✅ Ключи + таблица + endpoint |
| RBAC audit (22 admin endpoints) | ✅ Все защищены |
| Namba One real API integration | ✅ HMAC + payment + refund |
| Deprecation warnings fix | ✅ 0 warnings |
Sprint 6 — In Progress 🟡¶
| Задача | Статус | Ответственный |
|---|---|---|
| Corporate module | 🔴 Not started | Эрмек |
| Tariffs dynamic pricing | 🟡 Backend partial | Эрмек |
| Admin Dashboard UI | 🟡 In progress | Ruslan |
| Partner Cabinet UI | 🟡 In progress | Ruslan |
| Load testing (locust) | 🔴 Not started | — |
| Production deploy prep | 🟡 Server brief ready | Ruslan |
Ключевые достижения¶
| Дата | Достижение |
|---|---|
| 2026-02-10 | Начало проекта, анализ ТЗ |
| 2026-02-12 | GitHub репозиторий, онбординг |
| 2026-02-15 | Namba One real API (HMAC-SHA512) + 22 admin RBAC |
| 2026-02-19 | 81 тест pass, 0 fail, 0 warnings |
| 2026-02-19 | E2E OCPP 12/12 pass |
| 2026-02-21 | Cookie domain fix + VAPID Push + PWA manifest |
Фаза 2 — После MVP (с 2 марта 2026)¶
MVP сдаётся 2 марта → Транш 1 ($22,500). Фаза 2 → Транш 2 ($22,500)
Что сделано к MVP vs что остаётся¶
| Модуль | Backend API | Frontend UI | Статус к MVP |
|---|---|---|---|
| Auth (SMS OTP) | ✅ Готов | ✅ Готов | Сдан |
| Balance + Namba One | ✅ Готов | ✅ Готов | Сдан |
| Charging (OCPP) | ✅ Готов | ✅ Готов | Сдан |
| Guest Charging | ✅ Готов | ✅ Готов | Сдан |
| Stations + 2GIS | ✅ Готов | ✅ Готов | Сдан |
| Booking | ✅ Готов | 🔴 Нет UI | Фаза 2 |
| Corporate | ✅ Готов | 🔴 Нет UI | Фаза 2 |
| Tariffs (dynamic) | ✅ API + сервис | 🔴 Нет визуального редактора | Фаза 2 |
| Admin Dashboard | 🟡 Базовые CRUD (~22 endpoints) | 🔴 Полностью не начат | Фаза 2 |
| Partner Cabinet | 🔴 API не написан | 🔴 Нет UI | Фаза 2 |
| OCPP Logs | 🟡 Логирование есть (баг W1) | 🔴 Нет Admin UI | Фаза 2 |
| Sandbox | 🟡 Симулятор работает | 🔴 Нет Admin UI | Фаза 2 |
| Capacitor (iOS/Android) | — | 🔴 Не собран | Фаза 2 |
| Production deploy | — | — | Фаза 2 |
План Фазы 2¶
gantt
title Фаза 2 — После MVP (6-8 недель)
dateFormat YYYY-MM-DD
axisFormat %d %b
section Backend (Эрмек)
Partner API (/partner/*) :b1, 2026-03-02, 5d
Дописать Admin API (30+ endpoints) :b2, after b1, 7d
OCPP Logs fix (W1-W3) :b3, after b1, 3d
Push Notifications (Firebase) :b4, after b2, 5d
Sandbox API доработка :b5, after b2, 3d
section Frontend (Ruslan)
Admin Dashboard — Layout + Navigation :f1, 2026-03-02, 5d
Admin — Stations + Map :f2, after f1, 5d
Admin — Transactions + Billing :f3, after f2, 5d
Admin — Partners + Clients :f4, after f3, 5d
Admin — Logs + Statistics :f5, after f4, 5d
Partner Cabinet в PWA :f6, after f4, 5d
Booking + Corporate UI :f7, after f5, 5d
Tariffs визуальный редактор :f8, after f5, 3d
section Релиз
Capacitor (Android + iOS) :c1, 2026-04-01, 10d
Production Deploy + DNS + SSL :c2, 2026-04-07, 5d
Тест с реальными станциями :c3, after c2, 5d
UAT + исправления :c4, after c3, 5d
Финальная сдача :milestone, 2026-04-25, 0d
Объём работ и оценка сроков¶
Backend — Эрмек (2-3 недели)¶
| Задача | Что конкретно | Оценка |
|---|---|---|
| Partner API | GET/partner/dashboard, stations, sessions, revenue — 4 endpoint группы с нуля |
5 дней |
| Admin API доработка | ~30 endpoints которых нет: корп. клиенты, статистика, sandbox управление, экспорт CSV/PDF | 7 дней |
| OCPP Logs fix | W1: SQL param syntax, W2: locations.status column, W3: bookings.expires_at | 2-3 дня |
| Push Notifications | Firebase FCM + APNs через pywebpush, таблица subscriptions | 5 дней |
| Sandbox API | Endpoints для UI: create/delete виртуальных станций, запуск сценариев | 3 дня |
Frontend — Ruslan (4-5 недель, это основной объём)¶
| Задача | Что конкретно | Оценка |
|---|---|---|
| Admin Dashboard | Отдельное React-приложение. Layout, sidebar, роутинг, авторизация. Это 60% всей Фазы 2 | 3-4 недели |
| ↳ Mission Control | KPI карточки, карта станций, activity feed (WebSocket) | 5 дней |
| ↳ Stations + Locations | CRUD, детали станции, OCPP команды (Reset, RemoteStart/Stop) | 5 дней |
| ↳ Transactions | Список с фильтрами, детали сессии, экспорт CSV/PDF | 3 дня |
| ↳ Partners + Clients | Управление, % дохода, блокировка, корректировка баланса | 3 дня |
| ↳ Logs + Stats | Real-time OCPP логи, графики (Recharts), heatmap | 4 дня |
| ↳ Tariffs | Визуальный редактор периодов, график 24ч | 3 дня |
| ↳ Sandbox | Создание/управление виртуальными станциями | 2 дня |
| Partner Cabinet (PWA) | Секция в мобильном приложении: dashboard, станции, доход | 5 дней |
| Booking + Corporate UI | Экраны бронирования и корпоративного кабинета в PWA | 5 дней |
Релиз (2 недели)¶
| Задача | Что конкретно | Оценка |
|---|---|---|
| Capacitor | Сборка PWA → Android APK + iOS IPA, Push Notifications native | 10 дней |
| Production deploy | Серверы RP, nginx, Docker, SSL (Let's Encrypt), DNS записи | 3-5 дней |
| Тест с реальными станциями | 5 пилотных станций в Бишкеке, E2E проверка | 5 дней |
| UAT | User Acceptance Testing с командой RP | 3-5 дней |
Итого Фаза 2¶
| Параметр | Значение |
|---|---|
| Общий срок | 6-8 недель (2 марта → 20-25 апреля) |
| Критический путь | Admin Dashboard Frontend (3-4 недели) |
| Команда | Ruslan (frontend) + Эрмек (backend) параллельно |
| Бэкенд готов к | ~15-20 марта |
| Фронтенд готов к | ~5-10 апреля |
| Production deploy | ~15-20 апреля |
| Финальная сдача | ~20-25 апреля 2026 |
Риски Фазы 2
- Namba One production креды — без них MVP нельзя считать сданным
- Admin Dashboard — самый большой кусок, Ruslan один на фронте
- Реальные станции — могут быть сюрпризы при первом подключении физического оборудования
- App Store review — iOS ревью может занять 1-2 недели, подавать заранее
Блокеры¶
Блокер: Namba One production credentials
Нужны production ключи от Namba One (merchant_guid, secret). Сейчас работает на sandbox.
Владелец: Red Petroleum → Namba One
Блокер: SMS провайдер production
Нужен контракт с Nikita SMS для production. Сейчас тестовый аккаунт.
Владелец: Red Petroleum
Блокер: Charge24 API
Нет документации по Charge24 API для роуминга между сетями.
Владелец: Red Petroleum → Charge24
Метрики кода¶
| Метрика | Значение |
|---|---|
| Backend (Python) | ~18,300 строк |
| API эндпоинтов | 55+ |
| Модулей API | 10 |
| Сервисов | 11 |
| SQL миграций | 2 |
| Unit тестов | 81 |
| OCPP хендлеров | 30 (21 v1.6 + 9 v2.0.1) |