Skip to content

Contributing

Alvin Schiller edited this page Mar 25, 2024 · 1 revision

Phoniebox consists of code, a lively community and inspiring designs

A Phoniebox...

  1. ... is easy to install.
  2. ... out of the box plays local audio files and can be controlled with RFID cards and through a web app.
  3. ... is not complete until fitted into a unique, jaw-dropping and eye-opening box. Everyone builds an original.

How the Phoniebox community works

  1. Phoniebox should inspire people to tinker with technology.
  2. Contributors are welcome!
    • more than code: feature requests, filing bugs, engaging in the discussion and testing are all contributions.
    • testing is a selfless and noble form of contribution.
  3. The Phoniebox code lives in one place.
    • making the future of Phoniebox independent from individual developers.
    • contributors come and go. And that's ok.
  4. The discussion around the future of Phoniebox is open to all.
  5. Sharing responsibility.
    • while the project is comparably small, not one person understands all the code there is.
    • peer reviews and merging pull requests are responsibilities to be shared with the community.
    • peer support keeps the project alive (and is working very well, thanks to the community).
  6. Contributing means great responsibility: major rewrites and refactoring are only taken on if the one or more developers plan to see it through to the bitter end...

The Phoniebox code base

  1. The Phoniebox code base is free and open (currently available on github).
    • Open meaning:
    1. the source code can be accessed and read by anyone who choses to do so.
    2. the code base is open to contributions by other developers to improve stability and add features.
  2. the code base is open to interface with new hard- and software and services (soundcards, RFID readers, displays, smart homes, GPIO buttons, barcode scanners, Spotify, Google Music, ...).
  3. Where possible, configuration beats hard coded solutions.
  4. Configuration should not be more complex than a hard coded alternative script would be.
  5. Phoniebox thrives towards a unique API (currently the shell scripts pretend to be that).
  6. Phoniebox incorporates many languages (bash, php, python, js) if need be.
  7. Phoniebox depends on APIs which are out of our control (e.g. Spotify integration).
  8. The architecture, structure and coding convention of the code are open to improvements (naming conventions, folder structures, etc.).
  9. Running existing tests is a must do, writing new tests is for kudos.

Contributing

Wiki

The wiki comprises usefull links to the different versions in the main repo, but also other things worth documenting, like manuals, hacks and so on.

If you want to help working on the wiki, you are more than welcome to do so. Here are some rules to make changes:

  • If you add a new page please prefix the pagename with the releveant version, e.g. v2_ or v3_.
    • Also add a new page to the sidebar to help others to find it more easily
  • Documentation that is directly bound to the code (especially if it differs between the main and develop branch) is better kept in the main repo. Please create a PR there to add your changes.
    • some pages in this wiki don't follow this rule currently. They will be refactored and moved in the future.
  • Rename headers and filenames with caution. Make sure all links to it from the wiki or main repo are changed accordingly.

Main Repo

Home

πŸ”₯ Version 3

Version 3 Pages

Nothing yet

🎢 Version 2

Version 2 Pages

Installation

Specials

RFID Reader

Sound card configurations

Hardware Buttons

Displays (LED, LCD, Matrix, etc.)

Hacks

Bluetooth

AirPlay

MPD tricks

For Developers

Clone this wiki locally