Skip to content

devshred/gps-tools-backend

Repository files navigation

Backend of GPS-Tools based on Spring/Kotlin

Used as backend (REST-API) for GPS-Tools Frontend.

Prod-environment

The prod "server" is running at home on a Raspberry Pi.

The prod website is hosted by Cloudflare at: https://gps-tools.pages.dev/

Features

  • imports data as FIT, GPX and GeoJSON
  • exports data as TCX, GPX and GeoJSON
  • converts seamlessly between these formats
  • optimizes waypoints to improve performance on GPS-devices
  • merges files
  • stores data locally as proto3-files.

Currently, no persisted storage is used, but the data is stored in memory. Every time the backend is restarted, all data is lost.

OpenAPI spec

The backend is based on an OpenAPI spec and interfaces are generated by the kotlin-spring Generator. (The errors shown in the Swagger-editor are the result of a workaround to work around a bug at the OpenAPI generator.)

How-to run

./gradlew bootRun

How-to test

There are different ways to test the application

./gradlew test

Release process

This project is using semantic versioning and conventional commits. Codequality will be checked by ktlint.

To add some code:

create tag and increase SNAPSHOT-number locally

./gradlew release

create release on GitHub

  • rebase to main branch
  • release manually
  • a GitHub Actions workflow will build a new Docker image automatically