https://github.com/shurdani/zipstats
🛴 App Android para tracking de Patinete, E-bike, Bicicleta y Monociclo con logros, estadísticas y gestión de reparaciones
https://github.com/shurdani/zipstats
android cloudinary firebase hilt jetpack-compose kotlin material-design material3 mvvm
Last synced: 2 months ago
JSON representation
🛴 App Android para tracking de Patinete, E-bike, Bicicleta y Monociclo con logros, estadísticas y gestión de reparaciones
- Host: GitHub
- URL: https://github.com/shurdani/zipstats
- Owner: Shurdani
- License: gpl-3.0
- Created: 2025-10-16T15:16:07.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2026-01-11T17:09:34.000Z (6 months ago)
- Last Synced: 2026-01-11T20:13:52.460Z (6 months ago)
- Topics: android, cloudinary, firebase, hilt, jetpack-compose, kotlin, material-design, material3, mvvm
- Language: Kotlin
- Homepage:
- Size: 33.5 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# 🛴 ZipStats
Aplicación Android para registrar rutas GPS de patinetes, bicicletas y otros vehículos personales, con métricas de conducción, mapas y contexto meteorológico.
[](https://github.com/shurdani/ZipStats/releases)
[](https://kotlinlang.org)
[](https://developer.android.com)
[](https://developer.android.com/jetpack/compose)
[](https://gradle.org)
[](LICENSE)
---
## Características
- Tracking GPS en tiempo real con servicio en foreground.
- Cálculo de distancia, velocidad y duración de ruta.
- Visualización de rutas sobre Mapbox.
- Gestión de vehículos (kilometraje, imagen y estadísticas por vehículo).
- Historial de rutas y exportación a Excel.
- Sistema meteorológico con Google Weather API (alertas y detección de condiciones adversas).
---
## Stack técnico
### Core
- Kotlin `2.0.21`
- Jetpack Compose BOM `2025.01.00`
- Arquitectura MVVM + separación por capas
- Hilt `2.57.2`
- KSP `2.0.0-1.0.22`
- Gradle Wrapper `8.13`
### Android
- `compileSdk 35`
- `targetSdk 34`
- `minSdk 31` (Android 12+)
- Java/Kotlin JVM target `17`
### Servicios y librerías
- Mapbox Maps SDK `11.8.0` + SDK Services `7.9.0`
- Firebase BoM `33.6.0` (Auth, Firestore, Storage, Analytics)
- Google Play Services (Location/Auth/Base)
- Google Weather API
- Cloudinary
- Retrofit `2.11.0`
- Coroutines `1.8.1`
- DataStore `1.1.2`
- Apache POI `5.2.3`
- Coil `2.7.0`
> Nota: las versiones vigentes se mantienen en `gradle/libs.versions.toml`.
---
## Requisitos
- Android 12 (API 31) o superior.
- GPS habilitado.
- Google Play Services.
- Conexión a Internet para mapas/sincronización/clima.
---
## Configuración local
### 1) Clonar repositorio
```bash
git clone https://github.com/shurdani/zipstats.git
cd zipstats
```
### 2) Preparar archivos de configuración
1. Copia `local.properties.example` a `local.properties`.
2. Copia `app/google-services.json.example` a `app/google-services.json`.
3. (Opcional para release firmado) copia `keystore.properties.example` a `keystore.properties`.
### 3) Credenciales necesarias
En `local.properties`:
- `mapbox.access.token`
- `MAPBOX_DOWNLOADS_TOKEN` (scope `DOWNLOADS:READ`)
- `cloudinary.cloud_name`
- `cloudinary.api_key`
- `cloudinary.api_secret`
- `google.weather.api.key` (usada por el repositorio de clima actual)
- `openweather.api.key` (compatibilidad/uso alternativo en partes del proyecto)
### 4) Compilar
Linux/macOS:
```bash
./gradlew clean assembleDebug
./gradlew installDebug
```
Windows (PowerShell/CMD):
```powershell
.\gradlew.bat clean assembleDebug
.\gradlew.bat installDebug
```
Build release:
```bash
./gradlew assembleRelease
```
---
## Estructura principal
```text
app/src/main/java/com/zipstats/app/
├── analysis/ # Análisis de datos GPS
├── di/ # Inyección de dependencias (Hilt)
├── model/ # Modelos de dominio/datos
├── navigation/ # Navegación
├── repository/ # Acceso a datos y APIs
├── service/ # Servicios en segundo plano
├── tracking/ # Lógica de tracking
├── ui/ # Pantallas y componentes Compose
└── utils/ # Utilidades
```
---
## Seguridad y credenciales
- No subir `local.properties`, `app/google-services.json` ni `keystore.properties`.
- El repositorio Mapbox privado usa `MAPBOX_DOWNLOADS_TOKEN` desde `local.properties`.
- Restringe claves API por paquete y huellas SHA cuando aplique.
---
## Contribuir
1. Haz fork del proyecto.
2. Crea tu rama (`git checkout -b feature/mi-feature`).
3. Haz commit de los cambios.
4. Publica la rama.
5. Abre un Pull Request.
---
## Licencia
GPLv3. Consulta [LICENSE](LICENSE) para más detalles.
El nombre "ZipStats", logotipo y elementos visuales forman parte de la identidad del autor.
---
## Contacto
- Email: `zipstatsapp@gmail.com`
- Issues: [GitHub Issues](https://github.com/shurdani/zipstats/issues)
---
¡Feliz tracking! 🛴