Передача контекста (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 — дропзоны.