From Berkman Klein Google Summer of Code Wiki
Jump to navigation Jump to search

Project Description

LibraryBox is an international project that provides open source, portable digital file distribution tool based on inexpensive hardware that enables delivery of educational, healthcare, and other vital information to individuals off the grid. Used around the world in education, healthcare, and activism, the LibraryBox project attempts to provide an easy-to-implement tool for anyone that needs to distribute digital information where the infrastructure for such sharing is limited, damaged, controlled, or non-existent.

Ideal candidate

The LibraryBox Project is interested in a variety of possible contributors, from web-front-end, usability, and design work that improve the user experience to Linux devs with networking and LAMP-stack-like experience. Possible interest in Android/iOS app development for Beacon responsiveness.

Project ideas

LibraryBox on Raspberry Pi 3

The existing hardware that LibraryBox uses is under threat from new FCC regulations ( We have been planning to port our code to a more robust platform, and it appears that now is the ideal time to do so. We will be looking for coders willing to work with the existing PirateBox Raspberry Pi installation ( and work to modify it to work with the LibraryBox customizations (some of which is already in progress In addition, the newest Raspberry Pi hardware includes Bluetooth Low-Energy, which we would like to begin using this new capability as a Beacon ( to do more active “announcing†of a LibraryBox.

Working with advice from the leads of both the Piratebox and Librarybox projects, the first goal will be to leverage the existing codebase onto the Raspberry Pi 3, complete with build instructions and installer that will enable novice users to build their own. Secondary development goal will be to enable BTLE beacon services on the Box.

Mesh Networking on LibraryBox

LibraryBox has existing support for client/server synchronization, but enabling more robust network-traversal mesh would be a huge benefit to remote installations. The goal for this project would be to work with the existing codebase to add the capacity for automated discovery of other LibraryBox nodes within wifi range, network negotiation between said nodes, and the ability for browsing from one node to another via client browser.

UX/UI design

LibraryBox has had the same basic very simple interface for a few years now, and it's time to freshen the look. You would be responsible for analysis and implementation of a new look and feel for the LibraryBox project, with the limitation of using only basic web technologies that will work on all possible client devices (or will progressively enhance the experience depending on the client). This will require a deep understanding of developing world technologies, the ability to simplify, and no desire at all to use node.js.

Skills needed: understanding of linux networking and low-power hardware platforms combined with a desire to make the experience as easy as possible for users.