View on GitHub

me-box.github.io

Hacking the core

Facilitators @Toshbrown @yousefamar @jptmoore @sevenEng

This session will give an overview of the core of Databox and how to fix issues and add new functionally. After a short presentation the hacking will commence. There will be a number of experienced Databox devs on hand to get you started with your own idea. Not sure where to start why not have a go at one of these:

Improving the install and deployment process using LinuxKit (Skills: docker and LinuxKit)

Currently, the install process for Databox is very involved. This project will explore using LinuxKit to build a lightweight VM with containerd to encapsulate Databox. This will enable the quick and easy deployment on MacOS, Linux and Windows 10 pro. As a bonus would eventually (see) allow small native installs on a raspberry PI 3 see PR here.

Implement lib-ocaml-databox (Skills: OCaml and/or ReasonML)

The export-service and store-timeseries have most of the required code. A nice activity would be to pull these together into a library and some hello world apps.

Developing for the new ZMQ-based store (Skills: ReasonML / Golang / NodeJs / Binary Protocols)

A ReasonML based client and server exists (jptmoore/zest) and a Databox store is implemented (/me-box/store-timeseries-zmq) for testing against. There is a partial Golang client available (toshbrown/goZestClient). Creating a nodejs client would also be a useful task. Building apps and driver to test this new store or any help testing and/or benchmarking would be fantastic.

Designing an Image API for the new store. (Skills: API design, Exif, any language)

The store supports json, text and binary data being stored as key/values. A time series store exists for json data. I useful high-level API addition would be capability to store images by utilising both the key/value and time series stores. For example, a single image write could store the binary image within a key/value store but generate json meta-data based on the image to go to the time series store. This meta-data could be generated by using Exif data present in the image. A UUID could be used as the link between the key/value and time series store such that the image is stored using the UUID as the key. A useful activity would be to design and build such an API call using the existing store functionality.

Add a UI to the export service (Skills: OCaml + web)

All data leaving the Databox goes through the export service. But there is currently no way to inspect this data. Adding an interface to let people inspect what is being exported from their databox would be a valuable contribution.

Improving unit and integration tests (Intergration testing / phantomjs / etc)

Currently, tests only exercise the API not the UI (see) so any improvements would be greatly received.