Developers
The Public Lab Developers group is an open group for Public Lab related (or -interested) programmers and developers. Float ideas, solicit feedback, get involved in existing PL programming projects, or start your own!
Sign up
How to contribute
We are actively seeking contributors, so please introduce yourself on the developers list and ask about how you can help keep these free and open source software projects working (and improving) for our thousands of community members!
Start by reading our contribution guidelines
Public Lab Software
Project | Description | Source Code |
---|---|---|
PublicLab.org | This very website! | github:publiclab/plots2 |
MapKnitter | Assemble aerial images into maps. | github:publiclab/mapknitter |
Spectral Workbench | Material analysis using DIY spectrometry. | github:spectral-workbench |
Leaflet.Illustrate | Leaflet plugin built for MapKnitter. Enables text annotations on Leaflet maps. | github:manleyjster/Leaflet.Illustrate |
Leaflet.DistortableImage | Leaflet plugin built for MapKnitter. Enables images to be distorted. | github:publiclab/Leaflet.DistortableImage |
Infragram | Analyze plant health with infrared imagery. | github:p-v-o-s/infragram-js |
MapMill | Upload and collaboratively rank large batches of aerial imagery. | github:publiclab/mapmill |
Public Lab is on Github at: https://github.com/publiclab
First time contributors
New to open source/free software? Here are some resources to get you started:
http://www.firsttimersonly.com/
http://www.charlotteis.co.uk/making-your-first-pull-request/
A very in-depth guide: https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github
https://guides.github.com/activities/contributing-to-open-source/
On our PublicLab.org GitHub repository, we've listed some "good for first timers" bugs to fix here: https://github.com/publiclab/plots2/labels/first-timers-only
We also have a slightly larger list of easy-ish but small and self contained issues: https://github.com/publiclab/plots2/labels/help-wanted
Google Summer of Code
Lots of development on Public Lab software happens as part of the GSoC program, supported generously by Google. Looking at the GSoC Ideas list is a great place to find projects which our community really needs to get done, whether or not you're in the program.
Read more at http://publiclab.org/wiki/gsoc, and review recent GSoC proposals/projects at http://publiclab.org/tag/gsoc
Installation videos
MapKnitter
Simple installation with Cloud9
Cloud9, at http://c9.io, can be used to set up a complete development environment, for free, in the cloud -- including Git and a test suite, so you can make changes and create pull requests. These instructions are for PublicLab.org, but there are similar instructions available for Spectral Workbench and MapKnitter (coming soon). Each is listed in that project's README file:
- If you have a GitHub account, visit https://c9.io and log in with the GitHub button.
- Fork this repository to your own GitHub account, creating a
yourname/plots2
project. (or the corresponding project you're working on) - Name your project, then (order important!) choose the Ruby template, THEN enter
yourname/plots2
(or the corresponding project) in the "Clone from Git or Mercurial URL" field, and press Create Workspace - In the command line prompt at the bottom of the page, type
./install_cloud9.sh
and press enter. - Enter your username when prompted, and click "Run Project" when it's done.
- You're done! Go to the URL shown!
Really basic Github contribution
There is a way to contribute to Public Lab software without using a command line or having any special computer or setup, as long as your changes are simple -- this works best for just changes to text or HTML, not executable code. You'll need a Github account:
- Visit the repository (such as https://github.com/publiclab/plots2) you want to contribute to, and fork it with the button to the upper right.
- Find the file you want to edit in your own fork. It'll be on a page (this won't exist until you fork) at a URL like
https://github.com/<yournamehere>/plots2/blob/master/app/views/layouts/_header.html.erb
, but you could navigate to it through Github's file browsing interface as well. - Press the pencil button in the upper right:
- Edit the code, then below, create a pull request with your new change (give it a name like 'yourname-header-tweaks'):
At this point, we'll see your pull request, provide feedback, test it out, and hopefully integrate it. Things may get more complex, but this is a great starting point.