{"id":26202441,"url":"https://github.com/todofixme/gps-tools-backend","last_synced_at":"2026-04-12T07:37:31.295Z","repository":{"id":216185941,"uuid":"739999355","full_name":"todofixme/gps-tools-backend","owner":"todofixme","description":"Spring/Kotlin Backend of GPS-Tools","archived":false,"fork":false,"pushed_at":"2026-03-31T16:50:08.000Z","size":711,"stargazers_count":1,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-31T18:41:15.405Z","etag":null,"topics":["geojson","gpx","kotlin","openapi","spring-boot","tcx"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/todofixme.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-07T07:43:32.000Z","updated_at":"2026-02-20T19:07:46.000Z","dependencies_parsed_at":"2024-04-11T22:44:33.821Z","dependency_job_id":"3385cddb-4ce2-4a9a-b345-ef72495d04bc","html_url":"https://github.com/todofixme/gps-tools-backend","commit_stats":null,"previous_names":["devshred/gps-tools-backend","todofixme/gps-tools-backend"],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/todofixme/gps-tools-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/todofixme%2Fgps-tools-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/todofixme%2Fgps-tools-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/todofixme%2Fgps-tools-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/todofixme%2Fgps-tools-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/todofixme","download_url":"https://codeload.github.com/todofixme/gps-tools-backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/todofixme%2Fgps-tools-backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31707953,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T06:22:27.080Z","status":"ssl_error","status_checked_at":"2026-04-12T06:21:52.710Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geojson","gpx","kotlin","openapi","spring-boot","tcx"],"created_at":"2025-03-12T03:36:31.861Z","updated_at":"2026-04-12T07:37:31.275Z","avatar_url":"https://github.com/todofixme.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Backend of GPS-Tools based on Spring/Kotlin\n\nUsed as backend (REST-API) for [GPS-Tools Frontend](https://github.com/devshred/gps-tools-frontend).\n\n## Prod-environment\nThe prod \"server\" is running at home on a [Raspberry Pi](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/).\n\nThe prod website is hosted by [Cloudflare](https://www.cloudflare.com/) at: https://gps-tools.pages.dev/ \n\n## Features\n* imports data as [TCX](https://www8.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd), [GPX](https://www.topografix.com/gpx.asp), [GeoJSON](https://geojson.org/) and [FIT](https://developer.garmin.com/fit/overview/)\n* exports data as [TCX](https://www8.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd), [GPX](https://www.topografix.com/gpx.asp) and [GeoJSON](https://geojson.org/)\n* converts seamlessly between these formats\n* optimizes waypoints to improve performance on GPS-devices\n* merges files\n* stores data locally as [proto3-files](https://protobuf.dev/).\n\nCurrently, no persisted storage is used, but the data is stored in memory. Every time the backend is restarted, all data is lost.\n\n## OpenAPI spec\nThe backend is based on an [OpenAPI spec](https://editor.swagger.io/?url=https://raw.githubusercontent.com/devshred/gps-tools-backend/main/src/main/spec/api-spec.yaml) and interfaces are generated by the [kotlin-spring Generator](https://openapi-generator.tech/docs/generators/kotlin-spring/).\n\n## How-to run\n```shell\n./gradlew bootRun\n```\n## How-to test\nThere are different ways to test the application\n* start the [frontend](https://github.com/devshred/gps-tools-frontend)\n* use the REST-API with [some example requests](src/test/http/gps-files.http)\n* run all tests:\n```shell\n./gradlew test\n```\n\n## Release process\nThis project is using [semantic versioning](https://semver.org/) and [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/).\nCodequality will be checked by [ktlint](https://github.com/pinterest/ktlint).\n\nTo add some code:\n* create branch, do some changes\n* commit messages should respect [Angular Commit Guidelines](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#-commit-message-format)\n\n### create tag and increase SNAPSHOT-number locally\n```shell\n./gradlew release\n```\n### create release on GitHub\n* rebase to main branch\n* release manually\n* a GitHub Actions workflow will build a new Docker image automatically\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftodofixme%2Fgps-tools-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftodofixme%2Fgps-tools-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftodofixme%2Fgps-tools-backend/lists"}