This document and github repo describes the work that has been done on developing a Firefox extension, called "Free Software Habits", for the Google Summer of Code project of Enkelena Haxhija under Debian Umbrella.
The goal as described in GSoC project proposal by Daniel Pocock for the 2018 edition, is to create more awareness of existing free software, highlight alternatives that otherwise wouldn't be known by the user and change habits into using free software.
Enkelena presented the project on DebConf'18 in Hsinchu, Taiwan Video - watch it from 16:20.
Mozilla API (Extension <> web-browser API)
Json Data file ( Proof of concept software list)
JSON file
-
Getting the URL, identify the app, search on database, display free software alternative to the user
(main-logic code: notification.js). -
To not be intrusive, notifications are shown only once per session for the current app, and the user has the ability to stop/start nofications (Stop / Start logic: normalView.js).
-
User preferences are stored under localStorage (persistent).
-
Presenting the Free Software list on a web-page that is generated by the database
(generating list to web-page: data.js) with a searchbox where the user can search and access free software links by filtering the list.
Apps and their alternatives are structured in tables, they are easily recognized. Some documentation about the project is also included along with links to the project.
- The extension is controlled by the user from the default popup (the first blue picture top right on this documentation)
From there user can stop/start extension, see the number of apps, have access to web-page with the list, send feedback.
For the managment of the project, we are using a kanban board, hosted on storm.debian.net, with weekly reviews of the tasks, create new tasks and closing existing ones.
We're also using github to create new issues based on the tasks, that can divided in smaller chunks given the complexity of the goal. Gitflow was adopted where feature branchs are created and reviewed (PR) by a peer before merged into master.
The kanban board is available online (read-only) on this link: Kanban board (read-only).
The weekly reports, containing a summary of the progress made each week, are archived on debian-outreach mailing list and available on the links below
ː | ː | ː | ː |
---|---|---|---|
report1 | report2 | report3 | report4 |
report5 | report6 | report7 | report8 |
report9 | report10 | report11 | report12 |
The goals of this project as proposed earlier, proof-of-concept minimum viable product, are all fully completed. This extension is available to be used and tested as a Firefox add-on. The current code can be used as base to develop and extend the concept further. We're expecting other additional improvements to be accomplished after GSoC.
Currently, the list of recommended software is being hosted on github in a JSON formatted file. The extension downloads the file from GitHub and filters the list to show the user the specific alternatives to the currently visited app. In the roadmap is the creation of a server + API that will allow the extension to make a call and receive the list of alternative apps. Either integrating with an existing service that returns a list open source software, or maintaining our own database.
The cards in backlog lane in the Kanban board show the work to be done and future roadmap.
A work product package was created on debian.salsa.org for archive purposes, containing project info and a zip file with this repo. Package on Salsa
We've included a guide for new contributors, with instructions on how to test and debug the extension.
Code contributions are welcome! Please commit any pull requests against the master
branch. Learn more about how to contribute by reading the Github Flow guide.
People who are not developers can contribute to the project also. On the JSON file you can add apps and their alternatives as it is done there, then the extension will immediately use your suggestions for its puprose and also it immediately generates to the web-page
- Clone the repo:
git clone https://github.com/Enkelena/free-software-habits.git
- Open Firefox:
- Type
about:debugging
in your address bar to bring up the add-ons page. - Click the
Load Temporary Add-on
button, navigate to thebuild/manifest.json
file, and "Open".
I'm available either on irc.debian.org (#debian-outreach, nickname: EnkelenaH) or through the contacts available on the debian wiki.