Complete implementation of pre-game setup flow allowing players to create games and submit lineups before gameplay starts. Backend Changes: - Extended games.py with create game, lineup submission, and game start endpoints - Added teams.py roster endpoint with season filtering - Enhanced SBA API client with player data fetching and caching - Comprehensive validation for lineup submission (position conflicts, DH rules) Frontend Changes: - Redesigned create.vue with improved team selection and game options - Enhanced index.vue with active/pending game filtering and navigation - Added lineup/[id].vue for interactive lineup builder with drag-and-drop - Implemented auth.client.ts plugin for client-side auth initialization - Added comprehensive TypeScript types for API contracts - Updated middleware for better auth handling Key Features: - Game creation with home/away team selection - Full lineup builder with position assignment and batting order - DH rule validation (pitcher can be excluded from batting order) - Season-based roster filtering (Season 3) - Auto-start game when both lineups submitted - Real-time game list updates Workflow: 1. Create game → select teams → set options 2. Submit home lineup → validate positions/order 3. Submit away lineup → validate positions/order 4. Game auto-starts → navigates to game page 5. WebSocket connection → loads game state Ready for Phase F4 - connecting gameplay UI to complete the at-bat loop. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
37 lines
919 B
JSON
37 lines
919 B
JSON
{
|
|
"name": "frontend-sba-temp",
|
|
"type": "module",
|
|
"private": true,
|
|
"scripts": {
|
|
"build": "nuxt build",
|
|
"dev": "nuxt dev",
|
|
"generate": "nuxt generate",
|
|
"preview": "nuxt preview",
|
|
"postinstall": "nuxt prepare",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest watch",
|
|
"test:coverage": "vitest run --coverage",
|
|
"test:ui": "vitest --ui"
|
|
},
|
|
"dependencies": {
|
|
"@nuxtjs/tailwindcss": "^6.14.0",
|
|
"@pinia/nuxt": "^0.11.2",
|
|
"axios": "^1.12.2",
|
|
"nuxt": "^4.1.3",
|
|
"socket.io-client": "^4.8.1",
|
|
"vue": "^3.5.22",
|
|
"vue-draggable-plus": "^0.6.0",
|
|
"vue-router": "^4.6.3"
|
|
},
|
|
"devDependencies": {
|
|
"@nuxtjs/eslint-config-typescript": "^12.1.0",
|
|
"@types/node": "^24.9.1",
|
|
"@vue/test-utils": "^2.4.6",
|
|
"@vitest/coverage-v8": "^2.1.8",
|
|
"@vitest/ui": "^2.1.8",
|
|
"happy-dom": "^15.11.7",
|
|
"vitest": "^2.1.8",
|
|
"vue-tsc": "^3.1.1"
|
|
}
|
|
}
|