This commit captures work from multiple sessions building the statistics system and frontend component library. Backend - Phase 3.5: Statistics System - Box score statistics with materialized views - Play stat calculator for real-time updates - Stat view refresher service - Alembic migration for materialized views - Test coverage: 41 new tests (all passing) Frontend - Phase F1: Foundation - Composables: useGameState, useGameActions, useWebSocket - Type definitions and interfaces - Store setup with Pinia Frontend - Phase F2: Game Display - ScoreBoard, GameBoard, CurrentSituation, PlayByPlay components - Demo page at /demo Frontend - Phase F3: Decision Inputs - DefensiveSetup, OffensiveApproach, StolenBaseInputs components - DecisionPanel orchestration - Demo page at /demo-decisions - Test coverage: 213 tests passing Frontend - Phase F4: Dice & Manual Outcome - DiceRoller component - ManualOutcomeEntry with validation - PlayResult display - GameplayPanel orchestration - Demo page at /demo-gameplay - Test coverage: 119 tests passing Frontend - Phase F5: Substitutions - PinchHitterSelector, DefensiveReplacementSelector, PitchingChangeSelector - SubstitutionPanel with tab navigation - Demo page at /demo-substitutions - Test coverage: 114 tests passing Documentation: - PHASE_3_5_HANDOFF.md - Statistics system handoff - PHASE_F2_COMPLETE.md - Game display completion - Frontend phase planning docs - NEXT_SESSION.md updated for Phase F6 Configuration: - Package updates (Nuxt 4 fixes) - Tailwind config enhancements - Game store updates Test Status: - Backend: 731/731 passing (100%) - Frontend: 446/446 passing (100%) - Total: 1,177 tests passing Next Phase: F6 - Integration (wire all components into game page) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
36 lines
883 B
JSON
36 lines
883 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-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"
|
|
}
|
|
}
|