My GSoC ’21 Journey: Week 7
This week, I started work on improving team management inside projects in the web application. Work on it was partially done during GSoC ’20, and I decided to refine it this summer by implementing a more detailed team structure, better division of tasks, and role-based access control.
If you’re new to my blogs, check out the previous ones to better understand what I’m doing.
Week 1: Migrating to Flutter 2.0 and implementing backend service selection
Week 2: Implementing project activity tracking
Week 3: Improving team management
Week 4: Building a team-wise chat system
Implementation
I worked on team management in the mobile and backend section of the project in the 3rd of GSoC itself. You can read about its details in my Week 3 blog here.
All I had to do this week was to implement those changes in the web application that I did in the mobile application back then. That includes -
- Implementing the functionality to view the details of a team (members, recent activity, etc)
- Implementing the functionality to create/edit/delete a team
- Implementing the functionality to add/remove members from/to a team
- Adding role-based access control i.e. specific actions within a project can only be done by members with a suitable role
For example - models can be added/deleted/edited only by members who have admin or models role
and some other minor changes.
Challenges Faced
While I had made contributions to my project before GSoC, they were mostly limited to the mobile and backend sections. So, the frontend codebase was very unfamiliar to me. Plus, the codebase used exclusively class-based components, while I had worked mostly with functional components before.
So while getting familiar with the codebase provided to be quite difficult initially, it eventually turned out to be a great learning experience, as I got to explore various new concepts such as HOCs, using redux with it, etc.
Signing Off
The work I’ve done this week can be seen in the PR provided below:
#613 — [Frontend] Improved Team Management
Next week, I’ll move on to implementing activity tracking inside projects in the web application! Hope you give it a read too. Until then, stay safe, and may the source be with you! :)