Hey everyone, just to say that Terra Draw will be taking part in the OSGeo Code Sprint 2024.
This ticket will act as a guide for people looking to take part in the code sprint.
Introduction for Terra Draw
Terra Draw is a JavaScript library for drawing on web maps. It supports a series of different mapping libraries, including Leaflet, OpenLayers, Mapbox GL JS, Maplibre GL JS, ArcGIS JS SDK. Here's a YouTube video that explains more!
Technologies Used
git - Terra Draw uses git and GitHub for version control. Commit messages follow conventional commits
Node - Used for running local development tooling like build and tests
TypeScript - Terra Draw is written entirely in TypeScript
TSDoc - Terra Draw code is documented using TSDoc, see the website for more guidance on how to do that
Jest - Tests are written using the Jest testing framework
Playwright - Playwright allows you to write E2E tests that emulate user interactions. These tests are vital to ensuring Terra Draw says working as expected.
Getting Started
The best place to start if you want to start working on Terra Draw from a development standpoint, is the development guide. This provides all the necessary guidance on how to get setup to work on Terra Draw.
At a high level for the day, if you want to actively contribute to the code you will want:
Then going into the development folder and running:
npm run serve
This will provide instructions on how to access your local web server that is running the local Terra Draw development environment.
What to work on?
General
Things that are always valuable that don't require specific issues to approach:
Open Tasks for Everyone
Manual testing - you can see most of the draw modes live on https://terradraw.io
UX Feedback - if there is something that feels clunky or you have ideas for a better way to do something, feedback is welcome on the issue tracker.
Semi Technical Tasks
README and Guides - improving clarity or depth of explanation for Terra Draw features, you can raise Pull Requests
Automated Docs - the documentation on terradraw.io is automatically generated via TypeDoc and the TSDoc comments. You can update/create doc comments on any of the public functions in the application to improve the documentation.
Technical Tasks
Unit test coverage - improving the unit test coverage of Terra Draw. If you run npm run test:coverage you can see files and lines that are untested
E2E tests - in the E2E test folder there are a series of End-to-End (E2E) tests written using testing framework called Playwright. Playwright emulates user interactions.
TypeScript Types - there are some instances where we use any. It would be great to add actual types in this scenario.
Improvements to terradraw.io - if you find issues with or improvements that could be made to terradraw.io, then please feel free to raise PRs against that repository
Hey everyone, just to say that Terra Draw will be taking part in the OSGeo Code Sprint 2024.
This ticket will act as a guide for people looking to take part in the code sprint.
Introduction for Terra Draw
Terra Draw is a JavaScript library for drawing on web maps. It supports a series of different mapping libraries, including Leaflet, OpenLayers, Mapbox GL JS, Maplibre GL JS, ArcGIS JS SDK. Here's a YouTube video that explains more!
Technologies Used
Getting Started
The best place to start if you want to start working on Terra Draw from a development standpoint, is the development guide. This provides all the necessary guidance on how to get setup to work on Terra Draw.
At a high level for the day, if you want to actively contribute to the code you will want:
You can run a local version of the development environment by forking the repository, the cloning the forked repository:
Then running in the newly cloned folder:
npm install
Then going into the
development
folder and running:npm run serve
This will provide instructions on how to access your local web server that is running the local Terra Draw development environment.
What to work on?
General
Things that are always valuable that don't require specific issues to approach:
Open Tasks for Everyone
Semi Technical Tasks
Technical Tasks
npm run test:coverage
you can see files and lines that are untestedany
. It would be great to add actual types in this scenario.Specific Issues
I will update this with more specific issues in the coming weeks.