Coaching & Education
89 features · 12 subsystems
Player development, coach certification, training programs, and educational resources for all levels of the petanque ecosystem.
Coach Registry & Certification
F06.01- F06.01.01 Shipped
Coach registration with qualification level (BF1 Initiateur, BF2 Educateur, Entraineur)
✅ PL-F0601a - F06.01.02 Shipped
Coach profile (qualifications, specializations, experience)
✅ PL-F0601a - F06.01.03 Shipped
Certification tracking and renewal
✅ PL-F0601a - F06.01.04 Shipped
Coaching license linked to federation
✅ PL-F0601a - F06.01.05 Shipped
Coach directory (by region, level, specialization)
✅ PL-F0601b - F06.01.06 Shipped
Coach-to-player assignment tracking
✅ PL-F0601b - F06.01.07 Shipped
Coaching hours logging
✅ PL-F0601b
Training Programs
F06.02- F06.02.01 Shipped
Training program creation (goals, duration, sessions)
✅ PL-F0602a - F06.02.02 Shipped
Session planning (drills, exercises, objectives)
✅ PL-F0602a - F06.02.03 Shipped
Player development plans (individual)
✅ PL-F0602a - F06.02.04 Shipped
Skill assessment framework (pointing, shooting, strategy, mental game)
✅ PL-F0602a - F06.02.05 Shipped
Progress tracking per player
✅ PL-F0602b - F06.02.06 Shipped
Training attendance tracking
✅ PL-F0602b - F06.02.07 Shipped
Video analysis integration (upload, annotate, share)
✅ PL-F0602b - F06.02.08 Shipped
Drill library (community-contributed)
✅ PL-F0602b - F06.02.09 Shipped
Drill-bibliotek 2.0 — taxonomi (ability_band, skill_tag, terrain_tag, duration, players), differentiering via progressions, publish-knapp (is_shareable) som exponerar drillen via publika library-endpoints
✅ PL-T212 - F06.02.10 Shipped
Session-builder med TimelineBlocks — ±10 % drift-validering (422 code=session_duration_drift), differentiation_notes, PDF-export (Helvetica, 100-tecken-radbrytning)
✅ PL-T212 - F06.02.11 Shipped
Taktiska scenarier — GameStateSnapshot med BallPos[], deterministisk SVG-rendering (1200×300, ivory, färgkodade kulor), next_for_player med 30-dagars seen-exklusion + GC-job
✅ PL-T212 - F06.02.12 Shipped
Mentala-rutiner audio-bibliotek — 6 routine_types, audio_assets: dict[ISO639, MediaRef] (AUDIO-validator), transkript för a11y, is_in_match-flag
✅ PL-T212 - F06.02.13 Shipped
Adherens-loggning för mentala rutiner — log_session med minute-floor-idempotency, adherence_summary (sessions/distinct/avg-per-week), språkfallback i list_in_match_routines
✅ PL-T212
E-Learning Platform
F06.03- F06.03.01 Shipped
Online course creation and management
✅ PL-F0603a - F06.03.02 Shipped
Course categories (rules, coaching, umpiring, tactics, fitness)
✅ PL-F0603a - F06.03.03 Shipped
Video lessons with quizzes
✅ PL-F0603a - F06.03.04 Shipped
Certification exams with automatic grading
✅ PL-F0603a - F06.03.05 Shipped
Progress tracking per user and module (attempt_count, time_spent_seconds, user-progress dashboard)
✅ PL-F0603b - F06.03.06 Shipped
Multi-language course content (i18n via dict[str, str], lang filter, languages endpoint)
✅ PL-F0603b - F06.03.07 Shipped
Webinar/live session scheduling with registration, capacity control, auto NO_SHOW, date/tag filter, statistics
✅ PL-F0603b - F06.03.08 Shipped
Linjära learning-tracks — 5 track_types (beginner_intro, returning_refresher, pe_teacher_intro, umpire_l1_prep, youth_safeguarding_basics), TrackStep-pointers med required-step-gating (409 step_out_of_order)
✅ PL-T212 - F06.03.09 Shipped
Gäst-progress + merge — LearningTrackEnrollment med XOR user_id/guest_id, guest_to_user_merge behåller högre current_step_order, CMS-embedding via cms_block_enabled
✅ PL-T212 - F06.03.10 Shipped
Completion-webhook — coaching.learning_track.completed dispatchas vid completed_at-flip med score (avg av scored steps), idempotent vid re-advance
✅ PL-T212
Youth Development
F06.04Implemented in PL-1203 (foundation). Enhanced in PL-F0604a (validation, stats, talent dashboard, pathway-by-age-group). Further enhanced in PL-F0604b (school partnership program management, parental consent enforcement, safeguarding integration, progression analysis, parent notification service). API endpoints under `/youth-academies/`, `/youth-players/`, `/youth-competition-pathways/`, `/school-partnerships/`, `/youth-progress-reports/`.
How it works- F06.04.01 Shipped
Youth academy management — full CRUD, coach/program reference validation, duplicate age_group guard, stats endpoint, add/remove coach and program endpoints
✅ PL-F0604a - F06.04.02 Shipped
Age-appropriate training programs (age group configs + linked TrainingPrograms, programs-by-age-group mapping, validated program references)
✅ PL-F0604a - F06.04.03 Shipped
Talent identification and tracking (assessments with potential flags, duplicate enrollment check, age group capacity enforcement, talent dashboard, assessment history)
✅ PL-F0604a - F06.04.04 Shipped
Youth competition pathways (per age group, local→international sort, min/max age validation, duplicate entry guard, by-age-group endpoint)
✅ PL-F0604a - F06.04.05 Shipped
School partnership program management — activity CRUD (add/update/delete), stats endpoint (completion rate, participants, duration), on-hold status, program_goals and equipment_provided fields (PL-F0604b)
✅ PL-F0604b - F06.04.06 Shipped
Parental consent and safeguarding integration — BR09.01 consent enforcement on minor registration/update, BR09.02 coach background-check validation, safeguarding-status endpoint per academy, verify-safeguarding endpoint per youth player (PL-F0604b)
✅ PL-F0604b - F06.04.07 Shipped
Youth player progression reports — coach validation at creation, period-overlap guard, block edit of published reports, actual parent notification via notification service (email/push/sms/none channel tracking), progression analysis endpoint with trend calculation (PL-F0604b)
✅ PL-F0604b - F06.04.08 Shipped
PE-curriculum-paket — 40-min-mall (justerbar 10–120), LessonPlan med warmup/main/cool_down, RubricCriterion med ≥2 levels-validator, multilang learning_objectives
✅ PL-T212 - F06.04.09 Shipped
Säkerhetsbriefing + F11 starter-kit-länk — safety_briefing: dict[ISO639, str], equipment_starter_kit_product_bundle_id länkar till marketplace, with-starter-kit-endpoint returnerar pris + ledtid
✅ PL-T212 - F06.04.10 Shipped
Aktivering på SchoolPartnership — activate-endpoint enrollar PE-lärare på pe_teacher_intro-track, dispatchar coaching.pe_curriculum.activated-webhook, 422 vid term_end < term_start
✅ PL-T212
Rules Education
F06.05- F06.05.01 Shipped
Interactive rules guide (searchable, illustrated)
✅ PL-F0605 - F06.05.02 Shipped
Rules quiz and self-assessment
✅ PL-F0605 - F06.05.03 Shipped
Video examples of common situations
✅ PL-F0605 - F06.05.04 Shipped
Rule change notifications and explainers
✅ PL-F0605 - F06.05.05 Shipped
FAQ database from official interpretations
✅ PL-F0605 - F06.05.06 Shipped
Domarprep-track — UmpireExamTrack per umpire_level (L1–L5) med rulebook_modules, worked_examples, practice_exam_ids-referenser; FIPJP-shareable för L3+
✅ PL-T212 - F06.05.07 Shipped
Item-bank RuleScenarioItem — situation + flerval + facit, rule_refs mot FIPJP-artiklar, worked_example_id-länk, CSV→bulk-import-endpoint, model-validatorer (≥2 choices, unika keys, korrekt-key-existens)
✅ PL-T212 - F06.05.08 Shipped
Practice-exam med Brier-konfidenskalibrering — 3 item-strategier (random/fixed/weighted), confidence × 0.2 = p_correct, brier_term = (p_correct − outcome)², kalibreringsbuckets (over/under/well), 30s timeout-grace, weekly snapshot-job, coaching.umpire.practice_exam.passed-webhook
✅ PL-T212
Training Diary
F06.06Personal training log for players — track practice, set goals, measure improvement.
How it works- F06.06.01 Shipped
Daily training entry (date, duration, type, notes)
✅ PL-F0606a - F06.06.02 Shipped
Training types: pointing practice, shooting practice, match simulation, physical fitness, mental prep
✅ PL-F0606a - F06.06.03 Shipped
Drill logging (which drills, repetitions, success rate)
✅ PL-F0606a - F06.06.04 Shipped
Personal shooting accuracy tracker (tirs attempted vs successful per session)
✅ PL-F0606a - F06.06.05 Shipped
Personal pointing accuracy tracker (distance from cochonnet per session)
✅ PL-F0606a - F06.06.06 Shipped
Training streak tracking — day streaks + ISO-week streaks, current + longest (PL-F0606b)
✅ PL-F0606b - F06.06.07 Shipped
Training volume charts — weekly/monthly/yearly aggregation with type_breakdown (PL-F0606b)
✅ PL-F0606b - F06.06.08 Shipped
Training notes with photo/video attachment — upload, magic-byte validation, thumbnail, blob storage (PL-F0606b)
✅ PL-F0606b - F06.06.09 Shipped
Coach visibility — share/unshare endpoints, coach dashboard with pagination (PL-F0606b)
✅ PL-F0606b - F06.06.10 Shipped
Coach annotations — structured multi-annotation per entry, full CRUD with history (PL-F0606b)
✅ PL-F0606b
Goals & Development Plans
F06.07SMART goal setting and personal development tracking.
How it works- F06.07.01 Shipped
Personal goal creation (SMART: specific, measurable, achievable, relevant, time-bound) — achievable_reason fält, is_smart computed flag
✅ PL-F0607a - F06.07.02 Shipped
Goal categories: ranking target, technique improvement, competition count, fitness — ranking och technique tillagda
✅ PL-F0607a - F06.07.03 Shipped
Goal progress tracking with milestones — progress_log, POST /progress, GET /progress-summary, POST /milestones/{index}/skip
✅ PL-F0607a - F06.07.04 Shipped
Goal completion celebrations and history — celebrations-data vid /achieve, GET /history/{player_id}, GET /stats/{player_id}
✅ PL-F0607a - F06.07.05 Shipped
Season goals (what do I want to achieve this year?) — is_season_goal, season_year, GET /season/{player_id}
✅ PL-F0607a - F06.07.06 Shipped
Coach-assigned goals with feedback history — coach_goal_status, feedback_history, GET /coach/{id}/assigned, POST /accept, POST /reject
✅ PL-F0607b - F06.07.07 Shipped
Goal templates (common goals pre-configured by level) — GoalTemplate model, /goal-templates/ CRUD + instantiate
✅ PL-F0607b - F06.07.08 Shipped
Development plan: long-term player pathway — PlayerPathway model, /player-pathways/ CRUD + advance + criteria/meet + goal-linking
✅ PL-F0607b - F06.07.09 Shipped
Skill radar chart (pointing, shooting, strategy, mental game, fitness) — GET /skill-radar/{player_id} med assessments + /history
✅ PL-F0607b - F06.07.10 Shipped
Before/after comparison + player comparison — GET /comparison/{goal_id}, GET /comparison/player/{player_id}
✅ PL-F0607b - F06.07.11 Shipped
Mentor-pairing-livscykel — statusmaskin PENDING_ACCEPTANCE → ACTIVE ↔ PAUSED → ENDED, mentor/mentee-validering, dual consent (request → accept), coaching.mentor.pairing.activated-webhook
✅ PL-T212 - F06.07.12 Shipped
One-tap mentor-session-loggning — MentorSessionLog med 5 session_types, mentee-acknowledge för passiv read-receipt, författar-only edit/delete
✅ PL-T212 - F06.07.13 Shipped
Matchningsalgoritm + veckodigest — MentorMatchingService (0.7 × overlap + 0.3 × capacity_factor, exklusion av kapacitets-fulla), MentorWorkspaceService.weekly_digest med should_send=session_count>0-gate, mentor-weekly-digest-tick Mon 07:00
✅ PL-T212
Mentor Assignment (PL-T224)
F06.09Formaliserad mentor↔mentee-relation som äger hours-budget, hourly-rate (multi-currency), SLA-fönster och granted-capabilities. Komplement till F06.07.11 pairing — assignment är *kommersiell relation*, pairing är *coaching-relation*.
- F06.09.01 Shipped
MentorAssignment med scope (coaching
umpire-training | officials-evaluation), hours_budget, hourly_rate MoneyAmount[], expires_at, granted_capabilities | ✅ PL-T224 - F06.09.02 Shipped
Lifecycle pending → active → (paused → active)? → expired
cancelled med accept/pause/resume/cancel-transitions; nightly mentor_assignment_expiry_tick flippar förfallna | ✅ PL-T224 - F06.09.03 Shipped
Billing-summary GET /mentorship/assignments/{id}/billing-summary?from=&to= returnerar billable-minutes och totals-per-currency via FXService
✅ PL-T224
Mentor Thread (async) (PL-T224)
F06.10- F06.10.01 Shipped
MentorThread per assignment med topic, linked_goal_id?, linked_diary_entry_id?, embedded MentorMessage-lista
✅ PL-T224 - F06.10.02 Shipped
Status-machine open → awaiting_mentor ⇄ awaiting_mentee → closed med auto-flip vid ny message baserat på author_role
✅ PL-T224 - F06.10.03 Shipped
Read-receipts (read_by[]), edit (edited_at), soft-delete (deleted_at ersätter body med [deleted] men behåller read_by)
✅ PL-T224
Video Inline Annotation (PL-T224)
F06.11- F06.11.01 Shipped
MentorAttachment wraps MediaAsset eller external_url med inline_annotations: list[VideoAnnotation]
✅ PL-T224 - F06.11.02 Shipped
VideoAnnotation med t_seconds (frame-tid), text_md, optional drawing_overlay (base64 SVG, max 50 KB → 413 vid större)
✅ PL-T224
Mentor SLA Nudge (PL-T224)
F06.12- F06.12.01 Shipped
mentor_sla_nudge_tick (hourly) detekterar awaiting_*-trådar äldre än assignment.sla_response_hours (default 72), sätter sla_breach_at, dispatchar mentor-sla-nudge
✅ PL-T224 - F06.12.02 Shipped
Eskalering vid persistent breach >48 h efter första nudge → commission-channel-notif
✅ PL-T224
Ungdomsverksamhet & Talangutveckling
F06.08Junior license management, school programs, junior competitions, talent programs, national youth development programs, coach resources, and junior statistics.
How it works- F06.08.01 Shipped
Junior-licens med samtyckeskontroll (BR09.01) — parental_consent_id och date_of_birth på LicenseApplication och License; validering vid godkännande av ansökan
✅ PL-F0608a - F06.08.02 Shipped
Skolprogram — CRUD, livscykel (draft → active → archived), sessionsmall, lärandemål, koppling till SchoolPartnership
✅ PL-F0608a - F06.08.03 Shipped
Junior-tävlingar — åldersklasser (U10–U21) med konfigurerbara åldersspann, referensdatum för åldersberäkning, kapacitetsgräns, statusmaskin, BR09.01-samtyckeskontroll vid registrering
✅ PL-F0608a - F06.08.04 Shipped
Talangprogram — behörighetskrav (åldersgrupp, talangpotential, antal bedömningar), spelarurval, lägerkonfiguration, lista behöriga spelare
✅ PL-F0608a - F06.08.05 Shipped
France - Pôle France junior — NationalYouthProgram med program_type=pole_france, PoleFranceConfig (INSEP-affiliering, pole_level espoirs/france/releve, regionala poler, selektionskommitté, budget, träningscenter), livscykel draft→active→archived, konfigurerbara prestandamål
✅ PL-F0608b - F06.08.06 Shipped
Sverige - SOK-utvecklingsprogram — NationalYouthProgram med program_type=sok_development, SokDevelopmentConfig (SOK-programkod, olympisk pathway, distriktskoordinatorer, RF-affiliering, budget, träningscenter), stöd för generisk programtyp för andra nationer
✅ PL-F0608b - F06.08.07 Shipped
Coachresurser för juniorträning — JuniorCoachResource-samling (7 resurstyper: guide/drill_plan/safety_protocol/equipment_guide/curriculum/video/article), åldersgruppsmålning, publiceringsflöde, fritextsökning, tag-filter, språkfilter
✅ PL-F0608b - F06.08.08 Shipped
Junior-statistik och utvecklingsspårning — GET /junior-statistics/overview (tenant-aggregerad statistik: åldersgrupp/talangfördelning, rapportantal, genomsnittliga bedömningar), GET /player/{id}/trajectory (utvecklingstrender per area med improving/declining/stable), GET /academies (prestandasammanfattningar per akademi)
✅ PL-F0608b
No features match your filters.