An open API service indexing awesome lists of open source software.

https://github.com/damianczer/scrum-poker

React scrum poker application - estimate tasks. A tool for every agile team. I personally use on a daily basis.
https://github.com/damianczer/scrum-poker

firebase javascript nodejs react sass webpack

Last synced: 3 months ago
JSON representation

React scrum poker application - estimate tasks. A tool for every agile team. I personally use on a daily basis.

Awesome Lists containing this project

README

          

# Scrum Poker

*Real-time agile estimation tool*

[![GitHub stars](https://img.shields.io/github/stars/damianczer/Scrum-Poker?style=for-the-badge&color=gold)](https://github.com/damianczer/Scrum-Poker/stargazers)
[![GitHub watchers](https://img.shields.io/github/watchers/damianczer/Scrum-Poker?style=for-the-badge&color=blue)](https://github.com/damianczer/Scrum-Poker/watchers)
[![GitHub issues](https://img.shields.io/github/issues/damianczer/Scrum-Poker?style=for-the-badge&color=red)](https://github.com/damianczer/Scrum-Poker/issues)
[![Live Demo](https://img.shields.io/badge/Live-Demo-brightgreen?style=for-the-badge)](https://www.damianczerwinski.pl/scrum-poker/)

| Technology | Version | Purpose |
|------------|---------|---------|
| ![JavaScript](https://img.shields.io/badge/JavaScript-ES6+-F7DF1E?style=flat-square&logo=javascript) | `ES6+` | Programming language |
| ![React](https://img.shields.io/badge/React-19.2.3-61DAFB?style=flat-square&logo=react) | `19.2.3` | Modern UI Framework |
| ![Sass](https://img.shields.io/badge/Sass-1.97.1-CC6699?style=flat-square&logo=sass) | `1.97.1` | CSS preprocessor |
| ![Firebase](https://img.shields.io/badge/Firebase-12.7.0-FFCA28?style=flat-square&logo=firebase) | `12.7.0` | Real-time database |
| ![Webpack](https://img.shields.io/badge/Webpack-5.104.1-8DD6F9?style=flat-square&logo=webpack) | `5.104.1` | Module bundler |
| ![js-cookie](https://img.shields.io/badge/js--cookie-3.0.5-F7DF1E?style=flat-square&logo=javascript) | `3.0.5` | User preferences management |

Estimate tasks easily with a beautiful, real-time React Application powered by Firebase for Agile teams using Planning Poker methodology.

image

image


**Key Features & Capabilities:**

- Anonymous Sessions - No registration required, just enter your name.
- Unique Session IDs - Create or join sessions with shareable links.
- Hidden Voting - Votes are concealed until reveal.
- Live Participants - See who's in the session and who voted in real-time.
- Smart Calculations - Automatic average and individual estimates.
- Real-time Sync - Powered by Firebase Realtime Database.
- Theme Selection - Choose from 5 color themes (Green, Blue, Turquoise, Grey, Orange).
- Dark/Light Mode - Toggle between dark and light themes.
- Multi-language Support - English & Polish translations.
- Persistent Settings - Preferences saved in cookies.
- PWA Support - Installable as Progressive Web App with offline caching.
- WCAG Accessibility - Screen reader support, keyboard navigation, focus management.
- Responsive Design - Optimized for desktop and mobile devices.
- 100% Real-time - all actions synchronized instantly across all participants.

## πŸ“ Project Architecture

```
Scrum-Poker/
β”œβ”€β”€ application/
β”‚ β”œβ”€β”€ public/
β”‚ β”‚ β”œβ”€β”€ assets/ # Static assets (icons, images)
β”‚ β”‚ β”œβ”€β”€ index.html # HTML entry point
β”‚ β”‚ β”œβ”€β”€ manifest.json # PWA manifest
β”‚ β”‚ └── sw.js # Service Worker
β”‚ β”‚
β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”œβ”€β”€ components/
β”‚ β”‚ β”‚ β”œβ”€β”€ common/ # Reusable UI components
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Button.jsx # Button component
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ ErrorBoundary.jsx # Error boundary wrapper
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ FormInput.jsx # Form input component
β”‚ β”‚ β”‚ β”‚ └── SessionForm.jsx # Session form wrapper
β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β”œβ”€β”€ BackgroundIcons.jsx # Background poker icons
β”‚ β”‚ β”‚ β”œβ”€β”€ CardSelection.jsx # Card voting component
β”‚ β”‚ β”‚ β”œβ”€β”€ Content.jsx # Main content controller
β”‚ β”‚ β”‚ β”œβ”€β”€ CreateSessionForm.jsx # Create session form
β”‚ β”‚ β”‚ β”œβ”€β”€ Footer.jsx # Footer with settings
β”‚ β”‚ β”‚ β”œβ”€β”€ GameView.jsx # Game view wrapper
β”‚ β”‚ β”‚ β”œβ”€β”€ Header.jsx # Application header
β”‚ β”‚ β”‚ β”œβ”€β”€ HelpModal.jsx # Help modal
β”‚ β”‚ β”‚ β”œβ”€β”€ JoinSessionForm.jsx # Join session form
β”‚ β”‚ β”‚ β”œβ”€β”€ LegalModal.jsx # Legal/privacy modal
β”‚ β”‚ β”‚ β”œβ”€β”€ LobbyView.jsx # Lobby view wrapper
β”‚ β”‚ β”‚ β”œβ”€β”€ Modal.jsx # Modal dialogs
β”‚ β”‚ β”‚ β”œβ”€β”€ SessionActions.jsx # Session action buttons
β”‚ β”‚ β”‚ β”œβ”€β”€ SessionTimer.jsx # Session timer component
β”‚ β”‚ β”‚ β”œβ”€β”€ ShareModal.jsx # Share session modal
β”‚ β”‚ β”‚ β”œβ”€β”€ UserList.jsx # Live participants list
β”‚ β”‚ β”‚ └── UsernameForm.jsx # Username input form
β”‚ β”‚ β”‚
β”‚ β”‚ β”œβ”€β”€ constants/
β”‚ β”‚ β”‚ β”œβ”€β”€ config.js # Application configuration
β”‚ β”‚ β”‚ └── constants.js # Application constants
β”‚ β”‚ β”‚
β”‚ β”‚ β”œβ”€β”€ context/
β”‚ β”‚ β”‚ └── AppContext.jsx # React context provider
β”‚ β”‚ β”‚
β”‚ β”‚ β”œβ”€β”€ hooks/
β”‚ β”‚ β”‚ β”œβ”€β”€ useDebounce.js # Debounce hook
β”‚ β”‚ β”‚ β”œβ”€β”€ useFocusTrap.js # Focus trap hook (accessibility)
β”‚ β”‚ β”‚ β”œβ”€β”€ useSession.js # Session management hook
β”‚ β”‚ β”‚ β”œβ”€β”€ useSettings.js # Settings management hook
β”‚ β”‚ β”‚ └── useUrlSession.js # URL session params hook
β”‚ β”‚ β”‚
β”‚ β”‚ β”œβ”€β”€ services/
β”‚ β”‚ β”‚ β”œβ”€β”€ firebaseService.js # Firebase database operations
β”‚ β”‚ β”‚ └── index.js # Services export
β”‚ β”‚ β”‚
β”‚ β”‚ β”œβ”€β”€ styles/
β”‚ β”‚ β”‚ β”œβ”€β”€ _backgroundIcons.scss # Background icons styles
β”‚ β”‚ β”‚ β”œβ”€β”€ _body.scss # Body styles
β”‚ β”‚ β”‚ β”œβ”€β”€ _cardSelection.scss # Card selection styles
β”‚ β”‚ β”‚ β”œβ”€β”€ _content.scss # Content area styles
β”‚ β”‚ β”‚ β”œβ”€β”€ _errorBoundary.scss # Error boundary styles
β”‚ β”‚ β”‚ β”œβ”€β”€ _footer.scss # Footer styles
β”‚ β”‚ β”‚ β”œβ”€β”€ _global.scss # Global styles & variables
β”‚ β”‚ β”‚ β”œβ”€β”€ _header.scss # Header styles
β”‚ β”‚ β”‚ β”œβ”€β”€ _helpModal.scss # Help modal styles
β”‚ β”‚ β”‚ β”œβ”€β”€ _legalModal.scss # Legal modal styles
β”‚ β”‚ β”‚ β”œβ”€β”€ _modal.scss # Modal styles
β”‚ β”‚ β”‚ β”œβ”€β”€ _shareModal.scss # Share modal styles
β”‚ β”‚ β”‚ β”œβ”€β”€ _userList.scss # User list styles
β”‚ β”‚ β”‚ └── _variables.scss # SCSS variables
β”‚ β”‚ β”‚
β”‚ β”‚ β”œβ”€β”€ translations/
β”‚ β”‚ β”‚ β”œβ”€β”€ en.json # English translations
β”‚ β”‚ β”‚ └── pl.json # Polish translations
β”‚ β”‚ β”‚
β”‚ β”‚ β”œβ”€β”€ utils/
β”‚ β”‚ β”‚ β”œβ”€β”€ cardUtils.js # Card utility functions
β”‚ β”‚ β”‚ β”œβ”€β”€ i18n.js # Internationalization utility
β”‚ β”‚ β”‚ β”œβ”€β”€ icons.js # FontAwesome icons
β”‚ β”‚ β”‚ β”œβ”€β”€ logger.js # Logging utility
β”‚ β”‚ β”‚ β”œβ”€β”€ serviceWorker.js # Service Worker registration
β”‚ β”‚ β”‚ └── validation.js # Validation functions
β”‚ β”‚ β”‚
β”‚ β”‚ β”œβ”€β”€ App.jsx # Root component
β”‚ β”‚ β”œβ”€β”€ App.scss # Main application styles
β”‚ β”‚ β”œβ”€β”€ firebaseConfig.js # Firebase configuration
β”‚ β”‚ └── index.js # React DOM rendering entry point
β”‚ β”‚
β”‚ β”œβ”€β”€ package.json # Dependencies & scripts
β”‚ └── webpack.config.js # Webpack build configuration
β”‚
β”œβ”€β”€ LICENSE # MIT License
└── README.md # Project documentation
```

## βš’οΈ Installation & Setup

### Prerequisites

```bash
- Node.js 14.0.0 or higher
- npm 6.0.0 or higher (or yarn/pnpm equivalent)
- Modern web browser (Chrome, Firefox, Safari, Edge)
- Firebase account (for your own instance)
```

### Quick Start

```bash
# 1️⃣ Clone the repository
git clone https://github.com/damianczer/Scrum-Poker.git

# 2️⃣ Navigate to project directory
cd Scrum-Poker/application

# 3️⃣ Install dependencies
npm install

# 4️⃣ Start development server
npm start

# πŸŽ‰ Application will open at http://localhost:3000
```

### Build for Production

```bash
# Create optimized production build
npm run build

# Production files will be in the 'dist' folder
# Deploy the entire dist folder to your web hosting
```

### Additional Commands

```bash
# Run production build
npm run deploy
```

## πŸ“œ License

```
Copyright Β© 2025 Damian CzerwiΕ„ski

This project is copyrighted and proprietary software.
All rights reserved.

Unauthorized copying, modification, distribution, or use of this software,
via any medium, is strictly prohibited without explicit written permission
from the copyright holder.

For licensing inquiries or permission requests:
πŸ“§ Email: kontakt@damianczerwinski.pl
🌐 Web: https://www.damianczerwinski.pl
```




**Made with ❀️ and β˜• by Damian CzerwiΕ„ski**

*Building beautiful, functional web experiences one component at a time*