Skip to content

Cyclenerd/scrumpoker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Scrum Poker

Badge: Linux Badge: Terraform Badge: Go Badge: Docker Badge: Podman Badge: Kubernetes License: AGPL v3

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.

Screenshot

Features

  • 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.

Getting Started

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.

Google Cloud Run Deployment

Run on Google Cloud

For more information, please see the gcp/README.md.

Containerization with Docker or Podman

This project supports containerization with either Docker or Podman. The instructions and scripts have been tested with Podman.

Build the Container Image

Alternatively, you can use the tools/build-podman.sh script to automate this process with Podman.

  1. Build the image:

    docker build -t scrumpoker .
  2. Run the container:

    docker run -d -p 8080:8080 --name scrumpoker scrumpoker

    The application will then be accessible at http://localhost:8080.

Docker Compose

Alternatively, you can use docker-compose to manage the application.

Then run:

docker-compose up -d --build

Local Development

Prerequisites: Go 1.25+

  1. Clone the repository:

    git clone https://github.com/Cyclenerd/scrumpoker.git
    cd scrumpoker
  2. Run the application:

    go run main.go

    The server will start on http://localhost:8080.

Usage

  1. Create a Room: Go to the homepage and click "Create Room". You become the Dealer.
  2. Invite Team: Share the URL or Room ID with your team.
  3. Vote: Players select a card. Their status changes to "Voted" (card remains hidden).
  4. Reveal: The Dealer clicks "Reveal Cards" to show all estimates.
  5. Reset: The Dealer clicks "Start New Round" to clear votes for the next story.

Contributing

Contributions are welcome! Please read our Contributing Guidelines for details on our code of conduct and the process for submitting pull requests.

Credits

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!

License

This project is licensed under the AGPL v3 License. See the LICENSE file for details.

About

πŸƒ Lightweight, real-time estimation tool for Agile teams (inspired by Balatro)

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Contributors