https://github.com/rueetschli/poker-planning
Ein einfaches, webbasiertes Planning-Poker-Tool für dein agiles Team. Du kannst Räume ohne Datenbank erstellen, User-Stories schätzen, verschiedene Kartensets (Fibonacci, T-Shirt, Spielkarten) nutzen, Karten aufdecken und direkt neue Runden oder User-Stories starten.
https://github.com/rueetschli/poker-planning
estimation no-database planning-poker scrum
Last synced: about 1 month ago
JSON representation
Ein einfaches, webbasiertes Planning-Poker-Tool für dein agiles Team. Du kannst Räume ohne Datenbank erstellen, User-Stories schätzen, verschiedene Kartensets (Fibonacci, T-Shirt, Spielkarten) nutzen, Karten aufdecken und direkt neue Runden oder User-Stories starten.
- Host: GitHub
- URL: https://github.com/rueetschli/poker-planning
- Owner: rueetschli
- Created: 2024-12-19T13:55:34.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-07T11:32:06.000Z (over 1 year ago)
- Last Synced: 2025-02-07T12:28:18.232Z (over 1 year ago)
- Topics: estimation, no-database, planning-poker, scrum
- Language: JavaScript
- Homepage: https://pp.rueetschli.dev/
- Size: 50.8 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

# Poker Planning Tool
Ein einfaches Online-Poker-Planning-Tool, welches ohne Installation von Datenbanken oder zusätzlicher Software auf einfachem Webhosting läuft.
## Was ist Poker Planning?
Ich habe darüber einen Blogpost erfasst: [Erfahre alles über Poker Planning – Den Sinn, die Herausforderungen und den Ablauf](https://www.rueetschli.net/p/planning-poker-aufwandsschaetzung)
Oder teste Poker-Planning gleich hier auf meiner Dev-Umgebung: https://pp.rueetschli.dev/
## Features
- **Raum erstellen:**
Legen Sie einen Raumnamen und eine Schätz-Art (Fibonacci, T-Shirt-Grössen, T-Shirt mit Kaffee, Spielkarten) fest.
- **Raum betreten:**
Geben Sie Ihren Namen ein oder lassen Sie ihn sich aus einem vorherigen Besuch merken (über Cookie und LocalStorage).
- **Teilnehmerdarstellung:**
Alle Teilnehmenden werden als Liste mit Avataren (Initiale) angezeigt. Es ist ersichtlich, wer bereits eine Karte gelegt hat.
- **Kartenwahl:**
Wählen Sie eine Karte aus einem vorgegebenen Set. Die Karten werden verdeckt gehalten, bis alle gewählt haben.
- **Karten aufdecken:**
Ein Klick auf "Karten aufdecken" enthüllt alle gewählten Karten. Danach können Sie eine neue Runde innerhalb derselben User-Story starten oder direkt mit einer neuen User-Story fortfahren.
- **Neue Runde vs. Neue User-Story:**
- **Neue Runde:** Die Historie (Rundenverlauf) wird beibehalten, um unterschiedliche Schätzrunden für dieselbe Story zu verfolgen.
- **Neue User-Story:** Setzt alles zurück und leert den Verlauf, um eine neue Story-Schätzung zu beginnen.
- **Einigungserkennung:**
Wenn alle Teilnehmenden die gleiche Schätzung abgegeben haben, wird nur noch "Neue User-Story" angeboten, um direkt zur nächsten Story zu wechseln.
- **Statistiken und Verlauf:**
Nach dem Aufdecken werden der Durchschnitt und der Median (für numerische Werte) berechnet. Nicht-numerische Werte werden als Häufigkeiten angezeigt.
Ein Verlauf des Schätzungsdurchschnitts pro Runde wird mittels [Chart.js](https://www.chartjs.org/) als Liniendiagramm dargestellt.
- **Timer:**
Ein Timer kann pro Runde gesetzt werden, um die Schätzungszeit zu begrenzen. Dieser wird serverseitig gespeichert und ist für alle sichtbar.
- **Persistenz:**
Die Daten werden in einer JSON-Datei (rooms.json) auf dem Server gespeichert. Kein Datenbank-Setup nötig.
Alte Räume können mittels Cronjob automatisch bereinigt werden, um das System sauber zu halten.
## Technische Voraussetzungen
- **Server:** PHP-fähiges Shared Webhosting (kein Datenbank-Zwang).
- **Client:** Moderner Browser mit aktiviertem JavaScript.
- **Keine zusätzliche Software:** Nur PHP, JS, CSS und eine JSON-Datei als Datenablage.
## Installation
1. Code in ein Webverzeichnis hochladen.
2. Schreibrechte auf `backend/rooms.json` sicherstellen (CHMOD 666 o.ä., je nach Hoster).
3. Aufrufen per `https://yourdomain.tld/?room=xyz` oder Start über die Startseite ohne Parameter.
## Optional: Cronjob zur Bereinigung
Ein DELETE-Request an `backend/api.php` löscht alte Räume, die älter als 48 Stunden sind. Ein Cronjob könnte beispielsweise alle 24 Stunden diesen DELETE-Request ausführen.
Beispiel (mit `curl`):
`curl -X DELETE https://yourdomain.tld/backend/api.php`
## Quellen / Libraries
- **QRCode:** [qrcodejs](https://github.com/davidshimjs/qrcodejs) für das Erstellen des QR-Codes zum einfachen Teilen des Raum-Links.
- **Chart.js:** [Chart.js](https://www.chartjs.org/) für die Visualisierung des Rundenverlaufs.
Beides wird via CDN geladen, keine Registrierung oder Installation erforderlich.
