Differences between revisions 2 and 3
Revision 2 as of 2018-04-30 08:07:03
Size: 4786
Editor: DanielPocock
Revision 3 as of 2018-04-30 08:14:16
Size: 4901
Editor: DanielPocock
Deletions are marked like this. Additions are marked like this.
Line 64: Line 64:
 * per-community: Debian (Salsa username, wiki username), Fedora (FAS username), Drupal (username for drupal.org)


Project status

In 2018 it is being developed as a Google Summer of Code project

What is it?

A GUI, distributed as a package, that the user can run on their computer to help them rapidly set up a development environment for contributing to free software projects.

Which free software projects?

While the main goal is to support contributors to Debian, the Wizard is generalized to support contributors to other communities, for example:

  • Debian
  • Ubuntu
  • Fedora
  • Drupal
  • Mozilla
  • and any project that uses well known tools like Github or Gitlab

Audience, potential users

  • a student who wants to make a contribution before applying for Google Summer of Code

  • a prospective intern who wants to make a contribution before applying for Outreachy

  • a developer in a company who has decided they want to distribute their software through GNU/Linux distributions
  • anybody else who wants to become part of the free software community

Architecture notes

Libraries and frameworks in use

Data model

Static data for the application, could be stored in XML or JSON and updates made available over the web and in each new version of the package.

  • List of free software communities (e.g. Debian, Ubuntu)
  • List of regions
  • List of skills (e.g. C++, Java)
  • List of themes (e.g. game programming, network programming, scientific applications)
  • List of supported DNS providers
  • List of supported email providers
  • list of activities related to a community
    • mailing lists to join
    • account creations (e.g. Debian wiki, Salsa, SSO)
    • IRC channels to join
    • sources of event data
    • suggested packages and tools for contributing to this community
    • opportunities related to this community (e.g. Outreachy, GSoC, travel grants)
    • how to create a local event for this community
    • how to find a place to make a contribution in this community, help wanted, etc

User-specific data:

  • domain name
  • email address
  • IRC account preferences, (e.g. preferred nick)
  • per-community: Debian (Salsa username, wiki username), Fedora (FAS username), Drupal (username for drupal.org)

Workflow (high-level overview)

  • As user for preferred languages, do they know English as it is often the default
  • ask user to select communities they would like to participate in from a list
  • ask user for their region/country
  • ask user for their preferred topics/themes
  • ask user about their preferred skills
  • ask user for a profile photo, help them create a photo with their webcam
  • ask user if they already have a domain name or if they want to create one
  • ask user if they already have an email address or if they want to create one under their domain
  • check if the user has an SSH key already, if not, help them create one
  • check if the user has a PGP key already, if not, help them create one, send to keyservers


  • domain name created
  • email account created
    • with filters configured for the user
  • blog created
    • syndicated to planet sites?
  • Github account created
  • Per-community accounts created (e.g. Debian wiki, Debian Salsa)
  • Debian wiki personal home page created
  • IRC nick registered
  • IRC client configuration file generated with IRC nick in it
  • SSH key created
    • submitted to Github, Salsa, ...
  • PGP key created
    • sent to keyservers
    • fingerprint slips printed, PDF generated
  • Thunderbird and Lightning configured
    • IMAP
      • labels
    • Enigmail
    • Lightning polling events and tasks for the chosen communities
    • ?CardBook plugin for contacts

  • packages installed (e.g. dev tools)
  • various settings in $HOME (e.g. ~/.git/config)
  • some first commits and pull requests

Blog creation

  • home page
    • recent blogs
    • cover photo
    • tag line
  • first blog post
    • picture
    • 100-200 words with a link to something
  • links
    • communities
    • other profiles (e.g. Debian wiki page, Debian maintainer page)
  • bio
    • location
    • personalized community links (links to contributions)
    • education / qualifications
    • profession/employer
    • photo
    • contact: email, IRC, XMPP, Ring, PGP fingerprint, WebRTC link
  • RSS feed URLs by tag
  • search box?

Related projects and links