Integrate AppRecommender into a graphical package manager

Description of the project: AppRecommender is a recommender system application for Debian packages. Considering the high number of packages that are found on Debian distributions, this project aims at helping users find the right package for their needs, without a great manual effort. AppRecommender can perform this task with three different approaches

* Content based: The recommendation is done is based on package description. Therefore, the most significant terms of the user installed packages are used to generate a recommendation.

* Collaborative: The recommendation is done by selecting package from other users with similar packages as the user running the application. This approach use data from popularuty-contest to find the users with similar packages.

* Hybrid: This strategy is a combination of both content based and collaborative approach. Its goal is to balance the weakness found on the use of single recommendation strategy

This project aims at integrating AppRecommender into graphical package managers provided by Debian. By adding this support for PackageKit, we can actually support multiple frontend package managers, such as gnome-software (GNOME) and Apper (KDE) with a single backend. This way the AppRecommender functionality will be easily avaialable for the users who can most benefit from it: novice and non-technical users.

Student Application

With that knowledege, I have decided to try to contribute with Debian as well. I have been using the distribution for almost two years, and I was interested in the community dinamics of Debian. Therefore, together with a friend, we have decided to work on our bachelor thesis with AppRecommender, a recommender system for Debian packages. With what I have learned from AppRecommender, I was also determined to join a packaging team in Debian, to learn in practice how to package and maintain an application in Debian. This has resulted in my participation on the ruby sprint this year, in the city of Curitiba, Brazil. Because of my interest on Debian and the fact that I have been working on AppRecommender since August 2015, I believe that I am fit to work on this project.

Project details: AppRecommender is a recommender system for Debian packages. Currently, this application can only be run through terminal commands. The idea of this project is to integrate it with graphical package managers, in order to reach more users.

The full idea can be seen on: https://wiki.debian.org/SummerOfCode2016/Projects/Integrate%20AppRecommender%20into%20a%20graphical%20package%20manager

1. Run PackageKit locally (1 week)

2. Create an AppRecommender Package (1 week)

3. Integrate AppRecommender with PackageKit / with tests ( 2 weeks)

4. Run and evaluate the integration with gnome-software (1 week)

5. Run and evaluate the integration with apper (1 week)

6. Get community feedback of the integration on both applications (1 week)

7. Use community feedback to improve integration (1 week)

8. Integrate AppRecommender with other possible package managers (5 weeks) *needs further study

9. Document the project and point out what can still be done (1 week)