GSoC coding period has started since last week. During the community bonding period and coding period last week, I spent my time to define the specification for the project. At the beginning of the community period, I posted a QEP (QGIS Enhancement Proposal) here to get feedback from the community. The idea of sharing resources was to have a symbology store (symbology being symbol, style, and SVG). So user should be able to browse those resources in QGIS and download it as an item. Having thought that the idea won't change that much, I started to work a bit on the server side on the deployment stuffs with docker and authentication part. This was not a good idea though as later we decided to change the concept.
Richard and Tim came up with an idea to use git as the platform for the repositories as we already have resources lying around in github repositories and Richard thinks that it's too much for a GSoC job to implement the backend stuffs and the tool itself in QGIS. We had a skype chat and I spent a day to just think about it and started to make a new documentation to put my thoughts about it.
We discussed about the concept and the more we discussed the bigger the scope of the project is. Until just tomorrow, we haven't really decided on the scope that I should implement. Lucky for me that QGIS hackfest also started last week. I attended the hackfest to discuss this with my mentors (Ale, Anita), Richard, Tim, and others as well who are interested on this project. These are general scope of the project:
The tool should be able to retrieve collections from the remote repository. Collection is a set of resources (SVGs, Symbols, styles, colorramps, etc) that belongs together that can be used to create a coherent map design. We also define that one collection should be self-sufficient, meaning that the collection contains all the resources needed and doesn't use resources from other collections. This is the highest priority of the GSoC. We will also create an official collections repository as a default.
After downloading collections, the tool should import the downloaded collections based on its type so that QGIS users can use the collections right away (for now Symbol and SVG are the priority)
Discovering Available Repositories
So as users can make their collection repositories on their own, there needs to be a way for the tools to know the available repositories out there to suggest users when they register a repository source in their QGIS. The simplest way is that we make a text file in the official repository and ask people to make a PR if they want their collections suggested on the tools. A better one is to make a web service so users can register their repositories there.
It's nice for users if they can manage the metadata easily before they share the repository so the metadata is defined correctly. But this is not a high priority as users can define the metadata manually.
It would be nice for users to be able to share their local repository to the git platform from the tools. This is not a high priority as we think that it would take time as we don't want to restrict ourselves only to Github.
Managing Local Repository
Before sharing repositories, it would be cool if users can add stuffs (reminding the dependencies if it's not there) or remove stuffs (again telling the users if it's used by other resources). We agreed that this is not a high priority during this GSoC.
If you want to know more details, you can see the doc here
This is my first hackfest experience. There are a lot of interesting stuffs the developers are working on (Martin creating a debugging plugin for plugin, Matthias' work on testing framework so that plugin developers don't need to mock things up for their tests, Sandro Mani developing a 'version' of QGIS with super nice UI/UX, and so on so forth). Ale and I also managed to deploy the plugin site with the new user map that had been in the PR lists for quite some time. I didn't manage to look at my PR again for dockerizing the deployment though so that Ale or Tim can deploy it.
These are some photos taken from the hackfest