Estimate tasks easily with a beautiful, real-time React Application powered by Firebase!
- βοΈ React.js - react.dev
- π¨ Sass - sass-lang.com
- π₯ Firebase Realtime Database - firebase.google.com
- π¦ Webpack - webpack.js.org
- πͺ js-cookie - User preferences management
- π 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
- π 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
- π Multi-language Support - English & Polish
- πͺ Persistent Settings - Preferences saved in cookies
- π± Desktop-optimized (limited mobile support)
- π Real-time UI updates across all connected clients
- πΎ Cookie-based user preferences (theme, language)
- π Built as SPA (Single-Page Application)
- βοΈ Optimized production builds with Webpack
The application uses Firebase Realtime Database to synchronize all actions instantly across all participants:
- When someone joins β everyone sees it
- When someone votes β vote count updates live
- When cards are revealed β results appear simultaneously for all users
User preferences are stored locally using cookies:
{
"color": "blue", // Selected theme
"language": "en" // Selected language
}These settings persist across sessions (365 days) for a personalized experience.
Main View:
Manu:
Estimation Session:
- Node.js & npm (v14 or higher)
git clone https://github.com/damianczer/scrum-poker.git
cd scrum-poker/application
npm installnpm start- The app runs on http://localhost:3000/
- Hot reload enabled for development
- If port 3000 is busy, you'll see a message in the console
npm run build- Generates optimized files in
dist/folder - Minified & compressed for maximum performance
- Ready to deploy to any static hosting
- Enter your username on the login screen
- Create a new session or join existing with a session ID
- Share the session link with your team
- Discuss the task with your team
- Select a card with your estimate (votes are hidden)
- Wait for everyone to vote (live counter shows progress)
- Reveal cards when ready
- View results: individual estimates + calculated average
- Reset for the next task
- Click the βοΈ Settings icon in the footer
- Change theme from 5 available colors
- Switch language between English and Polish
- Settings are automatically saved
Try it here: https://www.damianczerwinski.pl/scrum-poker/
scrum-poker/
βββ application/
β βββ src/
β β βββ components/ # React components
β β βββ styles/ # Sass stylesheets
β β βββ translations/ # i18n files
β β βββ index.js # Entry point
β βββ public/
β β βββ index.html # HTML template
β βββ webpack.config.js # Webpack configuration
β βββ package.json # Dependencies
βββ README.md
To use your own Firebase instance:
- Create a Firebase project at console.firebase.google.com
- Enable Realtime Database
- Add your config to the application
- Update security rules for anonymous access
- π Found a bug? Open an issue
- π¬ Have a feature request? Start a discussion
- π€ Want to contribute? Pull requests are welcome!
MIT License - feel free to use this project for your team!
- Built with β€οΈ for Agile teams
- Inspired by Planning Poker methodology
- Powered by modern web technologies
"In Scrum we trust, in estimates we discuss!" π
Star β this repo if you find it useful!
