Scrum Poker is a lightweight, real-time estimation tool for Agile teams. It simplifies the sprint planning process with a clean, no-frills interface and instant feedback.
- Real-time Updates: Uses Server-Sent Events (SSE) for instant vote visibility without refreshing.
- No Registration: Jump straight into a room with a generated session ID.
- Ad-Hoc Rooms: Create a room instantly; rooms persist in memory (flushed to disk on shutdown) and are stored for a maximum of one day.
- Serverless Ready: Tested and optimized for Google Cloud Run; runs within free tier limits for small teams.
- Dealer Controls: The room creator (Game Master, Dealer) has exclusive rights to Reveal Cards and Reset Votes.
- Standard Deck: Includes Fibonacci sequence (0, 1, 2, 3, 5, 8, 13, 21),
?(unsure), andβ(break). - Mobile Friendly: Responsive design works seamlessly on desktop and mobile.
This application is developed and optimized for Google Cloud Platform, leveraging Cloud Run for serverless container execution (with scale-to-zero for cost efficiency) and Google Cloud Storage Buckets for persistent state management. The bucket has a lifecycle policy configured to automatically delete room data older than one day. Note that this automatic cleanup lifecycle policy only works when running in GCP.
For local development and testing, the application is fully containerized and supports Docker, Podman, and Kubernetes deployments. You can also run it directly with Go.
For more information, please see the gcp/README.md.
This project supports containerization with either Docker or Podman. The instructions and scripts have been tested with Podman.
Alternatively, you can use the tools/build-podman.sh script to automate this process with Podman.
-
Build the image:
docker build -t scrumpoker . -
Run the container:
docker run -d -p 8080:8080 --name scrumpoker scrumpoker
The application will then be accessible at
http://localhost:8080.
Alternatively, you can use docker-compose to manage the application.
Then run:
docker-compose up -d --buildPrerequisites: Go 1.25+
-
Clone the repository:
git clone https://github.com/Cyclenerd/scrumpoker.git cd scrumpoker -
Run the application:
go run main.go
The server will start on
http://localhost:8080.
- Create a Room: Go to the homepage and click "Create Room". You become the Dealer.
- Invite Team: Share the URL or Room ID with your team.
- Vote: Players select a card. Their status changes to "Voted" (card remains hidden).
- Reveal: The Dealer clicks "Reveal Cards" to show all estimates.
- Reset: The Dealer clicks "Start New Round" to clear votes for the next story.
Contributions are welcome! Please read our Contributing Guidelines for details on our code of conduct and the process for submitting pull requests.
All background animations are based on GLSL shader animation created by KF2015 found on YouTube. The code was adapted to run in a browser using WebGL.
Attribution Requirement: If you re-use one of the animations, please credit KF2015!
This project is licensed under the AGPL v3 License. See the LICENSE file for details.
