Hacktoberfest is a month-long festival to celebrate open-source contributions. As part of the virtual festival, Blue Sky Analytics is inviting you to contribute to Raster Playground, an open-source design tool for selecting a colour palette for raster maps.
If you've never contributed to open-source before, this is the perfect time to start.
To participate, you don't need to be an expert in programming or coding. All you need to do is contribute to Raster Playground and open at least 4 pull requests till the end of October. It can be a bug fix, improvement, or even a documentation change.
🗺️ Raster Playground
At Blue Sky, we are building environmental datasets for which we use large raster tiles. And by large, we mean really, REALLY LARGE, i.e. data in terabytes. In the process, we were bound to come across a host of complex problems, not only pertaining to the data but also optimization of the processes. But solving problems like these with innovative solutions is what we at Blue Sky live for.
One such problem that we came across was figuring out an efficient way to colour large raster tiles. To solve this problem, we began by hosting these raster tiles on S3, which were then clipped and coloured on the browser using JavaScript. This gave us complete control over the ability to stylize raster tiles for our users. However, soon we realized a problem with this approach - since client-side rendering is a computationally heavy job using a lot of CPU, it increased the loading time, and no one likes to wait for things to load, right?
To solve this issue, we considered colouring and clipping the raster tiles on the backend itself and then loading them on the frontend. This would speed up the loading time considerably. The only issue with colouring and clipping on the backend was that it took away our ability to experiment and iterate with various colour schemes.
Using the existing technology, we tried addressing this issue by taking a dummy raster into QGIS, an open-source desktop-based GIS (Geographic Information System) platform. QGIS allowed us to stylize the raster using a colour palette, share the coloured raster with the team and review it. However, if we did not like what we saw, we had to repeat the process till we found something that worked. This slowed down the deployment of the raster tiles.
Clearly, colouring and clipping on a heavy tool like QGIS was not the solution. And hence, Raster Playground came into being.
Raster Playground is an open-source web-based tool that lets us upload a set of dummy raster tiles, shapefiles (optional) and a colour palette to visualize how they would look on the frontend. Once the colour palette is finalized, we can generate the final set of raster tiles on the backend, making the process extremely easy and efficient.
Does reading the origin story of Raster Playground make your coding fingers itch? Then you're in luck!
As part of Hactoberfest, Blue Sky is inviting you to contribute to the Raster Playground.
🙋♂️ How to contribute?
You can contribute to the Raster Playground in the following ways:
-
Open up new issues
-
Resolve issues labelled as Hactoberfest
-
Start a discussion
-
Propose new features
We have three levels of issues on Raster Playground:
-
Hard - Adding a prominent feature to Raster Playground
-
Medium - Resolving major bugs or implementing small features
-
Easy - Resolving minor bugs or hot-fixes
Getting Started
We use GitHub to host code, track issues and feature requests, and accept pull requests ("PR"). PRs are the best way to propose changes to the codebase.
-
Register yourself on Hacktoberfest (Signup with Github)
-
Read the participation rules on the Hacktoberfest website
-
Go to Raster Playground GitHub repo
-
Fork the repository to your profile and clone them into your local system
-
Explore the issues tagged as Hacktoberfest
-
Select one or more issues you want to resolve
-
Checkout a branch from master as per our branch convention
-
Read about installation and how to use it on ReadMe.
-
After resolving the issue, open a PR against master branch
-
Wait for our maintainer to review the PR.
-
You might receive comments and change requests if there is any inconsistency found in the code. You will need to resolve them and request for another review
-
Once the maintainer (Srijit S Madhavan - Twitter & LinkedIn) accepts your PR and merges it, you would have successfully completed one PR. Yayyyy!
🧠 Things to keep in mind
The quality of PRs is paramount; quantity comes second.
PR quality checklist
-
Must contain a description (also with necessary screenshots/screen-recording)
-
Must contain labels
-
Issue(s) must be linked
-
A Netlify deploy preview link must be generated (This will automatically get generated on GitHub actions)
-
All GitHub Action checks should be passed
-
Must make atomic commits
Please don't SPAM! If we find any spam PRs, we will label them with spam or invalid tags.
If you have any doubts or queries about any issues, feel free to tag our maintainer Srijit S Madhavan.
🏆 Perks
-
A chance to play around with tiles and geospatial data, which is WAYYYYYY better than building boring dashboards and CRUDs.
-
If you are able to successfully make four PRs and get them approved and merged against any of the issues tagged as Hacktoberfest you, will receive a cool Hacktoberfest 2021 T-Shirt and stickers from DigitalOcean, Appwrite, Intel, and Deepsource.
If you want to work with us, there is no better way to catch our attention than by contributing to this project.
Happy Hacking! Open source is changing the world – one contribution at a time - Hacktoberfest 2021
Important links -
-
Hacktoberfest - https://hacktoberfest.digitalocean.com/
-
Participant resource - https://hacktoberfest.digitalocean.com/resources/participation
-
Raster Playground Repo - https://github.com/blueskyanalytics/raster-playground
-
Raster Playground - https://play.blueskyhq.in/
-
About Raster Playgorund - https://blueskyhq.in/blog/raster-playground
-
ReadMe - https://github.com/blueskyanalytics/raster-playground/blob/master/README.md
-
CONTRIBUTING.md - https://github.com/blueskyanalytics/raster-playground/blob/master/CONTRIBUTING.md