As a swim meet organizer, I want to add athletes to a specific event and automate the generation of heats for efficient event management.
To generate the heats, the following steps need to be considered:
Distributing Athletes into Heats
Athletes are initially sorted based on their seed times for the event. Subsequently, they are distributed into heats, taking into account the number of lanes available at the meet.
Each heat must utilize at least half of the available lanes. In cases where there aren't enough athletes to fill all heats completely, the two slowest heats should have the fewest participants.
Alternating Lanes based on Seed Times
Within each heat, athletes are sorted based on their seed times for the event. The athlete with the fastest seed time is positioned in the middle lane. Subsequent athletes are alternately placed to the right and left of the middle lane, following the order of their seed times.
Ordering of the heats
The heats are arranged in ascending order of times, progressing from one heat to the next, with the fastest times reserved for the last heat.
Field Requirements
event_id: A required field linking the heat to a specific event.
athlete_id: A required field linking an athlete to this heat.
lane_num: A required field representing the lane number, ranging from 1 to the total number of lanes on the site.
seed_time: The best time of the athlete on the given event. If the athlete does not have a time for that event, this time is null but is considered greater than the time for all other athletes.
heat_time: The time recorded for the athlete during the meet. At the moment of generating the heat, it is null.
num_heat: Number of the heat.
Parent Epic
[#12 ] This user story corresponds to point 3 of this epic.
Story Description
As a swim meet organizer, I want to add athletes to a specific event and automate the generation of heats for efficient event management.
To generate the heats, the following steps need to be considered:
Distributing Athletes into Heats
Athletes are initially sorted based on their seed times for the event. Subsequently, they are distributed into heats, taking into account the number of lanes available at the meet.
Each heat must utilize at least half of the available lanes. In cases where there aren't enough athletes to fill all heats completely, the two slowest heats should have the fewest participants.
Alternating Lanes based on Seed Times
Within each heat, athletes are sorted based on their seed times for the event. The athlete with the fastest seed time is positioned in the middle lane. Subsequent athletes are alternately placed to the right and left of the middle lane, following the order of their seed times.
Ordering of the heats
The heats are arranged in ascending order of times, progressing from one heat to the next, with the fastest times reserved for the last heat.
Field Requirements
event_id: A required field linking the heat to a specific event.
athlete_id: A required field linking an athlete to this heat.
lane_num: A required field representing the lane number, ranging from 1 to the total number of lanes on the site.
seed_time: The best time of the athlete on the given event. If the athlete does not have a time for that event, this time is null but is considered greater than the time for all other athletes.
heat_time: The time recorded for the athlete during the meet. At the moment of generating the heat, it is null.
num_heat: Number of the heat.
Parent Epic
[#12 ] This user story corresponds to point 3 of this epic.
Tasks