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.
Confirmed Mentor: Tassia
Confirmed co-mentors: Terceiro
How to contact the mentor: <tassia|terceiro> at debian.org
Deliverables of the project: Integration of AppRecommender with graphical package managers (ideally, at least gnome-software and apper).
Desirable skills: The student must have a background on python and recommender systems.
What the intern will learn: The intern will learn about data science and text manipulation, while also making it easier for users to discover new useful packages that attend their needs.
Name: Lucas Albuquerque Medeiros de Moura
Background: I am a Software Engineering student with an interest in free software. I have started to contribute with free software projects at the beginning of 2015, when I started working on an university project that aims to disseminate the use of free software in the Brazilian government. Since them, I have contributed with different free software applications, such as a perl binding for clang, called p5-clang and supporting the implementation of python algorithms for the book Artificial Intelligence: A modern Approach. The projects that I have participated helped me to develop some background on C++, python and a little knowledge of perl and ruby.
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 title: Integrate AppRecommender into a graphical package manager
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
Benefits to Debian: Make AppRecommender available to more users, helping them on finding new useful packages for their system.
Deliverables: Integration of AppRecommender with at least gnome-software and apper.
Project schedule: Since the task are kind of generic, estimate the exact time needed to complete them can be difficult. Therefore, the planning bellow is high level and will be further discussed with the project’s mentor and updated accordingly.
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)
Exams and other commitments: I'll present my bachelor thesis at the end of June. Therefore I will maybe need a couple of days to create my presentation and prepare for it.
My previous Debian contributions : I have recently helped ruby team on fixing and upgrading some package. Currently, I have 17 sponsored packages.
Why Debian?: I am a Debian user for almost 2 years and I want to contribute with it in area that I am curious about, data science. Furthermore, Debian also provides a great way to learn with the help of an active community and to see your work being used by other people.
Are you applying for other projects in SoC?: No.