Skip to main content
Petanque Life
← Back to all features
06

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
Planned
How it works
  • 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
Planned
How it works
  • 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
Planned
How it works
  • 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.04
Planned

Implemented 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
Planned
How it works
  • 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.06
Planned

Personal 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.07
Planned

SMART 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.09
Planned

Formaliserad 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
Planned
  • 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
Planned
  • 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
Planned
  • 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.08
Planned

Junior 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