Live @ http://planningpoker.duracellko.net/
Planning Poker web application allows distributed teams to play planning poker using just their web browser and is optimized for mobile. The application does not require any registration at all. Scrum Master simply creates a team and all other members connect to the team. Observer role is supported too. The observer can watch the game, but cannot estimate. This is ideal role for a product owner.
This guide assumes that you already know what planning poker is about and how to play with real cards. If you need any information about planning poker see the wikipedia page. To play planning poker using this application is very simple. For distributed team a conference call is required as this is not provided by the application.
Requirements:
Run: dotnet Duracellko.PlanningPoker.Web.dll
It is also possible to install the application using Docker image from duracellko/planningpoker repository.
docker pull duracellko/planningpoker
docker run -p 80:8080 duracellko/planningpoker
Application is implemented using ASP.NET Core 6.0. Front-end is Single-Page Application implemented using Blazor. This technology allows deployment to different environments:
The application does not have any dependencies to run in basic mode. However, there are configurable advanced features.
Blazor supports 2 hosting models: Client-side and Server-side. It is possible to simply switch between the models by configuring UseServerSide setting.
By default, when server application is restarted, all teams are lost. It is possible to specify folder to store teams data between application restarts. Team data are stored in JSON format.
The application is state-full (it stores all teams data in memory). Therefore, it is not simple to deploy the application to a web-farm. Each server in web-farm would have different state of team. However, it is possible to setup Azure Service Bus to synchronize state between nodes in web-farm.
The application can be configured using default ASP.NET Core configuration sources:
The application has following configuration settings:
{
"PlanningPokerClient": {
"UseServerSide": "Never" // string - Never | Always | Mobile
},
"PlanningPoker": {
"RepositoryFolder": "", // string
"RepositoryTeamExpiration": 1200, // integer - time in seconds
"ClientInactivityTimeout": 900, // integer - time in seconds
"ClientInactivityCheckInterval": 60, // integer - time in seconds
"WaitForMessageTimeout": 60, // integer - time in seconds
// Azure Service Bus configuration
"ServiceBusConnectionString": "", // string
"ServiceBusTopic": "PlanningPoker", // string
"InitializationTimeout": 60, // integer - time in seconds
"InitializationMessageTimeout": 5, // integer - time in seconds
"SubscriptionMaintenanceInterval": 300, //integer - time in seconds
"SubscriptionInactivityTimeout": 300 // integer - time in seconds
}
}
Requirements:
To run build and tests simply execute PowerShell script BuildAndRun.ps1.
.\BuildAndRun.ps1
Optionally it is possible to include execution of end-2-end tests using Selenium.
.\BuildAndRun.ps1 -E2ETest:$true
PlanningPokerCore.sln solution can be normally open, built and debugged in Visual Studio 2019. Also unit tests can be executed.
For end-2-end tests (Duracellko.PlanningPoker.E2ETest) Selenium drivers need to be downloaded. Simply execute following commands:
npm install
.\node_modules\.bin\selenium-standalone install
PlanningPoker solution contains following projects:
This application including source code can be used under MIT License.