TicketScan es una aplicación móvil desarrollada para Android que permite al usuario registrar sus compras de supermercado de diferentes maneras:
- 📷 Tomando una foto del ticket.
- ✍️ Ingresándolas manualmente.
- 🎙️ Dictándolas mediante una nota de voz.
Todos los datos se normalizan y se guardan en un historial de compras, al cual el usuario puede acceder en cualquier momento.
La aplicación también ofrece un análisis de patrones de compra semanales y mensuales, ayudando a comprender mejor los hábitos de consumo.
- El usuario debe poder cargar una imagen de un ticket de supermercado y obtener los datos normalizados y guardados en su historial.
- El usuario debe poder cargar una compra manualmente y guardarla en su historial.
- El usuario debe poder consultar su historial de compras.
- Los productos registrados en el historial deben ser clasificados en categorías automáticamente.
- El usuario debe poder solicitar un análisis de patrones de compra (por semana o por mes), incluyendo:
- Monto total de compras.
- Promedio por compra.
- Distribución por categoría.
- Comparación con otros períodos.
- El usuario debe poder registrar una compra mediante nota de voz, obteniendo los datos normalizados y guardados.
- El usuario debe poder exportar su historial en formato PDF y/o Excel/CSV.
- Lenguaje principal: Kotlin
- IDE: Android Studio
- Base de datos: SQLite / Room (a definir según implementación)
- Procesamiento de imágenes: OCR (para lectura de tickets)
- Procesamiento de voz: Reconocimiento de voz de Android
- Generación de reportes: Librerías para exportación a PDF y CSV
- Registro flexible de compras (imagen, texto o voz).
- Historial organizado y consultable en todo momento.
- Clasificación automática de productos en categorías.
- Análisis detallado de gastos y hábitos de consumo.
- Exportación de historial en distintos formatos.
- Notificaciones automáticas vía Firebase con recordatorios e informes.
- Clonar este repositorio:
git clone https://github.com/usuario/ticketscan.git
- Abrir el proyecto en Android Studio.
- Conectar un dispositivo Android o configurar un emulador.
- Ejecutar la aplicación con el botón Run
▶️ .
Para habilitar las notificaciones se requiere configurar Firebase Cloud Messaging:
- Crear un proyecto en Firebase Console y agregar la app Android.
- Descargar el archivo
google-services.jsony ubicarlo enapp/google-services.json. - Habilitar Cloud Messaging y, opcionalmente, Analytics para el proyecto.
- Crear dos Cloud Functions (o endpoints equivalentes) con los nombres
syncNotificationPreferencesysendTicketScanNotification. La primera debe registrar el token FCM y los tópicos seleccionados; la segunda debe emitir notificaciones hacia los tópicosweekly_inactivity,weekly_statsymonthly_comparisonrespetando la estructura del payload enviada por la app. - Revisar las reglas de seguridad del backend para proteger los endpoints y las claves de servidor.
El cliente mantiene los recordatorios mediante WorkManager, por lo que es necesario mantener los servicios de Google Play actualizados en el dispositivo o emulador de pruebas.
Proyecto desarrollado por:
- Mateo Bertogliati
- Carolina Boschini
- Matias Cotens
- Guadalupe Garcia
- Patricio Galli