Background

The Share community platform is a web application responsible for hosting dynamic user data of Catrobatsapp users, including more than 180 thousand projects. Besides, the platform provides various recommendations, social features, tutorials, and much more. The platform, also often referred to as Catroweb, is developed using the Php web-framework Symfony in a test-driven development. However, over the years, many components of the project became outdated and broken, leaving the project hard to maintain with low usability. The Catroweb team does its best to refactor and update every feature to increase software quality. Nevertheless, the resources are limited in the Catrobat project.

Google Summer of Code (GSoC) is a global program that matches students up with open-source, free software, and technology-related organizations to write code and get paid to do it. This GSoC project is fully dedicated to further improve the performance, code quality, and design to satisfy the requirements of customers and developers in the Catrobat/Catroweb project.

This report describes my GSoC 2020 contributions to the Catroweb project. A significant part of my work started with the research and planning aspects of the refactoring. Every pull request of other developers during this project was extensively reviewed and discussed. Apart from that, various measurements and new features have been implemented by myself.

Phase 1 - Identification of issues

Code quality:

Performance:

Design:

Phase 2 - Planning

  1. All the identified issues tickets have been created to keep track of their state in Jira. Jira is a tool to manage and monitor the development process heavily used in the Catrobat project and its agile development. Various tickets required the input of the UX-team. The UX-team is responsible for creating mock-ups and defining the workflow of a new feature. However, a part of this project was to constantly provide the UX team with extensive feedback to ensure the features are fully specified. The conversations are not publicly available. (PM, or Catrobats confluence pages)

  2. Presenting all issues in a planning game to the whole team collectively estimate the required work to implement the tickets. Besides, this provides all developers with a short overview of the topic. This way, everyone can quickly start to work on any of the defined issues. Here is the Google spreadsheet created for this process.

Phase 3 - Implementing all tickets

CodeReviews

Other members of the Catroweb team coded many of the specified issues. However, I did the code reviews. Some reviews were quick, while others, especially those for junior developers, were more extensive.

Here is the whole list of (~200) pull requests I have reviewed: Reviewed pull request newer than 2020-05-01 (Catrobat/Catroweb), Reviewed pull request newer than 2020-05-01 (Catrobat/Catroweb-API).

Coding

My created pull requests can be seen here: Only pull request newer than 2020-05-01). However, some of the pull requests were not created for GSoC, but the CI/CD system I am working on right now. Therefore, here is an explicit list of most commits that were done as a GSoC contribution.

New Features
Redesign of:
Refactor of:
Removed dead/broken/duplictaed code in:
Fixed Bugs/Issues:

Future work

The Catroweb project slowly finds itself in a stable state again. A software product will never be perfect. The goal is to find a balance between software quality and the required resources to achieve it. The following bullet points represent actions with a high return of investment. However, they were not possible to be implemented at the moment.

Currently NOT possible
Not possible in the given time frame: