My inspiration for this application was after a team estimation session where I noticed how manual the process of collecting and collating estimates for a task was. The aim for PokerMonday is to both gamify and quicken the estimation process. Integrating directly with Monday.com means there's no need to project managers to manually add the estimates back in to their tasks once sprint planning is complete.
What it does
PokerMonday is a tool that assists agile teams with task estimation. A project manager picks tasks from their Monday board for the team to estimate. Once picked the estimation session starts and team members can estimate on the task. After all estimates are submitted the project manager can review them and select one to save back to Monday.com
How I built it
The frontend for PokerMonday in built on ReactJS. The backend is a Python web server and the frontend uses websockets to communicate with it. The application is hosted on Amazon Web Services - using CloudFormation for infrastructure as code
Challenges I ran into
I have not used web sockets before so getting them to both initially connect and remain stable provided a challenge. This was further complicated when I started looking at hosting. AWS's Application Load Balancer has web socket support in theory, but in practice I found it unreliable. To work around this issue I swapped to a Network Load Balancer which operates at a lower layer in the OSI model (layer 4).
Accomplishments that I'm proud of
I am proud of the user interface. I think the cards are intuitive to use and have a pleasing style to them I am also happy with how the socket service turned out. Sending the complete session 'state' for the application every update means any users who join late or disconnect and reconnect can immediately participate in the estimation.
What I learned
I learned quite a bit in the hackathon. I was able to research and utilize web sockets in a production-like application. I also learned about graphql from the Monday API which I was not also unfamiliar with.
What's next for PokerMonday
There are many features I will be adding to PokerMonday after the hackathon:
- Support for multiple project managers/admins controlling the estimation session
- Update the user interface to fit in with Monday's native styling
- Build more automated deployment process for updates to the application
- Make app responsive for mobile devices