Skip to content

Repository files navigation

Balanced Soccer Team Generator

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.


🚀 Getting Started

Prerequisites

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)

Quick Start Guide

  1. Clone the repository

    git clone https://github.com/JeremyNRoos/AzureFinal
    cd BalancedSoccerTeams
  2. Restore dependencies

    dotnet restore
  3. Apply database migrations

    Navigate to the project directory and run:

    cd BalancedSoccerTeams
    dotnet ef database update
  4. Launch the application

    dotnet run
  5. Access the app

    Open your browser and navigate to:

    • https://localhost:7202 (HTTPS)
    • http://localhost:5163 (HTTP)

🛠️ Technology Stack

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

📊 Understanding the Rating System

Player Skill Assessment

Every athlete in the system is evaluated across five fundamental soccer abilities, each rated on a 1-10 scale:

  1. Ball Control - Touch and close control
  2. Passing Accuracy - Distribution quality
  3. Dribbling - One-on-one capability
  4. Defensive Awareness - Positioning and tackling
  5. Shooting - Finishing ability

Overall Score Calculation

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

Rank Classification

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.


🧮 Team Balancing Algorithm

The Snake Draft Method

Our intelligent distribution system uses a snake draft approach to ensure fair team composition:

How It Works:

  1. Player Selection - Coach marks which players are attending today's practice/game using checkboxes

  2. Sorting - Selected players are ranked from highest to lowest OverallScore

  3. 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...)
    

Why Snake Draft?

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

Example Scenario:

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!


🎯 Core Features

1. Complete Player Management

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)

2. Intelligent Team Generation

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

3. Modern User Interface

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

📁 Project Structure

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

🌐 Navigation

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

🎓 Academic Context

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

📝 License

This project is for educational purposes as part of coursework requirements.


🙏 Acknowledgments

  • Built with ASP.NET Core 8
  • UI powered by Bootstrap 5
  • Database management via Entity Framework Core
  • Developed in Visual Studio 2022

About

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.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages