feat: implement MCP server and dashboard for football data platform

Add complete Nike football data platform with:
- FastMCP server exposing football data tools over HTTP
- RapidAPI client for free-api-live-football-data integration
- Bootstrap web dashboard with live match/standings views
- REST API endpoints for dashboard consumption
- Docker support with multi-stage build
- Comprehensive README with architecture docs
- Minimal .gitignore replacing verbose Python template
This commit is contained in:
2026-03-21 18:19:42 +00:00
parent b8689d530a
commit ee8436d5b8
81 changed files with 50251 additions and 176 deletions

View File

@@ -0,0 +1,424 @@
{
"table": [
{
"idStanding": "8825962",
"intRank": "1",
"idTeam": "133604",
"strTeam": "Arsenal",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/uyhbfe1612467038.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "WWWDD",
"strDescription": "Promotion - Champions League (League phase)",
"intPlayed": "30",
"intWin": "20",
"intLoss": "3",
"intDraw": "7",
"intGoalsFor": "59",
"intGoalsAgainst": "22",
"intGoalDifference": "37",
"intPoints": "67",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825963",
"intRank": "2",
"idTeam": "133613",
"strTeam": "Manchester City",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/vwpvry1467462651.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "DWWWW",
"strDescription": "Promotion - Champions League (League phase)",
"intPlayed": "29",
"intWin": "18",
"intLoss": "5",
"intDraw": "6",
"intGoalsFor": "59",
"intGoalsAgainst": "27",
"intGoalDifference": "32",
"intPoints": "60",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825964",
"intRank": "3",
"idTeam": "133612",
"strTeam": "Manchester United",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/xzqdr11517660252.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "LWWDW",
"strDescription": "Promotion - Champions League (League phase)",
"intPlayed": "29",
"intWin": "14",
"intLoss": "6",
"intDraw": "9",
"intGoalsFor": "51",
"intGoalsAgainst": "40",
"intGoalDifference": "11",
"intPoints": "51",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825965",
"intRank": "4",
"idTeam": "133601",
"strTeam": "Aston Villa",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/jykrpv1717309891.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "LLDWD",
"strDescription": "Promotion - Champions League (League phase)",
"intPlayed": "29",
"intWin": "15",
"intLoss": "8",
"intDraw": "6",
"intGoalsFor": "39",
"intGoalsAgainst": "34",
"intGoalDifference": "5",
"intPoints": "51",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825966",
"intRank": "5",
"idTeam": "133610",
"strTeam": "Chelsea",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/yvwvtu1448813215.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "WLDDW",
"strDescription": "Promotion - Europa League (League phase)",
"intPlayed": "29",
"intWin": "13",
"intLoss": "7",
"intDraw": "9",
"intGoalsFor": "53",
"intGoalsAgainst": "34",
"intGoalDifference": "19",
"intPoints": "48",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825967",
"intRank": "6",
"idTeam": "133602",
"strTeam": "Liverpool",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/kfaher1737969724.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "LWWWL",
"strDescription": "",
"intPlayed": "29",
"intWin": "14",
"intLoss": "9",
"intDraw": "6",
"intGoalsFor": "48",
"intGoalsAgainst": "39",
"intGoalDifference": "9",
"intPoints": "48",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825968",
"intRank": "7",
"idTeam": "134355",
"strTeam": "Brentford",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/grv1aw1546453779.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "DWLDW",
"strDescription": "",
"intPlayed": "29",
"intWin": "13",
"intLoss": "11",
"intDraw": "5",
"intGoalsFor": "44",
"intGoalsAgainst": "40",
"intGoalDifference": "4",
"intPoints": "44",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825969",
"intRank": "8",
"idTeam": "133615",
"strTeam": "Everton",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/eqayrf1523184794.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "WWLLW",
"strDescription": "",
"intPlayed": "29",
"intWin": "12",
"intLoss": "10",
"intDraw": "7",
"intGoalsFor": "34",
"intGoalsAgainst": "33",
"intGoalDifference": "1",
"intPoints": "43",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825970",
"intRank": "9",
"idTeam": "134301",
"strTeam": "Bournemouth",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/y08nak1534071116.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "DDDWD",
"strDescription": "",
"intPlayed": "29",
"intWin": "9",
"intLoss": "7",
"intDraw": "13",
"intGoalsFor": "44",
"intGoalsAgainst": "46",
"intGoalDifference": "-2",
"intPoints": "40",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825971",
"intRank": "10",
"idTeam": "133600",
"strTeam": "Fulham",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/xwwvyt1448811086.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "LWWLL",
"strDescription": "",
"intPlayed": "29",
"intWin": "12",
"intLoss": "13",
"intDraw": "4",
"intGoalsFor": "40",
"intGoalsAgainst": "43",
"intGoalDifference": "-3",
"intPoints": "40",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825972",
"intRank": "11",
"idTeam": "133603",
"strTeam": "Sunderland",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/tprtus1448813498.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "WDLLL",
"strDescription": "",
"intPlayed": "29",
"intWin": "10",
"intLoss": "9",
"intDraw": "10",
"intGoalsFor": "30",
"intGoalsAgainst": "34",
"intGoalDifference": "-4",
"intPoints": "40",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825973",
"intRank": "12",
"idTeam": "134777",
"strTeam": "Newcastle United",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/lhwuiz1621593302.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "WLLWL",
"strDescription": "",
"intPlayed": "29",
"intWin": "11",
"intLoss": "12",
"intDraw": "6",
"intGoalsFor": "42",
"intGoalsAgainst": "43",
"intGoalDifference": "-1",
"intPoints": "39",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825974",
"intRank": "13",
"idTeam": "133632",
"strTeam": "Crystal Palace",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/ia6i3m1656014992.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "WLWLW",
"strDescription": "",
"intPlayed": "29",
"intWin": "10",
"intLoss": "11",
"intDraw": "8",
"intGoalsFor": "33",
"intGoalsAgainst": "35",
"intGoalDifference": "-2",
"intPoints": "38",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825975",
"intRank": "14",
"idTeam": "133619",
"strTeam": "Brighton and Hove Albion",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/ywypts1448810904.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "LWWLL",
"strDescription": "",
"intPlayed": "29",
"intWin": "9",
"intLoss": "10",
"intDraw": "10",
"intGoalsFor": "38",
"intGoalsAgainst": "36",
"intGoalDifference": "2",
"intPoints": "37",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825976",
"intRank": "15",
"idTeam": "133635",
"strTeam": "Leeds United",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/jcgrml1756649030.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "LLDDW",
"strDescription": "",
"intPlayed": "29",
"intWin": "7",
"intLoss": "12",
"intDraw": "10",
"intGoalsFor": "37",
"intGoalsAgainst": "48",
"intGoalDifference": "-11",
"intPoints": "31",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825977",
"intRank": "16",
"idTeam": "133616",
"strTeam": "Tottenham Hotspur",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/dfyfhl1604094109.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "LLLLL",
"strDescription": "",
"intPlayed": "29",
"intWin": "7",
"intLoss": "14",
"intDraw": "8",
"intGoalsFor": "39",
"intGoalsAgainst": "46",
"intGoalDifference": "-7",
"intPoints": "29",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825978",
"intRank": "17",
"idTeam": "133720",
"strTeam": "Nottingham Forest",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/bk4qjs1546440351.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "DLLDL",
"strDescription": "",
"intPlayed": "29",
"intWin": "7",
"intLoss": "15",
"intDraw": "7",
"intGoalsFor": "28",
"intGoalsAgainst": "43",
"intGoalDifference": "-15",
"intPoints": "28",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825979",
"intRank": "18",
"idTeam": "133636",
"strTeam": "West Ham United",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/yutyxs1467459956.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "WLDDW",
"strDescription": "Relegation - Championship",
"intPlayed": "29",
"intWin": "7",
"intLoss": "15",
"intDraw": "7",
"intGoalsFor": "35",
"intGoalsAgainst": "54",
"intGoalDifference": "-19",
"intPoints": "28",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825980",
"intRank": "19",
"idTeam": "133623",
"strTeam": "Burnley",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/ql7nl31686893820.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "LLDWL",
"strDescription": "Relegation - Championship",
"intPlayed": "29",
"intWin": "4",
"intLoss": "18",
"intDraw": "7",
"intGoalsFor": "32",
"intGoalsAgainst": "58",
"intGoalDifference": "-26",
"intPoints": "19",
"dateUpdated": "2026-03-10 07:00:37"
},
{
"idStanding": "8825981",
"intRank": "20",
"idTeam": "133599",
"strTeam": "Wolverhampton Wanderers",
"strBadge": "https://r2.thesportsdb.com/images/media/team/badge/u9qr031621593327.png/tiny",
"idLeague": "4328",
"strLeague": "English Premier League",
"strSeason": "2025-2026",
"strForm": "WWLDD",
"strDescription": "Relegation - Championship",
"intPlayed": "30",
"intWin": "3",
"intLoss": "20",
"intDraw": "7",
"intGoalsFor": "22",
"intGoalsAgainst": "52",
"intGoalDifference": "-30",
"intPoints": "16",
"dateUpdated": "2026-03-10 07:00:37"
}
]
}