Craps Web
Interactive craps simulation • Angular • Spring Boot • REST API • Docker Compose
Overview
Craps Web is a full‑stack application that simulates the casino dice game of craps. It is implemented as a Spring Boot backend for game logic and state management, paired with an Angular frontend for interactive play. The project demonstrates frontend‑backend integration, API design, and iterative feature development in a realistic multi‑service setup.
While still a work in progress, Craps Web already models dice rolling, player and table setup, shooter rotation, and game phases. Future work will expand betting logic, payout rules, and persistence for multi‑session play.
Key Features
Backend (Spring Boot)
- Service‑oriented architecture with controllers, DTOs, and interfaces for clear separation of concerns.
- Manages game state: phases, dice rolls, shooter assignment, and player actions.
- Exposes REST endpoints for rolling dice, placing bets, and tracking game progress.
Frontend (Angular)
- Single‑page application that interacts with backend APIs via HttpClient.
- Component‑based UI for displaying table state, players, and dice outcomes.
- Modular structure: player info, gameboard, and betting UI components.
Integration
- Docker Compose environment runs backend and frontend together.
- Cross‑origin configuration supports smooth communication between Angular and Spring.
- Shared DTOs and observables keep frontend state synchronized with backend events.
Game Flow
- Come‑out and point phases with shooter rotation.
- Dice roll handling, status updates, and server‑validated actions.
- Scaffolding for bet placement and resolution (in progress).
Technologies & Design
- Angular TypeScript Spring Boot Java REST
- Docker Docker Compose
- Practices: SOLID services, DTOs for clean API contracts, separation of UI vs. logic.
Current State & Next Steps
- Implemented: basic game setup, dice rolls, shooter rotation, phase progression, Angular UI wiring.
- Next: full betting and payout rules; richer UI for bets and results; persistence for players and stats; polish toward MVP.
Author: Joel J Gerard • projects.jjg.dev