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

Tutorial: Running Race

This scenario creates a fictional 10 km running race with individual participants, bib numbers, finish times and categories. It demonstrates why JoomLeague uses programme events rather than assuming home/away matches.

Create the race foundation

Create a Sport Type from running_race with all initialization switches enabled. Review participant/official positions, race statuses and time-based statistics.

Create competition City 10K, season 2035, project City 10K 2035 and select project type Race. Create one venue representing the start/finish area. The project/venue timezone should inherit the Joomla system timezone unless the race is elsewhere.

Participants

Create fictional Person records and add them as Person project entries. Assign unique bib numbers. Seed numbers are optional and can represent start-wave or ranking order if the event uses them.

Do not create a club/team merely to satisfy a football-shaped model. Club or team association is optional metadata for participants and team ranking rules only when the race actually uses it.

Stage and programme

Create one stage 10 km Race, type race, sequence 1, inheriting all entries. Create one round/wave and one programme event with a contest type compatible with multiple race participants. Assign the venue, scheduled date/time and publish it.

For wave starts, create multiple ordered rounds/events only when the selected profile/result aggregation knows how they combine. Otherwise one event with all participants is clearer.

Record race results

Race results are time-based and lower values rank better. For every starter, record the supported status and finish time. Use profile-defined values for:

  • finish time and rank;
  • category rank;
  • pace and gap where calculated;
  • split/lap times where available;
  • penalty time;
  • DNS, DNF or DSQ status.

Do not enter 0 as a finish time for a non-finisher. Status distinguishes DNS, DNF and DSQ from a valid measured time. The profile contract determines how penalties and statuses affect classification.

If team ranking is enabled, configure its profile/project rule (for example how many top participant times count). Do not assume a football points table.

Officials and support roles

Assign race director, timekeeper, marshal, medical or other profile-defined official/staff roles as applicable. A guide runner is a participant/support relationship and should use the profile's supported pairing rather than a free-text note when that capability is available.

Frontend setup

Create Project, Participants, Participant, Results, Standings, Statistics Overview, Statistic Ranking and Event Report menu items. Publish Project Navigation, Programme, Next Event, Participant and Personnel modules.

Race standings should use the race_results shape: rank, participant, category/team context, time/status and relevant metrics. Home/Away scopes, result matrix and head-to-head bracket are not meaningful and should not be published for this project.

Validation checklist

  • every entrant is a person entry with a unique bib where required;
  • the event supports more than two participants;
  • final classifications contain valid time or explicit non-finish status;
  • lower finish time produces the better rank;
  • category/team ranking follows explicit profile rules;
  • Event Report uses a neutral multi-participant statistics table;
  • calendar output contains the race start without inventing home/away sides.

Run preflight and inspect every result-contract error before publishing final classification.