Skip to content

Enkelena/free-software-habits

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GSOC18

Free Software Habits

screen shot 2018-07-20 at 18 21 10

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.

Implementation

Mozilla API (Extension <> web-browser API)

Json Data file ( Proof of concept software list)
JSON file

Code Logic (Select and display alternatives to the user, based on the active website):


  • 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.

  • Web-page

  • 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.

Project management

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.

kanban project

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).

Reports

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

Work to do

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.

Product on Salsa.Debian

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.

Guide to new contributors

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.

Adding alternatives to non-free apps

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

Debug the extension

  • Clone the repo:
  1. git clone https://github.com/Enkelena/free-software-habits.git
  • Open Firefox:
  1. Type about:debugging in your address bar to bring up the add-ons page.
  2. Click the Load Temporary Add-on button, navigate to the build/manifest.json file, and "Open".

Reach out

I'm available either on irc.debian.org (#debian-outreach, nickname: EnkelenaH) or through the contacts available on the debian wiki.

Other useful links:

Debian's SummerOfCode2018 Project page

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages