From a8c605a9e9000685e31ff4b46f2c741231dfcc98 Mon Sep 17 00:00:00 2001 From: vcoppe Date: Sat, 13 Jul 2024 15:18:04 +0200 Subject: [PATCH] create readme --- README.md | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..2a44c4c3 --- /dev/null +++ b/README.md @@ -0,0 +1,80 @@ + + + Logo of gpx.studio. + + +**gpx.studio** is an online tool for creating and editing GPX files. + +![gpx.studio screenshot](website/src/lib/assets/img/docs/getting-started/interface.png) + + +This repository contains the source code of the new website, currently available [here](https://gpx.studio/gpx.studio). + +## Contributing + +Please create an issue if you find a bug or have a feature request. + +Code contributions are also welcome, but except for obvious bug fixes, please open an issue first to discuss the changes you would like to make. + +## Translation + +***Translations for the new website will start once the new version is stable.*** + +The website is translated by volunteers on a collaborative translation platform. +You can help complete and improve the translations by joining the [Crowdin project](https://crowdin.com/project/gpxstudio). +If you would like to start the translation in a new language, please contact me or create an issue. + +Any help is greatly appreciated! + +## Development + +The code is split into two parts: +- `gpx`: a Typescript library for parsing and manipulating GPX files, +- `website`: the website itself, which is a [SvelteKit](https://kit.svelte.dev/) application. + +You will need [Node.js](https://nodejs.org/) to build and run these two parts. + +### Building the `gpx` library + +```bash +cd gpx +npm install +npm run build +``` + +### Running the website + +To be able to load the map, you will need to create your own Mapbox access token and store it in a `.env` file in the `website` directory. + +```bash +cd website +echo PUBLIC_MAPBOX_TOKEN={YOUR_MAPBOX_TOKEN} >> .env +npm install +npm run dev +``` + +## Credits + +This project has been made possible thanks to the following open-source projects: + +- Development: + - [Svelte](https://github.com/sveltejs/svelte) and [SvelteKit](https://github.com/sveltejs/kit) — seamless development experience + - [MDsveX](https://github.com/pngwn/MDsveX) — allowing a Markdown-based documentation + - [svelte-i18n](https://github.com/kaisermann/svelte-i18n) — easy localization +- Design: + - [shadcn-svelte](https://github.com/huntabyte/shadcn-svelte) — beautiful components + - [lucide-svelte](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-svelte) — beautiful icons + - [tailwindcss](https://github.com/tailwindlabs/tailwindcss) — easy styling +- Logic: + - [immer](https://github.com/immerjs/immer) — complex state management + - [Dexie.js](https://github.com/dexie/Dexie.js) — IndexedDB wrapper + - [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) — fast GPX file parsing + - [SortableJS](https://github.com/SortableJS/Sortable) — creating a sortable file tree +- Mapping: + - [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js) — beautiful and fast interactive maps + - [brouter](https://github.com/abrensch/brouter) — routing engine + - [OpenStreetMap](https://www.openstreetmap.org) — map data used by Mapbox and brouter + +## License + +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.