ASP.NET Core MVC Final Project | Fall 2025
A web-based tool designed to help soccer coaches build evenly matched teams by analyzing player skill profiles. The application automatically evaluates each athlete across five key competencies, assigns performance ratings, and intelligently distributes players to create balanced squads.
Before running this application, ensure you have:
- .NET 8.0 SDK installed (Download here)
- SQL Server LocalDB (included with Visual Studio)
- A compatible IDE (Visual Studio 2022 recommended)
-
Clone the repository
git clone https://github.com/JeremyNRoos/AzureFinal cd BalancedSoccerTeams -
Restore dependencies
dotnet restore
-
Apply database migrations
Navigate to the project directory and run:
cd BalancedSoccerTeams dotnet ef database update -
Launch the application
dotnet run
-
Access the app
Open your browser and navigate to:
https://localhost:7202(HTTPS)http://localhost:5163(HTTP)
This project leverages modern .NET technologies:
| Component | Technology |
|---|---|
| Framework | ASP.NET Core 8 MVC |
| Language | C# 12 |
| ORM | Entity Framework Core 8 |
| Database | SQL Server LocalDB |
| Frontend | Bootstrap 5 + Custom CSS |
| Development | Visual Studio 2022 |
Every athlete in the system is evaluated across five fundamental soccer abilities, each rated on a 1-10 scale:
- Ball Control - Touch and close control
- Passing Accuracy - Distribution quality
- Dribbling - One-on-one capability
- Defensive Awareness - Positioning and tackling
- Shooting - Finishing ability
The system computes a composite score by averaging all five skill ratings:
OverallScore = (BallControl + PassingAccuracy + Dribbling + DefensiveAwareness + Shooting) ÷ 5
Example:
- Player with skills: 8, 7, 9, 6, 8
- OverallScore = (8 + 7 + 9 + 6 + 8) ÷ 5 = 7.6
Based on the OverallScore, players receive a tier ranking from 1 (elite) to 5 (developing):
| Rank | Score Range | Player Tier |
|---|---|---|
| ⭐⭐⭐⭐⭐ 1 | 8.5 - 10.0 | Elite |
| ⭐⭐⭐⭐ 2 | 7.5 - 8.4 | Advanced |
| ⭐⭐⭐ 3 | 6.5 - 7.4 | Intermediate |
| ⭐⭐ 4 | 5.5 - 6.4 | Developing |
| ⭐ 5 | < 5.5 | Beginner |
This tiered system provides coaches with instant visual feedback on player abilities.
Our intelligent distribution system uses a snake draft approach to ensure fair team composition:
-
Player Selection - Coach marks which players are attending today's practice/game using checkboxes
-
Sorting - Selected players are ranked from highest to lowest OverallScore
-
Distribution Pattern - Players are assigned using an alternating pattern:
Round 1: Team A → Team B → Team C → Team D Round 2: Team D → Team C → Team B → Team A Round 3: Team A → Team B → Team C → Team D (continues alternating...)
Traditional round-robin assignment would give Team A all the 1st, 5th, 9th picks, creating imbalance. Snake draft reverses direction each round, ensuring:
- Equal distribution of high-skilled players
- Balanced total team scores
- Competitive matches between squads
Coach has 12 players and wants 3 teams:
Sorted Players: P1 (9.2), P2 (8.8), P3 (8.5), P4 (7.9), P5 (7.5), P6 (7.2), P7 (6.8), P8 (6.5), P9 (6.0), P10 (5.5), P11 (5.2), P12 (5.0)
Distribution:
- Team A: P1, P6, P7, P12 → Total: 28.2
- Team B: P2, P5, P8, P11 → Total: 28.0
- Team C: P3, P4, P9, P10 → Total: 27.9
Notice how similar the total scores are!
Full CRUD operations for managing your roster:
- ➕ Create - Add new players with detailed skill assessments
- 📖 Read - View comprehensive player profiles and statistics
- ✏️ Update - Modify player information and skill ratings
- 🗑️ Delete - Remove players from the database
Each player record maintains:
- Name and identification
- Five individual skill ratings (1-10 scale)
- Auto-calculated OverallScore
- Auto-assigned Rank (1-5 tier)
The team builder provides:
- Flexible team count - Generate 2 to 10 teams
- Attendance tracking - Select only players present today
- Visual results - Clear display of team rosters
- Score transparency - See total skill points per team
- Fair distribution - Automated balancing via snake draft
Built with user experience in mind:
- Responsive design - Works on desktop, tablet, and mobile
- Clean navigation - Intuitive menu structure
- Bootstrap styling - Professional, polished appearance
- Custom CSS - Unique branding and visual elements
- Easy to use - Minimal learning curve for coaches
BalancedSoccerTeams/
├── Controllers/ # MVC Controllers (Home, Players, Teams)
├── Data/ # Database context and migrations
├── Models/ # Data models (Player, ErrorViewModel)
├── ViewModels/ # View-specific models
├── Views/ # Razor views (.cshtml files)
│ ├── Home/ # Landing and info pages
│ ├── Players/ # CRUD views for player management
│ ├── Teams/ # Team generation interface
│ └── Shared/ # Layouts and partial views
├── wwwroot/ # Static files (CSS, JS, libraries)
└── Program.cs # Application entry point
The application features four main sections:
| Page | Purpose |
|---|---|
| Home | Welcome page and project overview |
| Players | Manage player roster (Add/Edit/Delete) |
| Team Generator | Create balanced teams from available players |
| Privacy | Privacy policy and information |
Course: ASP.NET Core Web Development
Semester: Fall 2025
Project Type: Final Capstone
This project demonstrates proficiency in:
- MVC architecture patterns
- Entity Framework Core ORM
- Database design and migrations
- CRUD operations
- Algorithm implementation
- Responsive UI design
- ASP.NET Core best practices
This project is for educational purposes as part of coursework requirements.
- Built with ASP.NET Core 8
- UI powered by Bootstrap 5
- Database management via Entity Framework Core
- Developed in Visual Studio 2022