Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Danielsl4/TFG_DAM_2526_Consulta2/llms.txt

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

The match calendar is the heart of Futsal League Manager. Every fixture in the league — from group-stage clashes to the final — lives here. Referees record goals and cards in real time while fans follow along, see live voting stats, and review detailed match reports once the game ends.

Match lifecycle

Every match moves through three statuses in order:
StatusMeaning
pendienteScheduled but not yet started. Voting is open for registered users.
en_cursoThe match is in progress. Referees are recording events live; voting is closed.
finalizadoThe match is over. The final score is confirmed, standings are updated, and prediction points are awarded.
Referees change the status manually as the match progresses. Once a match is marked finalizado, standings and player stats are recalculated automatically.

Match phases

The tournament is structured across five sequential phases:
PhaseDescription
fase_de_gruposGroup stage. Results count toward standings.
octavosRound of sixteen. Knockout rounds begin.
cuartosQuarter-finals.
semisSemi-finals.
finalThe championship match.
Group-stage matches feed the standings table. Knockout matches use placeholder team names (e.g., “Winner Group A”) until the admin assigns confirmed teams after the group stage concludes.

Viewing matches

The match calendar displays all fixtures for the active season ordered by date. Use the season switcher in the top navigation to browse past seasons. Each match card shows:
  • Teams — logos, names, or placeholder labels if teams are not yet confirmed
  • Field — the venue name and location
  • Date and day of week — formatted for quick reading
  • Score — goals for each team, plus penalty shootout totals when applicable
  • Status badgependiente, en_curso, or finalizado
  • Voting bar — live breakdown of local / draw / away predictions

Match events

Events are recorded by referees during a match. Each event links a player, a team side (home or away), and one of the following types:
Event typeDescription
golA regular goal. Increments the team’s score and the player’s goal tally.
tarjeta_amarillaYellow card. Recorded against the player and added to team card stats.
tarjeta_rojaRed card. Recorded against the player and added to team card stats.
penalti_tanda_marcadoA scored penalty in a shootout. Increments the penalty goal counter only — does not affect regular stats.
penalti_tanda_falladoA missed penalty in a shootout. Logged for the record without affecting any counters.
Events can be removed by the referee while the match is still in progress, which reverses all associated stat changes automatically.

Match detail

Opening a match card navigates to the full detail view, which includes:
  • Both teams with logos and names
  • Venue, group, and phase
  • Full chronological event log (goals, cards, penalty shootout)
  • Live voting stats with percentage bars for each outcome
  • Observations field for referee notes, visible once the match has finished
Each match can only be edited by one referee at a time. When a referee opens a match for editing, it is automatically locked for up to two minutes. If another referee tries to access the same match, they see who currently holds the lock. The lock is released automatically when the referee finishes or leaves the match.

Match object structure

{
  "id": 42,
  "date": "2025-03-15T18:00:00",
  "homeTeam": {
    "id": 3,
    "name": "Los Halcones",
    "logoUrl": "https://example.com/logo.webp"
  },
  "awayTeam": {
    "id": 7,
    "name": "Tigres FC",
    "logoUrl": "https://example.com/logo2.webp"
  },
  "homeGoals": 3,
  "awayGoals": 1,
  "homePenaltyGoals": null,
  "awayPenaltyGoals": null,
  "field": {
    "id": 2,
    "name": "Pabellón Municipal",
    "location": "Calle Mayor 10"
  },
  "status": "finalizado",
  "phase": "fase_de_grupos",
  "groupName": "Grupo A",
  "dayOfWeek": "Sábado",
  "observations": null,
  "userVote": "local",
  "votingStats": {
    "local": 14,
    "draw": 4,
    "away": 6,
    "total": 24
  }
}

Build docs developers (and LLMs) love