Перейти к содержанию

Передача контекста (2026-10-03)

Проект

DZ Hub — портал для нескольких дропзон (парашютных клубов). Автор — парашютист, делает его для своей дропзоны в Молдове.

  • Папка: ~/Documents/Projects/DZHub.
  • backend/ и frontend/ — отдельные git-репозитории. Корень и docs/ не под git.
  • Бэкенд:
  • FastAPI 0.142, SQLAlchemy 2.1 async + asyncpg, Alembic, Pydantic 2;
  • PostgreSQL 18 в Docker на порту 5433;
  • uv, ruff, mypy strict, pytest;
  • проверка: make check.
  • Документация:
  • backend/docs/GUIDE.md — подробный гид по бэкенду;
  • docs/PROJECT_GUIDE.md — гид по всему проекту;
  • docs/MVP.md — user stories MVP и раздел «На будущее».

Как работаем

  • По шагам. Claude показывает дизайн шага → пользователь ревьюит и одобряет → Claude реализует с тестами и make check → показывает результат → пользователь коммитит сам.
  • Обсуждаем по кусочку, без больших простыней.
  • Где живут правила: простая целостность — в БД (типы, NOT NULL, unique, FK, простые CHECK); бизнес-правила — в Python, чтобы были прозрачны.
  • Заявлено ≠ подтверждено: профиль хранит только то, что человек заявил о себе. Подтверждение будет позже — очно на каждой дропзоне, дропзона хранит снимок данных.
  • Соглашения:
  • JSON в camelCase;
  • 422 в формате FastAPI с loc;
  • PATCH частичный: не передано — поле не меняется, null — очищает;
  • чужой ресурс → 404.
  • Заголовки задач — на английском, описания — на русском.

Что сделано

Тикет «Skydiver profile and digital logbook (backend)» закрыт целиком. Последний коммит: 2e915ee Add experience summary, logbook stats and filters.

В нём: - профиль /me/profile; - допуски /me/ratings; - логбук /me/logbook с автонумерацией, фильтрами и статистикой /me/logbook/stats; - 108 тестов.

После этого коммита обновлены backend/docs/GUIDE.md и backend/README.md — изменения не закоммичены. Предложенное сообщение коммита: «Update backend guide for profile, ratings and logbook».

Последняя работа: сверка с USPA

Прочитаны оригинальные PDF SIM 2026 и IRM 2026 с uspa.org. Созданы:

  • docs/USPA.md — справка по правилам USPA: студенческая программа ISP, лицензии A–D, логбук, рейтинги и их продление, BSR, возврат после перерыва, размер купола, дисциплины.
  • docs/USPA_GAPS.md — 10 расхождений с нашими моделями и порядок исправления. Главное — licensed вместо классов лицензий A–D.
  • В docs/MVP.md добавлена ссылка в «На будущее».

Ни одно расхождение пока не исправлено, решения не приняты.

Следующий шаг: создать 2 карточки в Trello

Пользователь подключил Trello, но в старой сессии инструменты не появились — нужен перезапуск. Перед созданием спросить, на какую доску и в какую колонку.

Карточка 1 — Align jump levels and ratings with USPA

Пункты 1–4, 6, 7, 10 из USPA_GAPS.md.

Зачем. Сейчас licensed — один уровень на всех, а у USPA/FAI лицензии A–D. От класса зависят высота раскрытия, ночные прыжки, допуск к рейтингам и порог возврата после перерыва. Реальных данных пока нет — схему можно менять свободно.

Что сделать: - Уровень: вместо licensed — класс лицензии A / B / C / D. - Студенческие уровни без привязки к AFF: - aff_student → студент любого метода; - aff_solo → допущен к самостоятельным прыжкам (self-supervision, после категории E). - Тандем: tandem_master → два рейтинга, Tandem Trainer и Tandem Instructor. - Новый рейтинг: IAD Instructor. - Camera: у USPA это не рейтинг. Решить — оставить допуском DZ Hub или убрать. - Требования к рейтингам: Coach — B; IAD/SL/AFF Instructor — C; Tandem — D. Решить — запрещать (422) или только предупреждать. - Профиль: время свободного падения до DZ Hub и дата первого прыжка. Пороги: B — 30 мин, C — 60 мин, D — 3 ч, AFF-инструктор — 6 ч; тандем — 3 года в спорте. - По желанию: признак «нужен прыжок с инструктором» после перерыва — студент 30 дней, A 60, B 90, C/D 180.

Критерии готовности: - дизайн одобрен; - миграция применяется и откатывается; - эндпоинты работают; - тесты написаны, make check зелёный; - GUIDE.md и USPA_GAPS.md обновлены.

Карточка 2 — Add USPA-required fields to the logbook

Пункты 5, 6, 8, 9 из USPA_GAPS.md. Зависит от карточки 1.

Что сделать: - поле «расстояние приземления от цели» в метрах (нужно для B: 10 прыжков в 10 m, C: 25 в 2 m, D: 100 в 2 m); - снаряжение — решить, что хранить кроме купола; - флаги «ночной прыжок» и «прыжок на воду» — это условия, а не типы; - новый тип IAD; canopy разделить на CRW и свуп; - в статистике — счётчики приземлений в 10 m и 2 m и ночных прыжков; - подпись свидетеля не делаем сейчас: она ляжет на очную проверку на дропзоне.

Критерии готовности: те же, что у карточки 1.

Отложено (в MVP.md «На будущее»)

  • Очная верификация на дропзоне.
  • Связь типа прыжка и роли в логбуке.
  • Наземные и лётные роли: укладчик, риггер, пилот.
  • Фронтенд: страницы профиля и логбука.
  • Следующий большой блок MVP — дропзоны.