Developers
Above: a diagram of our data model
Public Lab software, including this website, is written collaboratively by a community of contributors.
How to contribute
We are actively seeking contributors, so please visit our welcome page and ask about how you can help keep these free and open source software projects working (and improving) for our thousands of community members!
First-timers only
If this is your first time, welcome! We're so happy to meet you! This page is to welcome new contributors looking to get involved in coding with Public Lab.
We especially welcome contributions from people from groups underrepresented in free and open source software!
Please see our welcome page
If you'd like to quickly jump into an issue, see the following list for any available first-timers-only issues:
Read more about our software outreach work here!
Activities
Purpose | Category | Status | Author | Time | Difficulty | Replications |
---|---|---|---|---|---|---|
Create a welcoming "first-timers-only" issue to invite new software contributors | - | - | @warren | - | - | 0 replications: Try it » |
Github guide for Open Source Contributions | - | - | @stefannibrasil | - | - | 0 replications: Try it » |
First-timer-only release workflow | - | - | @sagarpreet_chadha | - | - | 0 replications: Try it » |
Use Git and GitHub to contribute and improve Public Lab software | - | - | @warren | - | - | 0 replications: Try it » |
Help Public Lab’s software grow by joining a supportive team | - | - | @warren | - | - | 0 replications: Try it » |
Set up your development environment in Cloud9 | - | - | @liz | - | - | 0 replications: Try it » |
Make the most basic github contribution | - | - | @liz | - | - | 0 replications: Try it » |
Activities should include a materials list, costs and a step-by-step guide to construction with photos. Learn what makes a good activity here.
Questions
Title | Author | Updated | Likes | Comments |
---|---|---|---|---|
Can I get a file of numbers instead of a graph from the foldable spectrometer software? | @mountevans | almost 7 years ago | 1 | 4 |
Software project ideas for upcoming 2018 Summer of Code fellowships? | @warren | almost 7 years ago | 7 | 9 |
Projects
Project | Description | Source Code |
---|---|---|
PublicLab.org | Ruby on Rails This very website!PublicLab.org - a collaborative knowledge-exchange platform. | github:publiclab/plots2 |
MapKnitter | Ruby on Rails Assemble aerial images into maps. | github:publiclab/mapknitter |
Spectral Workbench | Ruby on Rails Material analysis using DIY spectrometry. JavaScript core on GitHub | github:spectral-workbench |
PublicLab.Editor | JavaScript A general purpose, JS/Bootstrap UI framework for rich text posting, with an author-friendly, minimal, mobile/desktop interface. | github:publiclab/PublicLab.Editor |
Leaflet.DistortableImage | JavaScript Leaflet plugin built for MapKnitter. Enables images to be distorted. | github:publiclab/Leaflet.DistortableImage |
Leaflet.BlurredLocation | JavaScript A Leaflet-based interface for selecting a "blurred" or low-resolution location, to preserve privacy | github:publiclab/leaflet-blurred-location |
WebJack | JavaScript a JavaScript library that uses an audio software modem to communicate with an Arduino via a headphone jack | github:publiclab/webjack |
ImageSequencer | JavaScript/Node.js Prototype sequential image processing system, inspired by storyboards | github:publiclab/image-sequencer |
Infragram | JavaScript Analyze plant health with infrared imagery. | github:p-v-o-s/infragram-js |
MapMill | Ruby on Rails 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:
Our welcome page for newcomers looking to get involved in coding:
http://publiclab.github.io/community-toolbox
- 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/
Resources
- the basic GitHub Flow workflow: https://guides.github.com/introduction/flow/
- guidance on rebasing: https://www.atlassian.com/git/tutorials/merging-vs-rebasing
- revert a single file to a specific revision in Git: https://stackoverflow.com/questions/215718/reset-or-revert-a-specific-file-to-a-specific-revision-using-git
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:
- 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!
- (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!
- 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
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 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 contributors, to grow our contributor base. The steps in 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 keyword
:medium
in JavaScript on this line must be changed to:large
too: https://github.com/publiclab/plots2/blob/master/app/assets/javascripts/dragdrop.js#L64 -- does that make sense to you?
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.
Reviewers
Mentoring for Summer of Code programs has a lot in common with being a software "reviewer" with Public Lab throughout the year; to welcome and support our community of coders, we need to:
- always be kind and respectful! (remember our Code of Conduct!)
- help people to become better coders and don't make them feel bad
- encourage people to open a PR with their work even if it's not finished
- go through recent PRs to help people who are stuck
- use emojis!
Some specific things you can do:
- add links to relevant lines of code to help people see where to start, or for an example of a similar feature
- suggest writing a test to protect your work from future issues
- tag things as
break-me-up
if it's possible to do a project in separate simpler parts
Here are some guides to different ways to help others contribute:
Activities
Purpose | Category | Status | Author | Time | Difficulty | Replications |
---|---|---|---|---|---|---|
Create a welcoming "first-timers-only" issue to invite new software contributors | - | - | @warren | - | - | 0 replications: Try it » |
First-timer-only release workflow | - | - | @sagarpreet_chadha | - | - | 0 replications: Try it » |
Use Git and GitHub to contribute and improve Public Lab software | - | - | @warren | - | - | 0 replications: Try it » |
Help Public Lab’s software grow by joining a supportive team | - | - | @warren | - | - | 0 replications: Try it » |
Make the most basic github contribution | - | - | @liz | - | - | 0 replications: Try it » |
Activities should include a materials list, costs and a step-by-step guide to construction with photos. Learn what makes a good activity here.
Summer of Code
Lots of development on Public Lab software happens as part of the Rails Girls Summer of Code and Google Summer of Code programs, that latter 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 our Summer of Code page!