A professional EA FC26-themed .NET 9 Blazor application for managing football competitions with group stages, knockout rounds, and live display screens.
- 2 Groups of 4 Teams (Group A and Group B)
- Round-robin within each group (3 matches per team)
- 12 total matches (6 per group)
- Played simultaneously on 2 screens
- 6 rounds of 15 minutes each
After a 15-minute break:
- Top 2 from each group โ Champions League Knockout
- Bottom 2 from each group โ Europa League Knockout
- Semi-finals + Finals for both leagues
- 6 total knockout matches
- 3 rounds of 15 minutes each
- Start Time: 18:30 (customizable)
- 2 Screens: Matches played simultaneously
- Match Duration: 15 minutes per round
- Total Duration: ~2.5 hours
- Add, edit, and delete teams (max 8 teams)
- Each team has:
- Team name
- Two player names
- Club/Country representation
- Assign teams to Group A or Group B
- Assign 4 teams to each group
- Generate complete schedule with times
- Automatic fixture generation for both stages
- Customizable start time
- Enter match results in real-time
- Switch between Group Stage and Knockout views
- Edit results if needed
- See which matches are on which screen
- Live scores for current matches
- Upcoming matches with countdown timers
- Group standings with real-time updates
- Full schedule for the event
- Auto-refreshes every 5 seconds
- Color-coded qualification indicators
- SQLite database for data storage
- All results saved automatically
- Competition state persists between sessions
- EA FC26 Gaming Aesthetic: Dark theme with neon accents
- Betabit Branding: Azure blue colors integrated
- Dual Screen Support: Admin panel + Public display
- Responsive: Works on all device sizes
- Real-time Updates: Changes sync across all screens
- .NET 9 SDK
-
Restore packages:
dotnet restore
-
Run the application:
dotnet run
-
Access the application:
- Main:
https://localhost:5001 - Admin:
https://localhost:5001/admin - Display:
https://localhost:5001/display
- Main:
- Navigate to Teams page
- Add 8 teams with their details
- Each team gets a unique name, players, and club/country
- Navigate to Setup page
- Assign 4 teams to Group A
- Assign 4 teams to Group B
- Set the start time (default 18:30)
- Click "Generate Full Schedule"
Admin Screen (/admin):
- Enter match results as games finish
- Switch between Group Stage and Knockout tabs
- Edit results if needed
Display Screen (/display - open in separate window/screen):
- Shows live matches with scores
- Displays group standings
- Shows upcoming matches
- Auto-updates every 5 seconds
- After all group matches complete:
- Top 2 from each group โ Champions League
- Bottom 2 from each group โ Europa League
- Knockout matches auto-generate with correct teams
- Finals determine the champions of each league
- Computer 1: Admin panel for entering results
- Computer 2: Display screen for audience
- Monitor 1: Admin panel
- Monitor 2: Display screen (press F11 for fullscreen)
- .NET 9
- Blazor Server (Interactive render mode)
- Entity Framework Core 9.0
- SQLite database
- C# with nullable reference types
- Teams: Team info, group assignment, statistics
- Matches: Schedule, scores, stage, screen assignment
- Event-driven architecture
- Components subscribe to service changes
- Automatic UI refresh on data updates
โ Dual-screen support (admin + display) โ Real-time score updates โ Automatic knockout bracket generation โ Live match indicators โ Countdown timers for upcoming matches โ Group standings with qualification zones โ Complete match schedule โ Data persistence with SQLite โ Responsive design โ EA FC26 gaming aesthetic
FC26Competition/
โโโ Components/
โ โโโ Layout/
โ โ โโโ MainLayout.razor
โ โโโ Pages/
โ โ โโโ Teams.razor # Team management
โ โ โโโ Setup.razor # Group assignment & schedule generation
โ โ โโโ Admin.razor # Match result entry
โ โ โโโ Display.razor # Public live display
โโโ Data/
โ โโโ FC26CompetitionContext.cs
โโโ Models/
โ โโโ Team.cs # Team with group assignment
โ โโโ Match.cs # Match with scheduling
โโโ Services/
โ โโโ CompetitionService.cs # Business logic
โโโ wwwroot/
โโโ app.css # EA FC26 styling
Modify in Setup page before generating schedule
Currently fixed at 15 minutes per round
(Can be modified in CompetitionService.cs)
Display page refreshes every 5 seconds
(Can be modified in Display.razor)
-
Setup before event:
- Register all 8 teams
- Assign groups
- Generate schedule
- Test both screens
-
During event:
- Keep admin screen private
- Display screen visible to all
- Enter results immediately after matches
- Check group standings after each round
-
Between stages:
- 15-minute break after group stage
- Verify all group matches completed
- Knockout fixtures auto-generate
- ๐ต Blue: Group A, Champions League
- ๐ Orange: Group B, Europa League
- ๐ข Green: Completed matches, scores
- ๐ด Red: Live matches
- โฑ๏ธ Cyan: Upcoming matches
- Chrome (recommended for display screen)
- Edge
- Firefox
- Safari
Built for Betabit FC26 competitions with EA FC26-inspired design.
Ready to kick off your tournament! โฝ๐ฎ๐