Skip to content
HC Propeleri

Changelog

Complete history of website development

March 4, 2026

1
Security

Stats SQL views switched to SECURITY INVOKER so RLS is always enforced for API calls and Security Advisor risks are removed

February 22, 2026

7
Feature

Training admin: new Teams tab with two-column drag-and-drop assignment, goalie slot, and role slots (forward/defense/no position); the same grouping is shown on the public training page

Fix

Fixed player card alignment when Guest badge is shown (uniform row height)

Feature

"Can play goalie" option for field players who also play in goal — they appear in both GK slot and field lines

Fix

Fixed NULL slug bug when updating tournament match scores (database trigger)

Refactor

Player sorting by name instead of jersey number across all lists (admin panel, roster, game editor)

Style

Larger goal video modal on desktop (min 1000px); removed position badges from player cards in grid view

Fix

Guest players (is_guest) now appear in game editor for goals and assists

February 16, 2026

1
Feature

URLs without locale prefixes: language is auto-detected from browser settings (Accept-Language) and stored in a cookie. Old links with /ru/ and /en/ prefixes redirect automatically

February 15, 2026

9
Feature

SEO-friendly URLs: all public pages use readable slugs instead of UUIDs (e.g. /games/2025-02-15-vs-zvezda-home, /roster/stefan-milosevic)

Feature

Slug field in all admin forms with auto-generation, manual editing and uniqueness validation

Feature

Training editor converted to tabs (Info, Attendance, Match) with split view attendance on desktop

Feature

Roster tab in match editor: selected players shown in sidebar list on desktop

Fix

Stats now show all players from game lineups, not just those with points (global and tournament)

Feature

Penalty minutes (PIM) input in match events, shorter tab name

Feature

Shootout support for tournament matches + SO indicator on all result cards

Refactor

Match editor redesign: merged tabs, visual scoreboard, constrained width

Feature

Player stats on tournament page + reusable stats table component with avatars

February 14, 2026

3
Feature

Goal input redesign: simplified form (scorer + optional assists), progressive reveal on mobile

Feature

Goals tab in game editor + goal scorers displayed on result poster

Fix

Fixed opponent logo display for tournament games

February 13, 2026

14
Refactor

Unified player edit popup: same design on public pages and in admin panel

Feature

Full SEO optimization: metadata for all pages, Open Graph tags, robots.txt, sitemap.xml, manifest, JSON-LD structured data, multilingual hreflang links

Fix

Fixed lang attribute on HTML element — now changes based on selected locale

Feature

Sticky headers on all admin pages, removed unnecessary scroll

Feature

Training page: next session highlighted, others in collapsible sections

Feature

Quick edit buttons for games, training sessions, and players on public pages for admins

Feature

Added coach role for team members

Feature

Enhanced country selection with autocomplete and flags

Feature

Redesigned tournament match cards, split match list

Feature

Tournament matches redirected to unified game editor

Feature

Replaced spinner loading states with skeleton components

Performance

Dynamic imports, Map lookups, error boundary for better performance

Security

Improved database security and RLS policies

Refactor

LoadingErrorEmpty applied to all admin pages, SelectWithNone for teams

February 12, 2026

13
Feature

Vercel Web Analytics integrated into the app

Feature

Accessibility tests, mobile responsiveness fixes, WCAG improvements

Feature

Team deletion and redesigned team grid with large avatars

Feature

Admin link added to header with conditional visibility

Feature

Improved lineup editor with all-lines view and mobile styling

Feature

Avatar crop dialog with zoom and pan

Feature

Full names with nicknames in tournament roster

Feature

Standardized admin page headers with AdminPageHeader component

Fix

Replaced hardcoded strings with i18n translations in admin panel

Fix

Fixed infinite reload loop in lineup editor

Refactor

Merged HockeyRink into GameLineupEditor with readOnly mode

Style

Lineup component polish: circle sizes, avatars, mobile layout

Style

Finalized match card design and match editor header redesign

February 11, 2026

17
Feature

Unified match page structure with 5 tabs for all match types

Feature

Added basic field editing for regular matches

Feature

All hardcoded strings replaced with i18n translations

Feature

Admin edit link added to GameMatchCard with improved responsive design

Feature

Mobile horizontal scroll navigation and Playwright e2e testing

Feature

Improved player management and team visuals

Feature

Simplified player account setup and improved training workflow

Feature

Tournament declared roster for lineup selection

Feature

Extended training management with scheduling, statuses, and match details

Feature

Hockey rink redesign: vertical half-field with ice surface

Feature

Improved players table in admin panel

Feature

Landing page redesign with new visuals and team logo

Feature

Improved lineup display with auto-save

Refactor

Replaced Opponents table with Teams and database migration

Fix

Critical auth and admin panel fixes

Fix

Session persistence, player deletion, ESLint errors, and DOM nesting fixes

Fix

Fixed cookie maxAge replacing invalid lifetime property

February 10, 2026

5
Feature

Lineup editor redesign with visual position slots, tournaments added

Feature

Team logo added across all branding spots

Feature

Player editing, training teams, and hockey rink visualization

Feature

Improved UI across all pages, prepared for Vercel deployment

Feature

Initial project setup — HC Propeleri hockey team website