A real-time multiplayer checkers application with a Flutter client and a Spring Boot backend.
DeepDame is a real-time multiplayer checkers application built as a final-year project at FST Settat. It features a Flutter mobile client backed by a Spring Boot service, with WebSocket-based real-time gameplay, an AI opponent with three difficulty levels, matchmaking and open lobbies, in-game chat, and a friends/social layer.
| Home | Game | Chat |
|---|---|---|
![]() |
![]() |
![]() |
| Friends | Game Over | Settings |
|---|---|---|
![]() |
![]() |
![]() |
The frontend is a Flutter app using Riverpod (with @riverpod codegen) for state management, Freezed for models, and Dio for HTTP. Real-time gameplay, chat, and notifications are delivered over STOMP via SockJS, with subscriptions that automatically re-register on reconnect.
The backend is a Spring Boot service with a polyglot persistence strategy: PostgreSQL for structured data (users, relationships, auth), MongoDB for game history and match logs, and Redis for caching, session state, and cross-instance pub/sub — keeping the application stateless and horizontally scalable. The whole stack is containerized with Docker and deployable to Kubernetes.
The backend was load-tested with k6: roughly 3,000 concurrent WebSocket sessions sustained locally (28GB RAM / 4 cores), and 5,000 concurrent users tested on EKS, with the system designed to scale further via Redis-backed horizontal scaling.
DeepDame/
├── client/ # Flutter mobile app
│ └── deepdame/
├── server/ # Spring Boot backend
├── docs/ # Screenshots, architecture docs
└── imgs/ # Diagrams
- See client/deepdame/README.md for frontend details
- See server/README.md for backend details
This project was developed as a PFM (Projet de Fin de Module) at FST Settat, Université Hassan 1er.






