L'outil tout-en-un pour analyser, fusionner et optimiser vos traces GPX de trail
- Profil d'altitude interactif avec carte synchronisée
- Statistiques détaillées : distance, D+, D-, pente moyenne, altitude min/max
- Visualisation cartographique avec Leaflet et profils d'élévation
- Support multi-traces : chargez et comparez plusieurs fichiers GPX
- Drag & drop pour réorganiser l'ordre de fusion
- Détection automatique des trous et chevauchements
- Interpolation intelligente entre segments discontinus
- Options avancées : tri temporel, seuil de détection personnalisable
- Aperçu et téléchargement du fichier fusionné
- Calcul automatique des statistiques entre ravitaillements
- Formule de Naismith pour estimer les temps (ou allure personnalisée)
- Export CSV pour impression ou partage
- Statistiques par segment : distance, D+/D-, pente, temps estimé et cumulé
- Liens partageables sans inscription requise
- Expiration automatique après 30 jours
- Partage sécurisé de vos analyses complètes
- React 18 avec TypeScript
- Vite pour le build ultra-rapide
- TailwindCSS pour le design
- React Router v7 pour la navigation
- Leaflet pour les cartes interactives
- Leaflet Elevation pour les profils d'altitude
- FastAPI (Python) pour l'API REST
- GPXpy pour le parsing de fichiers GPX
- PostgreSQL pour le stockage des partages
- SQLAlchemy comme ORM
- Pandas & NumPy pour les calculs statistiques
- SlowAPI pour le rate limiting
- Docker multi-stage builds
- Nginx pour le reverse proxy
- Coolify pour le déploiement
- Fathom Analytics (RGPD compliant, sans cookies)
Visitez www.gpx.ninja - aucune installation nécessaire !
# Cloner le repository
git clone https://github.com/Jalmin/gpxify.git
cd gpxify
# Lancer avec Docker Compose
docker-compose upL'application sera accessible sur :
- Frontend : http://localhost
- Backend API : http://localhost:8000
- Documentation API : http://localhost:8000/docs
# Upload et analyse d'un fichier GPX
POST /api/v1/gpx/upload
Content-Type: multipart/form-data
# Fusionner plusieurs fichiers GPX
POST /api/v1/gpx/merge
Content-Type: application/json
# Générer un tableau de ravitaillement
POST /api/v1/gpx/aid-station-table
Content-Type: application/json# Créer un lien de partage
POST /api/v1/share/save
# Récupérer un état partagé
GET /api/v1/share/{share_id}Documentation complète : API Documentation
- ✅ Aucun cookie : Analytics via Fathom (conforme RGPD)
- ✅ Données temporaires : fichiers GPX supprimés immédiatement après analyse
- ✅ Partages éphémères : expiration automatique après 30 jours
- ✅ Rate limiting : protection contre les abus
- ✅ HTTPS : communications chiffrées
- ✅ Open source : code auditable publiquement
- GPX (GPS Exchange Format) -
.gpx - Taille maximale : 10 MB par fichier
- Compatible avec toutes les montres GPS et applications (Garmin, Suunto, Strava, Komoot, etc.)
Les contributions sont les bienvenues !
- Fork le projet
- Créez votre branche (
git checkout -b feature/AmazingFeature) - Committez vos changements (
git commit -m 'Add some AmazingFeature') - Poussez vers la branche (
git push origin feature/AmazingFeature) - Ouvrez une Pull Request
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
- 🐛 Issues : GitHub Issues
- ❓ FAQ : www.gpx.ninja/faq
- 📧 Email : Via GitHub
- Créé avec ❤️ pour la communauté trail et outdoor
- Propulsé par Claude Code
- Merci à tous les contributeurs et utilisateurs !
⭐ Si vous aimez ce projet, n'hésitez pas à lui donner une étoile sur GitHub !