diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..7643783
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..79ee123
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index ca16a99..8a0d574 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -4,6 +4,13 @@
+
+
+
+
+
+
+
diff --git a/.idea/deviceManager.xml b/.idea/deviceManager.xml
new file mode 100644
index 0000000..91f9558
--- /dev/null
+++ b/.idea/deviceManager.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index b58386a..5243918 100644
--- a/README.md
+++ b/README.md
@@ -1,57 +1,58 @@
# Despensapp - Gestión de Despensa Familiar
-Aplicación Android diseñada para gestionar el inventario de una despensa de forma compartida, con integración directa a MariaDB y Open Food Facts.
+Aplicación Android moderna y colaborativa diseñada para gestionar el inventario de una despensa de forma compartida, con integración directa a MariaDB y Open Food Facts.
-## Funcionalidades Actuales
+## 🚀 Novedades Recientes
+* **Seguimiento de Cambios:** Ahora puedes ver qué miembro de la familia realizó la última modificación en cada producto.
+* **Configuración de Alertas:** Frecuencia de notificaciones personalizable (12h, 24h, 48h o Semanal).
+* **Gestión de Imágenes:** Sube tus propias fotos desde la galería o haz una foto directamente si el producto no tiene imagen en Open Food Facts.
+* **Valoración Financiera:** Visualiza el valor total de tu despensa y el presupuesto necesario para reponer lo que falta.
-### 🔐 Autenticación Multiusuario
-* **Login y Registro:** Conexión directa a una base de datos MariaDB externa (`mariadb.peta9.com`).
-* **Gestión de Cuentas:** Registro de usuarios con nombre completo, email y contraseña.
-* **Seguridad:** Uso de hilos secundarios (Coroutines) para no bloquear la interfaz durante la conexión.
+## 🛠 Funcionalidades Principales
-### 🍱 Gestión de Inventario
-* **Visualización en Tiempo Real:** Lista de productos traída directamente desde MariaDB con soporte para unidades (kg, l, gr, etc.).
-* **Imágenes de Productos:** Integración con **Coil** para mostrar las imágenes de los productos obtenidas de Open Food Facts.
-* **Detalles Extendidos:** Pantalla de detalles para cada producto con información técnica de MariaDB.
-* **Búsqueda y Categorización:** Filtro por nombre y categorías dinámicas para una localización rápida.
-* **Swipe to Delete:** Borrado intuitivo de productos deslizando hacia la izquierda (Material 3).
-* **Fecha de Caducidad:** Seguimiento de la caducidad de cada producto para evitar desperdicios.
-* **Filtro Inteligente:** Filtro para ver rápidamente qué productos han caducado o están a punto de hacerlo (7 días o menos).
-* **Formato de Fecha:** Visualización de fechas en formato amigable (DD/MM/YYYY) en toda la aplicación.
-* **Lista de la Compra:** Modo dedicado que muestra únicamente los productos con stock bajo.
-* **Historial de Alta:** Registro automático de la fecha y hora en la que se añadió cada producto.
-* **Alertas de Stock Bajo:** Indicadores visuales en rojo cuando un producto está por debajo de su cantidad mínima.
-* **Notificaciones Automáticas:** El sistema revisa diariamente el inventario y envía notificaciones al móvil sobre stock bajo.
-* **Control Rápido:** Botones de incremento/decremento en la pantalla principal para actualizar el stock rápidamente.
-* **Edición Completa:** Modo de edición total en la pantalla de detalle para modificar nombre, stock, stock mínimo, categoría y caducidad.
-* **Compartir Lista:** Botón para compartir la lista de la compra directamente desde la aplicación a servicios de mensajería (WhatsApp, etc.).
-* **Iconografía Dinámica:** Asignación inteligente de iconos de Material Design basados en la categoría del producto (Lácteos, Carnicería, Fresco, etc.).
-* **Cierre de Sesión:** Opción para cerrar la sesión actual y volver de forma segura a la pantalla de bienvenida.
+### 🔐 Autenticación y Familia
+* **Acceso Multiusuario:** Registro e inicio de sesión conectado a MariaDB externa.
+* **Códigos de Familia:** Posibilidad de unirse a despensas existentes mediante códigos compartidos.
+* **Sesiones Seguras:** Gestión de sesión de usuario local para acceso rápido.
-### 💰 Control de Precios y Valor Financiero
-* **Gestión de Precios:** Seguimiento del precio unitario de cada producto para una mejor planificación económica.
-* **Valoración de la Despensa:** Cálculo automático del valor total de todo el inventario acumulado.
-* **Presupuesto de Compra:** Cálculo del coste estimado necesario para reponer los productos en stock bajo.
-* **Visualización Detallada:** Visualización del precio junto a las unidades en la lista principal y detalles.
+### 🍱 Gestión de Inventario Inteligente
+* **Escáner Avanzado:** Lector de códigos de barras con **Google ML Kit**, feedback háptico (vibración) y control de linterna integrado.
+* **Integración Doble:** Búsqueda automática en **Open Food Facts** con fallback a la base de datos local para productos ya conocidos.
+* **Control de Stock:** Botones de acceso rápido (+/-) en la lista principal y edición detallada.
+* **Alertas Visuales:** Indicadores de stock bajo (barras laterales rojas y iconos de advertencia) basados en mínimos personalizados.
+* **Categorización Dinámica:** Iconografía automática basada en la categoría del producto (Lácteos, Frescos, Limpieza, etc.).
-### 🎨 Identidad Visual
-* **Icono Personalizado:** Diseño de icono adaptativo único que representa un mueble de despensa lleno de productos.
-* **Interfaz Material 3:** Uso de los últimos estándares de diseño de Google para una experiencia fluida y moderna.
-* **Colores Amigables:** Paleta de colores personalizada para mejorar la legibilidad y la estética familiar.
+### 📅 Control de Caducidad
+* **Seguimiento de Fechas:** Registro de fecha de caducidad con formato amigable (DD/MM/YYYY).
+* **Filtro Crítico:** Vista rápida de productos caducados o que caducarán en los próximos 7 días.
+* **Historial de Alta:** Registro automático de cuándo se añadió cada producto a la despensa.
-### 🔍 Integración con APIs y Hardware
-* **Escáner de Código de Barras:** Uso de **CameraX** y **Google ML Kit** con **Feedback Háptico** (vibración) al detectar productos.
-* **Linterna:** Botón integrado en el escáner para encender y apagar el flash en entornos oscuros.
-* **Open Food Facts:** Búsqueda automática de nombres, categorías e imágenes al escanear un código de barras.
-* **MariaDB Directo:** Conexión JDBC para persistencia de datos compartida.
+### 🛒 Lista de la Compra y Compartir
+* **Generación Automática:** Filtro dedicado para productos bajo mínimos.
+* **Compartir:** Exporta y envía la lista de la compra por WhatsApp, Telegram o email con un solo toque.
+* **Cálculo de Costes:** Estimación del dinero necesario para completar la reposición de stock.
-## Próximos Pasos
+### 🔔 Notificaciones y Segundo Plano
+* **InventoryCheckWorker:** Tareas en segundo plano (WorkManager) que revisan el stock diariamente.
+* **Frecuencia Ajustable:** Elige desde los ajustes cada cuánto quieres recibir alertas de reposición.
+
+## 🎨 Interfaz y Experiencia (UX)
+* **Material 3:** Interfaz moderna con componentes dinámicos y soporte para temas.
+* **Swipe to Action:** Borrado intuitivo deslizando elementos (Swipe-to-Delete).
+* **Feedback Visual:** Cargas progresivas, snackbars de confirmación y estados vacíos informativos.
+
+## ⚙️ Especificaciones Técnicas
+* **Arquitectura:** MVVM-ish con Repositorios para abstracción de datos.
+* **Persistencia:** MariaDB Directo (JDBC) con soporte para red local y remota.
+* **Red:** Retrofit para Open Food Facts API y Coil para carga de imágenes asíncrona.
+* **Cámara:** CameraX para una integración fluida con el hardware.
+* **Mínimo SDK:** Android 31 (Android 12)
+* **Target SDK:** Android 37
+
+## 🛤 Próximos Pasos
* [x] Gestión de fechas de caducidad.
-* [x] Lista de la compra automática basada en el stock bajo.
-* [ ] Compartir despensas específicas mediante códigos de familia.
-* [ ] Exportar inventario a PDF/CSV.
-
-## Requisitos Técnicos
-* Android SDK 34+
-* Conexión a Internet (para API y DB remota).
-* Permiso de Cámara (para el escáner).
+* [x] Lista de la compra automática.
+* [x] Notificaciones push locales.
+* [ ] Exportación avanzada a PDF/CSV.
+* [ ] Modo offline con sincronización diferida.
+* [ ] Estadísticas de consumo mensual.
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 34f38a8..e20ef08 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -11,7 +11,7 @@ android {
defaultConfig {
applicationId = "com.example.despensapp"
- minSdk = 34
+ minSdk = 31
targetSdk = 37
versionCode = 1
versionName = "1.0"