- Java 100%
Los mantenimientos pueden marcarse como periódicos (se repiten cada X km o X años) y al completarlos se crea automáticamente la siguiente cita. Una pulsación larga sobre cada tarea abre un menú con Editar y Eliminar, y el campo de kilómetros siempre suma al kilometraje actual. Closes #13 |
||
|---|---|---|
| .idea | ||
| .settings | ||
| app | ||
| gradle | ||
| .gitignore | ||
| .project | ||
| AGENTS.md | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| settings.gradle.kts | ||
Veyko IoT - Gestión de Mantenimiento Vehicular
Aplicación Android para el seguimiento inteligente de mantenimientos y averías de vehículos. Registra tu coche, introduce los kilómetros actuales y la app genera automáticamente un plan de mantenimientos preventivos y un listado de averías típicas adaptadas al modelo, año y kilometraje de tu vehículo.
¿Qué hace la aplicación?
Veyko IoT actúa como un asistente personal de mantenimiento para tu vehículo:
- Registro del vehículo – Introduces marca, modelo, año, motor y kilometraje actual.
- Generación inteligente – La app consulta un webhook automatizado (n8n + IA) que devuelve mantenimientos y averías típicas personalizadas para tu coche.
- Seguimiento de kilómetros – Actualiza el kilometraje periódicamente y la app te avisa de revisiones próximas.
- Gestión de tareas – Marca mantenimientos como completados y controla averías pendientes.
Todo el historial se almacena de forma local en el dispositivo mediante una base de datos SQLite (Room), por lo que funciona sin conexión una vez generados los datos iniciales.
Funcionalidades principales
| Módulo | Descripción |
|---|---|
| Onboarding | Formulario de registro del primer vehículo con validación de campos. |
| Home | Resumen visual con kilómetros actuales, mantenimientos urgentes y próximas averías. |
| Mantenimientos | Listado dividido en pendientes, próximos y completados; posibilidad de marcar como hecho. |
| Averías | Visualización de averías típicas del modelo con kilometraje estimado y estado. |
| Notificaciones | Recordatorios semanales para actualizar el kilometraje del vehículo. |
| Automatización n8n | Conexión con webhook para generar mantenimientos y averías mediante IA en tiempo real. |
Tecnologías utilizadas
- Android SDK (API 24 – 36)
- Room – Persistencia local de datos
- Retrofit + OkHttp – Comunicación HTTP con el webhook de n8n
- Gson – Serialización JSON
- WorkManager – Tareas en segundo plano (notificaciones)
- Navigation Component + BottomNavigationView – Navegación entre pantallas
Flujo de automatización (n8n)
Cuando se registra un nuevo vehículo, la app envía los datos a un workflow de n8n que procesa la información mediante un modelo de IA y devuelve un JSON estructurado:
| Paso | Nodo | Acción |
|---|---|---|
| 1 | Webhook | Recibe marca, modelo, año y kilometraje desde la app. |
| 2 | Gemini (IA) | Genera hasta 5 mantenimientos y 5 averías típicas del vehículo. |
| 3 | Code | Parsea y limpia la respuesta de la IA a JSON válido. |
| 4 | Respond to Webhook | Devuelve el JSON limpio a la app con código 200. |
Si el webhook no responde o tarda más de 25 segundos, la app inserta automáticamente unos valores por defecto para no bloquear al usuario.
Cómo probar la aplicación
- Accede a la pestaña Releases de este repositorio.
- Descarga el archivo
Veyko-IoT-v1.0.apkde la última versión. - En el móvil, abre el archivo e instálalo. Es posible que debas activar "Orígenes desconocidos" en ajustes de seguridad.
- Abre la app, registra tu vehículo y espera unos segundos mientras se generan los mantenimientos y averías personalizadas.
Compilar desde el código fuente
Si prefieres compilarla tú mismo:
- Clona el repositorio.
- Abre el proyecto en Android Studio (Ladybug o superior recomendado).
- Asegúrate de tener el JDK 17 o 21 configurado en
Settings → Gradle → Gradle JDK. - Sincroniza Gradle y ejecuta Build → Make Project.
- Conecta un dispositivo o emulador con API 24+ y pulsa Run.
Estructura del proyecto (resumen)
veyko-iot-app/
├── app/src/main/java/veyko/iot/app/
│ ├── db/ # Entidades, DAOs y base de datos Room
│ ├── data/remote/ # Servicio Retrofit y DTOs del webhook
│ ├── ui/ # Pantallas (onboarding, home, mantenimientos, averías)
│ └── worker/ # Notificaciones en segundo plano
├── app/src/main/res/ # Layouts, drawables, strings y navegación
└── gradle/ # Catálogo de versiones (libs.versions.toml)
Licencia
Este proyecto está licenciado bajo la Licencia Apache 2.0. Consulta el archivo LICENSE para más detalles.