Week 2:Learning how to work together

This week I was super excited to start coding, and I really enjoyed working in a group. In my previous computer science classes I have not had as many opportunities as I would have liked to collaborate on projects. Even when I did work with others we did not use formal channels liked Github and Slack. Keeping a live log made the process so much simpler and it helped us come up with and delegate the tasks of our project efficiently. Over the past week my group and I have been developing a Firefox Browser Extension that simulates a coin flip and a dice roll. Today (February 9th) we just finished up the backend and in the next few days hope to add finishing touches to the design.

I helped set up the project by creating the files we would need, adding an icon, the appropriate images and also implementing a very simple coin flip to get the project started. In the beginning the coin flip was 2 images (heads and tails) and it was controlled by a button in the extension called “flip a coin”. When that button was pressed the program would randomly generate either 1 or 2. If it was 1 the image of heads would pop up and if it was 2 the image of tails would pop up. This has evolved and now there are animations on the coin flip and dice roll that my group members implemented. I then focused on fixing bugs. For example originally when someone clicked anywhere in the extension both the coin would flip and the dice would be rolled. I changed it so that clicking on the dice would only roll the dice and clicking the coin would only flip the coin. I did this by creating two new functions and adding two separate event listeners to the coin and the dice. I now will focus on playing around with the design.

Our browser extension is just about done, we are just now focusing on the color scheme and overall design. We did not encounter too many issues when developing, because I feel like we had a very clear idea of we wanted to build and the type of contributions we wanted to make. We will be prepared to present our final product on Wednesday. I am not too familiar with javascript, so an issue I had was just navigating the right resources online to get what I wanted the extension to do. Figuring out how to detect which element was clicked (the coin or the dice) took a bit of a while but once I found the right explanation online about event listeners it was pretty easy to implement.

Overall I think the biggest thing I took away from working on this project was how to work with a team efficiently using GitHub and Slack. Github can be a very daunting tool and while I have used it in the past I would not say I am an expert. With this particular project, using GitHub was pretty straightforward as we did not run into any merge conflicts. The main reason for that is we all knew exactly what we needed to contribute and did not work on the same things at the same time. Keeping a live log definitely helped us navigate the project and I will be sure to use this method of communication for future projects.

Written before or on February 10, 2020