Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/SdazaP/ruTournament/llms.txt

Use this file to discover all available pages before exploring further.

The Schedule page (/dashboard/tournament/:id/schedule) provides a visual Gantt-style timeline for planning each category’s time slot throughout the competition day. Every category defined in your tournament appears as a coloured block on a vertical time axis, letting you see at a glance when events overlap, which room they occupy, and how long each one runs.

Timeline view

Categories are rendered as coloured blocks on a horizontal timeline. WCA-format categories appear in blue and Red Bull-format categories in red. The left column shows hour and half-hour labels generated automatically from the earliest and latest category times (with a 30-minute buffer on each end). Horizontal grid lines align with those labels so you can read times precisely. Each block displays three pieces of information:
  • Category name — the first three characters are used as an icon prefix.
  • Start and end times — shown in HH:MM – HH:MM format.
  • Room name — appears as a third line if the category has been assigned to a room.
Duration is computed by the formatDuration helper, which outputs human-readable strings such as 1h 30m, 45m, or 2h.

Editing a time slot

Schedule editing requires Edit Mode to be active. Click the Activar Edición button in the toolbar to enable it. The Schedule page is entirely read-only for Finalized tournaments.
Once Edit Mode is on, you can modify times in two ways: Drag interaction
  • Move — click and drag the body of a block up or down to shift both the start and end times while preserving the duration.
  • Resize from the top — drag the thin handle at the top edge of a block to move the start time independently; the end time stays fixed.
  • Resize from the bottom — drag the thin handle at the bottom edge to extend or shrink the end time; the start time stays fixed.
All dragged positions snap to 5-minute increments via the internal snapTo5 function (Math.round(minutes / 5) * 5). Inline editor panel Click a block (without dragging) to open a floating editor centred on that block. The panel exposes:
  • Two <input type="time"> fields for exact start and end times.
  • A room <select> dropdown pre-populated with all existing rooms, plus a + Nueva sala… option that opens the room creation form.
Changes made in the inline editor update the timeline in real time. Click the ✕ button or click outside the panel to close it without navigating away. Summary table Below the timeline, a table lists all visible categories sorted by start time, with columns for name, format badge, room, start time, end time, and formatted duration. In Edit Mode the room, start, and end columns become editable inline inputs directly in the table. Saving changes When you deactivate Edit Mode with unsaved changes, a confirmation modal appears showing the number of modified categories. Choose Guardar Cambios to persist everything to IndexedDB in a single db.tournaments.put() call, Descartar Cambios to roll back to the original values, or Cancelar to return to Edit Mode without saving or discarding.

Rooms

Categories can be assigned to named rooms (for example Main Stage or Side Room) to model venues with parallel tracks. Rooms are stored on each CategoryLocal record as a room string field.
1

Create a room

In Edit Mode, click Nueva Sala in the toolbar. Type the room name in the text field and press Enter or click the green ✓ button. Room names must be unique.
2

Assign a category

Click a timeline block to open the inline editor, then choose a room from the dropdown. You can also use the room selector in the summary table row.
3

Filter the timeline

Use the Todas las salas dropdown in the toolbar to filter the timeline to a single room. The conflict detector uses the same filter scope.
4

Delete a room

In Edit Mode, click the ✕ badge next to the room pill at the top of the page. All categories in that room will have their room field cleared.
Assign categories to separate rooms if your venue has parallel tracks — conflict warnings only fire between categories that share the same room name. Categories with no room assigned never trigger a conflict.

Conflict detection

The app continuously scans all visible categories for time overlaps. Two categories conflict when they share a room and their intervals overlap — specifically when aStart < bEnd && bStart < aEnd. When a conflict exists:
  • Both blocks gain a yellow ring (ring-2 ring-yellow-500/80).
  • A warning banner appears beneath the timeline listing each conflicting pair and the room they share, for example:
⚠ Conflictos de horario detectados:
  • 3x3 y 2x2 en Sala "Main Stage"
Resolve conflicts by adjusting either category’s start or end time until the overlap disappears. The conflict list updates live as you drag.

Build docs developers (and LLMs) love