Changelog
Complete history of website development
March 4, 2026
1Stats SQL views switched to SECURITY INVOKER so RLS is always enforced for API calls and Security Advisor risks are removed
February 22, 2026
7Training 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
Fixed player card alignment when Guest badge is shown (uniform row height)
"Can play goalie" option for field players who also play in goal — they appear in both GK slot and field lines
Fixed NULL slug bug when updating tournament match scores (database trigger)
Player sorting by name instead of jersey number across all lists (admin panel, roster, game editor)
Larger goal video modal on desktop (min 1000px); removed position badges from player cards in grid view
Guest players (is_guest) now appear in game editor for goals and assists
February 16, 2026
1URLs 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
9SEO-friendly URLs: all public pages use readable slugs instead of UUIDs (e.g. /games/2025-02-15-vs-zvezda-home, /roster/stefan-milosevic)
Slug field in all admin forms with auto-generation, manual editing and uniqueness validation
Training editor converted to tabs (Info, Attendance, Match) with split view attendance on desktop
Roster tab in match editor: selected players shown in sidebar list on desktop
Stats now show all players from game lineups, not just those with points (global and tournament)
Penalty minutes (PIM) input in match events, shorter tab name
Shootout support for tournament matches + SO indicator on all result cards
Match editor redesign: merged tabs, visual scoreboard, constrained width
Player stats on tournament page + reusable stats table component with avatars
February 14, 2026
3Goal input redesign: simplified form (scorer + optional assists), progressive reveal on mobile
Goals tab in game editor + goal scorers displayed on result poster
Fixed opponent logo display for tournament games
February 13, 2026
14Unified player edit popup: same design on public pages and in admin panel
Full SEO optimization: metadata for all pages, Open Graph tags, robots.txt, sitemap.xml, manifest, JSON-LD structured data, multilingual hreflang links
Fixed lang attribute on HTML element — now changes based on selected locale
Sticky headers on all admin pages, removed unnecessary scroll
Training page: next session highlighted, others in collapsible sections
Quick edit buttons for games, training sessions, and players on public pages for admins
Added coach role for team members
Enhanced country selection with autocomplete and flags
Redesigned tournament match cards, split match list
Tournament matches redirected to unified game editor
Replaced spinner loading states with skeleton components
Dynamic imports, Map lookups, error boundary for better performance
Improved database security and RLS policies
LoadingErrorEmpty applied to all admin pages, SelectWithNone for teams
February 12, 2026
13Vercel Web Analytics integrated into the app
Accessibility tests, mobile responsiveness fixes, WCAG improvements
Team deletion and redesigned team grid with large avatars
Admin link added to header with conditional visibility
Improved lineup editor with all-lines view and mobile styling
Avatar crop dialog with zoom and pan
Full names with nicknames in tournament roster
Standardized admin page headers with AdminPageHeader component
Replaced hardcoded strings with i18n translations in admin panel
Fixed infinite reload loop in lineup editor
Merged HockeyRink into GameLineupEditor with readOnly mode
Lineup component polish: circle sizes, avatars, mobile layout
Finalized match card design and match editor header redesign
February 11, 2026
17Unified match page structure with 5 tabs for all match types
Added basic field editing for regular matches
All hardcoded strings replaced with i18n translations
Admin edit link added to GameMatchCard with improved responsive design
Mobile horizontal scroll navigation and Playwright e2e testing
Improved player management and team visuals
Simplified player account setup and improved training workflow
Tournament declared roster for lineup selection
Extended training management with scheduling, statuses, and match details
Hockey rink redesign: vertical half-field with ice surface
Improved players table in admin panel
Landing page redesign with new visuals and team logo
Improved lineup display with auto-save
Replaced Opponents table with Teams and database migration
Critical auth and admin panel fixes
Session persistence, player deletion, ESLint errors, and DOM nesting fixes
Fixed cookie maxAge replacing invalid lifetime property
February 10, 2026
5Lineup editor redesign with visual position slots, tournaments added
Team logo added across all branding spots
Player editing, training teams, and hockey rink visualization
Improved UI across all pages, prepared for Vercel deployment
Initial project setup — HC Propeleri hockey team website