Skip to content

OSGeo UK Code Sprint 2024 #283

@JamesLMilner

Description

@JamesLMilner

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:

You can run a local version of the development environment by forking the repository, the cloning the forked repository:

git clone git@github.com:YourGithubUsername/terra-draw.git

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

  • 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

Specific Issues

I will update this with more specific issues in the coming weeks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions