Let's play a classic game --Rock-Paper-Scissors-- with others in gframe.
This is a proof-of-concept application, which demostrates Microservice Architecture Pattern using various technologies. For technical perspective, it includes Restful Api, GraphQL, Websocket, OAuth2, Redis, Kafka, Docker, Kubernetes...etc. For deployment, I've setup Azure Kubernetes Service (AKS) for everything. Refer to depoly folder for details.
- Note: it is still in beginning stage.
Handle player login/logout, and interact with game playing.
Group players.
Setup, control and monitor a game.
This project heavily depends on Redis. It uses several features in Redis, like Cache, Pub/Sub, Sets...etc
This project use Kafka as message queue.
Promethuse & Grafana (https://grafana.gframe.fun)
- Player Client (https://www.gframe.fun)
- User must be able to access the Player Client, and join the game with simply providing a name
- When player presses Start, he/she must be added to a gaming group
- Player is able to play game with opponents
- Admin Client (https://admin.gframe.fun)
- Admin must be able to access the Admin Client with username/password
- Admin must be able to control the game (including creation, setting, etc...)
- Admin must be able to simulate game playing via Simulator
- PowerShell:
.\services\run.ps1
&.\clients\run.ps1
- Docker Compose:
- Backend:
docker-compose -f .\services\docker-compose.yml up
- Frontend:
docker-compose -f .\clients\docker-compose.yml up
- Open
Player Client
at http://localhost:8080 - Open
Admin Client
at http://localhost:8081
- Backend:
- Auth Service
- Authorization & Authentication
- OpenID
- Player Events
- Join
- Leave
- Players Matching
- Gaming
- Admin Client & Simulator
- Admin Client
- Simulator
- Inject Players
- Game Play
- Log Monitoring
- Docker Supporting
- Docker Compose
- Kubernetes
- Devops
- CI/CD
- Microservices Monitoring