076ff17281e94ea1a1a6c09d57c025c7036d064a
Previously, navigating to a finished game caused the watch page to spin
forever because the stream never delivers events for finished games.
Fix by fetching the full game state via REST on load (GET .../game/{gameId}),
applying it immediately to the board, and only starting the stream subscription
if the game is still ongoing or pending.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
NowChess Frontend
Angular 20 frontend for the NowChess board UI.
Tech stack
- Angular standalone components and route-based pages
- HTTP and streaming integration for live game updates
- Asset sprites loaded from
arabian-chess/
Project structure
src/app/pagespage-level containers (welcome,game)src/app/componentsreusable UI pieces (chess-board,chess-piece)src/app/servicesAPI and stream integration (GameApiService)src/app/modelsshared API/domain typessrc/app/core/chesschess domain utilities (FEN parsing and square lookup)src/environmentsenvironment-specific API base URLs
Run locally
npm install
npm start
Open http://localhost:4200.
Development environment defaults to:
- API:
http://localhost:8080 - WebSocket:
ws://localhost:8080
src/environments/environment.ts is production-oriented (production: true) and src/environments/environment.development.ts is development-oriented (production: false).
Build and test
npm run build
npm test
Description
Languages
TypeScript
39.8%
CSS
35.5%
HTML
24.5%
Dockerfile
0.1%
Shell
0.1%