JoomLeague 6.2 development documentationNot compatible with the JoomLeague 6.1.x component. Use a clean test installation.

Tutorial: Basketball Tournament

This scenario creates an 8-team basketball tournament with two groups and a four-team knockout stage. It demonstrates stage-specific assignments, transitions, quarter scoring and a bracket.

Sport and entities

Create a Sport Type from the basketball profile with all three initialization switches enabled. Verify point events, fouls, player statistics and basketball positions were initialized.

Create competition City Basketball Cup, season 2035, eight fictional clubs and teams, and venues. Create project City Basketball Cup 2035 with project type Tournament. Use the system timezone unless the tournament takes place in another zone.

Add all eight teams as project entries with seeds 1–8. Add enough fictional players/staff to demonstrate lineups and statistics.

Group stages

Create two stages:

  • Group A, type group, sequence 1
  • Group B, type group, sequence 2

Switch each to explicit assignment. Assign seeds 1, 4, 5, 8 to Group A and 2, 3, 6, 7 to Group B (or use your draw). A participant must not appear in both groups unless the competition intentionally permits it.

Generate a one-leg four-team round robin in each group. Each group should produce 3 rounds and 6 programme items. Preview and verify before applying.

Knockout stage and qualification

Create stage Final Four, type knockout, sequence 3, explicit entries. Do not manually assign finalists yet.

Create transitions:

  • Group A top two → Final Four, standing rank range 1–2
  • Group B top two → Final Four, standing rank range 1–2

Use the profile's total standing scope and assign target seed starts so the bracket receives deterministic positions. Preview transitions only after all group results are final. Apply and confirm exactly four entries are assigned.

Create semifinal and final rounds manually or with a compatible knockout schedule definition. Pair A1–B2 and B1–A2. The final must initially have unresolved/no fabricated finalists. Winners advance only after semifinal results are Final and the relevant outcome transition/progression is applied.

Basketball result entry

For each event, the profile contract expects timed periods and numeric points. Record quarter scores where supported and verify their aggregate equals the final score. A tied regulation event can use overtime according to the active profile; do not store a final draw when the contract disallows one.

Record scoring events (one/two/three points where configured), fouls and statistics against existing lineup people. A statistic such as assists can be recorded through its supported source even when it is not presented as a separate public timeline event.

Standings and bracket checks

Group standings are stage-scoped. Verify each group independently and confirm points/tie-break metrics follow the active profile version. The Final Four bracket requires at least two rounds and final source results.

Never assign the winner/finalist simply to make the bracket look complete. Before a semifinal is final, its final participant slot must remain unresolved.

Frontend setup

Create Project, Participants and Results items for the whole tournament; stage-specific Standings for Group A and Group B; and Bracket for Final Four. Publish Programme, Next Event, Event Ranking, Statistic Ranking and Project Navigation modules where appropriate.

Test these states:

  1. Before group completion: group tables work, Final Four is empty/unresolved.
  2. After final group results: transitions preview four qualifiers.
  3. After applying transitions: semifinal participants appear.
  4. After final semifinals/progression: final participants appear.
  5. After final result: champion path is highlighted correctly.

Run preflight after every structural transition. The complete project should have eight project entries, two 4-entry group stages, one 4-entry knockout stage and no result-contract failures.