Free / Open source Scrum/Agile Planning Poker Web App to estimate user stories for the Agile/Scrum teams. Create session and invite team members to estimate user stories efficiently. Intuitive UI/UX for voting the story points, showing team members voting status with emojis(👍 - Voting Done, 🤔 - Yet to Vote). Session Moderator has full control on revealing story points and restarting the session.
- Create new Session(Fibonacci, Short Fibonacci, TShirt size or Custom)
- Join Session
- Invite Link
- Share User story name/number with others using the board
- Session controller - Moderator can Reveal and restart the session anytime.
- Reveal - Reveal the cards for all users
- Voting status - Users Cards show voting status using emojis - 👍 - Voting Done, 🤔 - Yet to Vote
- Remove user from session
- Delete Session - Moderator can delete the session completely
- Dark Theme Support
- Multiple language support
- Mobile/Tablet screen support
- React - Frontend
- Tailwind CSS - For styling
- Firestore - Database
- Firebase - Hosting
Pre-req
- Node.js version 16.0 or higher.
- Yarn
- Java JDK version 11 or higher.(for firestore db emulator)
-
Clone the repo
git clone https://github.com/hellomuthu23/planning-poker.git
-
Run
yarn
command to install the required npm package. -
Install the Firebase CLI
RUN npm install -g firebase-tool
-
Start the firebase db emulator
npm run start:emulator
-
Copy
.env.example
file as.env
file and make sureREACT_APP_USE_FIRESTORE_EMULATOR
is set totrue
-
Run
yarn start
to start the app. -
Access the app at
http://localhost:3000
.
pre-req
- docker desktop
-
Build the app using below command. Make sure
REACT_APP_USE_FIRESTORE_EMULATOR
env variable is set to true.npm run build
-
Build docker image
docker build -t planning-poker .
-
Running the container
docker run -it -p 8080:8080 -p 3000:3000 planning-poker
-
Wait for both emulator and app to start
-
Access the app from local container using http://localhost:3000
- Keep it simple as much as possible
- Add required unit tests
- Use strong type always
- Use functional and hooks based approach for components
- Avoid adding new colors
- Use tailwind utility classes for styling the components
- Don't duplicate code and use service folder to keep non-component/shared codes
- Add timer
- Export options
- Preserve history of voting and show it in session
- Ask AI Option
- Add Semantic Release to generate changelog and release notes
- Add missing unit tests for services