Sommelier es una aplicación móvil avanzada para Android que actúa como un sumiller experto de bolsillo. Utiliza un algoritmo de recomendación basado en la personalidad y el estado de ánimo para sugerir el vino perfecto, integrando además herramientas profesionales de gestión de inventario y estadísticas de consumo.
Este proyecto ha sido desarrollado siguiendo patrones de diseño modernos y una arquitectura robusta para garantizar la escalabilidad y el rendimiento.
- Maridaje Emocional: Un test interactivo de 5 etapas que analiza preferencias sensoriales y contexto social para recomendar el vino ideal.
- Gestión de Inventario en Tiempo Real:
- Descuento automático de stock tras cada recomendación.
- Alertas visuales para productos con bajo stock (3 botellas o menos).
- Funciones de reposición y reinicio total de inventario.
- Estadísticas Avanzadas: Panel de control con el "Top 5" de vinos más consumidos, filtrable por semana, mes y año.
- Área de Personal Segura: Sección restringida por contraseña (
1234) para el control administrativo del restaurante. - Diseño Premium: Interfaz construida íntegramente con Material 3, utilizando una sofisticada paleta de colores en tonos Malva y Burdeos profundo.
La aplicación implementa una arquitectura MVVM (Model-View-ViewModel) bajo los principios de Clean Architecture:
- Lenguaje: Kotlin 2.1.0
- UI: Jetpack Compose con arquitectura declarativa y navegación segura.
- Inyección de Dependencias: Hilt 2.54 con procesamiento KSP.
- Base de Datos: Room 2.7.0-alpha11.
- Procesamiento de Símbolos: KSP para una generación de código eficiente.
- Carga de Imágenes: Coil para la gestión eficiente de recursos gráficos.
El proyecto está configurado para ser compatible con el compilador de Kotlin 2.1.0. Se han aplicado los siguientes ajustes técnicos críticos:
- Room 2.7.0-alpha11: Se utiliza esta versión específica para corregir el error de KSP
unexpected jvm signature Vque ocurre en versiones estables anteriores al compilar con Kotlin 2.1. - Hilt 2.54: Versión actualizada para mantener la compatibilidad con el procesamiento de símbolos (KSP) y las nuevas firmas de Room.
Sommelier/
├── app/src/main/java/com/example/sommelier/
│ ├── data/ # Capa de Datos: Room, DAOs, Entidades e implementación de Repositorios.
│ ├── di/ # Inyección de Dependencias: Módulos de Hilt para proveer dependencias.
│ ├── domain/ # Capa de Dominio: Casos de uso (UseCases) y Modelos de negocio puros.
│ ├── presentation/ # Capa de UI: Screens, ViewModels, Componibles y Navegación.
│ └── ui/theme/ # Definición estética del proyecto (Colores, Tipografía y Temas).
├── docs/ # Documentación y anexos técnicos del proyecto.
│ ├── Memoria_Tecnica_Sommelier.pdf
│ ├── Anexo_B_Paleta_Colores_Sommelier.pdf
│ └── MANUAL_USUARIO.md
└── README.md # Documentación principal del proyecto.
- Proyecto Final Intermodular
- Ciclo: 2º DAM (Desarrollo de Aplicaciones Multiplataforma)
- Autora: Jenifer González Branco
Este proyecto demuestra el dominio de persistencia de datos relacionales, inyección de dependencias avanzada y principios de diseño UX/UI en ecosistemas móviles modernos.