Here is a summary of the tools we used to collaborate on the assignment:
-
Whatsapp for quick communication.
We used a Whatsapp group chat for quick and regular updates regarding the project progress. While Whatsapp is owned by the notorious Meta, all chats, including group chats, use E2E encryption. Thus, Meta cannot read the content of the chats. We had tried Telegram during the Assignment, but we inadvertently switched to Whatsapp as most team members were more familiar with and active on the platform.
-
Major collaboration through GitLab
Majority of our collaboration simply took place by leveraging GitLab's features. Initial results of our brainstorming were put on GitLab itself. We also uploaded meeting minutes after every meeting to GitLab. These can be found in the miscellaneous folder.
We uploaded all of our code and content for the report into the GitLab repo through periodic commits and pushes. We created and assigned issues for each team member to collaborate on tasks. Following standard collaboration practice on GitLab, each of us worked on a separate branch (that held our respective names) and created merge requests into the
development
branch. We finally merged thedevelopment
branch into themain
branch. GitLab served as a convenient tool for sharing our work. -
Zoom for videoconferencing.
We held periodic meetings on Zoom to brainstorm ideas, share updates and sync our progress, and to discuss the steps we needed to take next.
- Identify a product we want to create a privacy-sensitive version of.
- Compare existing alternatives and document findings
- Plan architecture and requirements of our chosen application
- Document the architecture and requirements
- Develop the code for the application
- Prepare for class demo
- Collate findings in report
- We ideated over Zoom and through in-person meetings after class.
- Having got the main ideas fixed, we would break them down into smaller tasks and create corresponding Gitlab issues. Each issue could be a combination of those tasks or a single task as well.
- These issues could be assigned by anyone to anyone. We did not follow any restrictive assigning policy.
- We created a
development
branch and each member of the team had a branch under their name. We intended for each member to work on their own branch till the end, after which we collated all changes in themain
branch. Periodically, we would merge to thedevelopment
to ensure our work was in sync. - Once commits were made, respective issues were closed.
- If someone had a doubt or needed help, we would reach out over Whatsapp and then schedule a Zoom meeting/meet after class based on everyone's availability.