Giter VIP home page Giter VIP logo

card-estimator's Introduction

Planning Poker - Made with Angular and Firebase

What is this?

At Prezi, we worked in a usual SCRUM setup that must be familiar to many software engineers — planning meetings, stand-ups, and retros. During our planning meetings, we estimated projects/cards while sitting around a table and showing hands-on the count of three. This worked well before the pandemic, but as soon as we had to move to Zoom it wasn’t so efficient anymore. It was no longer easy to tell what the consensus was and it was easy to mess up the countdown and fall victim to bias by seeing other teammates’ votes before revealing your own.

In order to have more effective planning meetings, we turned to the internet to find a tool that would allow us to have the same experience of being in the same room together. We tried several apps, and while there are excellent free solutions, they didn’t quite fit with the workflow that we were used to.

So, given that I like creating new projects and thought that making a new planning poker app would be fun, I set out to create planningpoker.live!

Learn more

I wrote an article on Firebase Developers about this app, check it out here.

Development docs

Development server

Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Contribution

This section is a work in progress.

License

This work is published on Github for educational purposes. You may not use the material for commercial purposes.

card-estimator's People

Contributors

biharygergo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

emrezdemir yatiac

card-estimator's Issues

An error occured: Firebase: Error (auth/network-request-failed).. Please try again or report this is issue.

I have built a quickie container to run/test this locally. After running the container, when trying to create a room in the webapp, I get the following error:

An error occured: Firebase: Error (auth/network-request-failed).. Please try again or report this is issue.

The browser appears to be trying to connect to the following:

http://localhost:9099/identitytoolkit.googleapis.com/v1/accounts:signUp?key=AIzaSyDcAquwdgHCtC-DUQ_-fMa0tdqUBKVi5C8

I've mapped both ports 4200 and 9099, but I don't think anything is listening on 9099. It looks like this is related to the auth emulator for Firebase (?):

connectAuthEmulator(auth, 'http://localhost:9099', {

https://github.com/biharygergo/card-estimator/blob/5c7c2316c893579c1f746d69a3c01ca510d97d7a/src/environments/environment.ts
The above suggests that emulators should be set to true, but... 🤷

Add possibility to use more cards

The maximum limit for cards is 6 at this moment. A higher limit (like 10) would be appreciated for som use-cases like bigger projects.

Better link sharing

As a user, when I copy the link of the estimation from the browser URL bar, I want people to be able to join.

Currently, the link in the URL can't be used by other people to join. The app should check if the memberId is the current user (save to localStorage?) and if not, redirect to the join the room screen.

Clear inactive users or automatically prune inactive users

Often, we have users who have to join from their phone or another device, creating duplicate users in our rooms. Having a "clear inactive users" button or a feature that hides users who haven't been active recently would make it much easier to read / understand the voting list and prevent us from having to make new rooms very frequently. Probably the easiest way to implement this would be to add a "hidden" field on users that gets unset when they submit a vote, and then let other users in the room set that field. An alternative (and maybe better) fix would be to just hide users automatically if they're not active. This could be done with a very simple "heartbeat" process that sets a lastActiveAt in the user's firebase record every few minutes, and then automatically just filtering out lastActiveAt < 30.minutes.ago users from the room display.

Draw attention of remote estimators

As an estimator, when a new round starts I want to be notified, so I don't miss the round.

People tend to drift off after a long conversation, what could the app do to refocus their attention? Sound, vibration?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.