Hillfinder
Hillfinder helps cyclists, skateboarders, and explorers find smooth, scenic rides — and save or share them with friends.
Spravujte šípkarárske turnaje, sledujte zápasy v reálnom čase a zobrazujte štatistiky
Translation pending
AI summary · README
Sports & fitnessJavaScript · PLpgSQLGitHub @ero67OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Loading the full README. The saved excerpt is shown below.
A comprehensive web application for managing darts tournaments with group stages, playoffs, live match tracking, and detailed statistics.
This application allows users to create and manage darts tournaments with the following features:
• Tournament creation and configuration
• Player registration
• Group stage management
• Playoff bracket generation
• Live match tracking
• Real-time statistics and standings
• Multi-language support (Slovak/English)
src/components/TournamentCreation.jsx
Purpose: Initial tournament setup and configurationRead the full README ↗A comprehensive web application for managing darts tournaments with group stages, playoffs, live match tracking, and detailed statistics.
This application allows users to create and manage darts tournaments with the following features:
src/
├── components/ # React components
├── contexts/ # React context providers
├── services/ # API and database services
├── locales/ # Translation files
└── lib/ # Utility libraries
src/components/TournamentCreation.jsxPurpose: Initial tournament setup and configuration
Key Features:
src/components/TournamentRegistration.jsxPurpose: Player registration and tournament settings management
Key Features:
src/components/TournamentManagement.jsxPurpose: Main tournament management interface
Key Features:
src/components/MatchInterface.jsxPurpose: Live match gameplay interface
Key Features:
src/contexts/TournamentContext.jsxPurpose: Global tournament state management
Key Features:
Key Functions:
createTournament(): Create new tournamentselectTournament(): Select active tournamentgetTournament(): Load tournament from databasestartMatch(): Start a matchcompleteMatch(): Complete a match and update standingsstartPlayoffs(): Initialize playoff bracketupdateTournamentSettings(): Update tournament configurationupdateGroupStandings(): Recalculate group standingssrc/contexts/LiveMatchContext.jsxPurpose: Live match tracking across devices
Key Features:
src/contexts/AdminContext.jsxPurpose: Admin/Scorer authentication and permissions
Key Features:
src/contexts/LanguageContext.jsxPurpose: Multi-language support
Key Features:
src/services/tournamentService.jsPurpose: Tournament database operations
Key Features:
createTournament(): Create tournament with players, groups, matchesgetTournament(): Load single tournament with all dataupdateTournamentSettings(): Update tournament configurationdeleteTournament(): Delete tournamentcalculateGroupStandings(): Calculate standings with customizable criteriaupdateTournamentPlayoffs(): Save playoff bracket to databasestartTournament(): Generate groups and matchesaddPlayerToTournament(): Add player to tournamentsrc/services/matchService.js (within tournamentService.js)Purpose: Match database operations
Key Features:
startMatch(): Start a match (create or update)saveMatchResult(): Save match result and statisticsendLiveMatch(): Clear live match trackingsrc/lib/supabase.jsPurpose: Supabase client configuration
Key Features:
The schema, RLS policies and RPCs come only from supabase/migrations/, applied in order. supabase/tests/ holds SQL self-checks. Do not apply hand-written SQL to production outside a migration.
standingsCriteriaOrder arraylegsToWinByRound objectTournamentCreation.jsx → Configure basic settingsTournamentRegistration.jsx → Add players, finalize settingsTournamentManagement.jsx → Manage tournamentTournamentManagement.jsxMatchInterface.jsx → Play matchTournamentContext.jsxcalculateGroupStandings() in tournamentService.jstournament.group_settings.standingsCriteriaOrderLiveMatchContext.jsx tracks active matchesTournamentManagement.jsxConfigured in tournament settings, stored in group_settings.standingsCriteriaOrder:
matchesWon: Number of matches wonlegDifference: Difference between legs won and lostaverage: Cumulative match averageheadToHead: Head-to-head recordStored in playoff_settings.legsToWinByRound:
16: Round of 168: Quarter-finals4: Semi-finals2: FinalTranslation files in src/locales/:
en.json: English translationssk.json: Slovak translationsKeys organized by feature area (management, registration, common, etc.)