**Introduction**
//Krita// is a free and open source software that provides a great opportunity to designers, to draw and design their art in a cost effective and in a reliable manner which supports the creation of images from scratch.
The project is aimed at improving the user capability via integrating with share.krita.org, a website used by designers to host their work like drawings, animations, paintings, fonts, brush packs, and several other bundles. The implementation of the project would be focussed on two main tasks:
- Integrate share.krita.org with Krita using the Libattica framework and create a GUI for sharing.
- Improving the support for creating/editing bundles with better GUI.
Sharing with share.krita.org using GHNS or the Get Hot New Stuff was supported by the Krita in the previous versions, whose support has now disappeared. The primary tasks would aim at providing the user capability to download/upload resources from/to share.krita.org and later on use it to publish images directly. What’s new from the existed GHNS is that we are creating a new and better design from scratch and getting it implemented using Libattica.
Even though Krita offers basic support for creating and editing bundles, it does not work well, since some of the features are broken. To improve on this would be the second part of the project where we can improve the support for creating and editing bundles.
**Project Goals**
The following are the two major goals of the project:
# Integrate share.krita.org. Here, I intend to integrate share.krita.org with Krita using the KDE API LibAttica and later on add a GUI user interface for the same. While the LibAttica library implements collaborative data sharing for applications, this framework can be used for downloading and sharing additional application data. We could make use of provider class function to do the user authentication as we are dealing with upload functionality, keeping search parameters and much more.
**User Cases** after integration:
- User can open the collaboration services from the resource manager to download the bundles uploaded by other users based on constraints.
- If a user has the user account linked in with Krita, then he could upload his data of brushes, designs, animations etc to share.krita.org and publish images as well.
# The second task aims at improving the support for creating and editing bundles. This bundles could comprise of things such as brush packs, ink packs, gradients, patterns and even font packs. As this part is not well maintained, I would work with the UI/UX team to implement a better GUI design for the whole bundle resource management. Also, with the existing Manage Resource functionality, it should get support in terms of fixing the existing bugs as well.
**User Cases** after integration:
- Implementation of a GUI could provide a user-friendly design to create bundles with the existing features more efficiently.
- User can create and edit the bundles in the resource manager.
- Implementation of the search widget inside the Resource Manager can enable the user with better accessibility of bundles.
**Implementation Details**
# Collaborative sharing using Attica.
**Description**: Since Krita no longer has the functionality to directly download items from the share.krita.org, the first task here is to implement collaborative sharing with Libattica within the resource Manager providing the provision for downloading resources. Hence, this deals with creating a user interface to provide the user with the feature of download their preferred resource from krita.share.org.
//File-Sharing//: Libattica is an open collaborative service which supports communication between an application and a web application.
Before we get started, we need to link and have Attica package already inside the system. So that we will have to make changes with CmakeList.txt.