_Above: a diagram of our [data model]( The Public Lab Developers group is an open mailing list for Public Lab related (or -interested) programmers and developers. Float ideas, solicit feedback, get involved in existing PL programming projects, or start your own! <--- Subscribe at left <--- ##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](/wiki/contributing-to-public-lab-software), then visit our [github dashboard:]( [![Screen_Shot_2016-11-30_at_11.34.03_AM.png](]( **** ##Activities: software [activities:software] **** ## Public Lab Software projects <table> <tr> <th>Project</th> <th>Description</th> <th>Source Code</th> </tr> <tr> <td><a href="/"></a></td> <td>This very website!</td> <td><a href="">github:publiclab/plots2</a></td> </tr> <tr> <td><a href="">MapKnitter</a></td> <td>Assemble aerial images into maps.</td> <td><a href="">github:publiclab/mapknitter</a></td> </tr> <tr> <td><a href="">Spectral Workbench</a></td> <td>Material analysis using DIY spectrometry.</td> <td><a href="">github:spectral-workbench</a></td> </tr> <tr> <td>PublicLab.Editor</td> <td>A general purpose, JS/Bootstrap UI framework for rich text posting, with an author-friendly, minimal, mobile/desktop interface.</td> <td><a href="">github:publiclab/PublicLab.Editor</a></td> </tr> <tr> <td>Leaflet.DistortableImage</td> <td>Leaflet plugin built for MapKnitter. Enables images to be distorted.</td> <td><a href="">github:publiclab/Leaflet.DistortableImage</a></td> </tr> <tr> <td>Leaflet.Illustrate</td> <td>Leaflet plugin built for MapKnitter. Enables text annotations on Leaflet maps.</td> <td><a href="">github:manleyjster/Leaflet.Illustrate</a></td> </tr> <tr> <td>WebJack</td> <td>a JavaScript library that uses an audio software modem to communicate with an Arduino via a headphone jack</td> <td><a href="">github:publiclab/webjack</a></td> </tr> <tr> <td><a href="">Infragram</a></td> <td>Analyze plant health with infrared imagery.</td> <td><a href="">github:p-v-o-s/infragram-js</a></td> </tr> <tr> <td>MapMill</td> <td>Upload and collaboratively rank large batches of aerial imagery.</td> <td><a href="">github:publiclab/mapmill</a></td> </tr> </table> Public Lab is on Github at: ## First time contributors New to open source/free software? Here are some resources to get you started: * * * A very in-depth guide: * * On our [ GitHub repository](, we've listed some "good for first timers" bugs to fix here: * We also have a slightly larger list of easy-ish but small and self contained issues: **** ### Contributing for non-coders Not interested (or not yet interested) in coding, but still want to help out? Have a project you really need to get your work done, and trying to encourage coders to tackle it? You can still help out; in fact, **helping to clearly describe and document problems and new feature proposals is at least as important as writing the code itself**. When creating or editing an issue, try to: 1. Clearly describe the problem, linking to pages where it can be observed, or where a new feature might live. Include screenshots to be very specific! 2. (for bugs) If you don't know the problem, do what you can to help others narrow it down: provide contextual information like your browser, OS, and what you were doing when it happened. Did it used to work? Does it still, but only sometimes? Help them reproduce it! 3. Propose a solution. Whether or not you code, describing what **should** or **could** happen, or even what you expected to happen is always helpful to someone looking to fix it. This can be as simple as "It should show a notification." or "There should be a way to hide it." Once an issue is well documented, we can tag it with `help-wanted` to get the word out that we're looking for someone to try to fix it. If you're not sure if it's ready, ask [on the plots-dev list](#Sign+up) Finally, if your issue is well documented, try to get involved in some outreach to new contributors to match someone with the project! Tell them what it'll help you achieve and why you'd appreciate help. And coordinate with the [plots-dev discussion list](#Sign+up) to get the word out. ### Preparing issues for newcomers Related to the above, even if you are a coder, we need help "rolling out the red carpet" (as the [Hoodie project]( calls it) for new contribtors, to grow our contributor base. The steps in [Contributing for non-coders](#Contributing+for+non-coders) are a good starting point, but as a coder, you can also deep-link to the relevant lines of code, with Github links and pointers like: > Then the `:medium` in JavaScript on this line must be changed to `:large` too: This is especially great for attracting coders who are not only new to our code, but new to coding in general! Learn more about how to make a good `first-timers-only` issue here: **** ##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](/wiki/gsoc-ideas) 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, and review recent GSoC proposals/projects at, specifically **2017 projects:** - [Bot for Publiclab]( by @ryzokuken - [Email Notification Overhaul]( by @stella - [Developing Image Sequencer as a Library]( by @ccpandhare - [Map of Projects]( by @mridulnagpal - [Wiki Discussion]( by @Ashan **** ###Installation videos ####MapKnitter <iframe width="853" height="480" src=";showinfo=0" frameborder="0" allowfullscreen></iframe> ****

Learn more »