RosterPro: Gestión Inteligente de Horarios
Ismael José Maksim Georgiev
Proyecto de Fin de Grado (2º DAM): Automatización nativa en Java con Android Studio
La solución: RosterPro
El problema: Gestión manual
Automatización eficiente mediante Gestión manual vs RosterPro Eliminación drástica de errores humanos Garantía de equidad absoluta en turnos Control centralizado de incidencias Transparencia operativa total
- Dependencia crítica de hojas de cálculo y WhatsApp
- Alta incidencia de errores humanos y omisiones
- Sujeto a falta de equidad y sesgos subjetivos
- Caos absoluto en la gestión de turnos
- Dificultad para coordinar bajas y vacaciones
- Desgaste innecesario de tiempo y recursos
La solución definitiva
La solución integral:
- Automatización total: Generación de turnos con un solo botón.
- Justicia algorítmica: Reparto equitativo y transparente.
- Centralización de vacaciones y restricciones.
- Gestión de cambios de turno entre compañeros.
- Funcionamiento 100% offline y gratuito.
Nuestra aplicación elimina las fricciones tradicionales al ser totalmente gratuita, funcionar sin conexión a internet al almacenar todo localmente y ofrecer una interfaz intuitiva.
RosterPro: Funcionalidades según el perfil
Perfil Jefe: Gestión integral de la plantilla, creación y publicación de cuadrantes.
Perfil Empleado: Consulta de horarios y visualización de turnos asignados.
Aprobación o rechazo de solicitudes de vacaciones y cambios de turno.
Envío de solicitudes para cambios de turno o días de vacaciones.
Registro de restricciones horarias personales para el proceso de planificación.
Flujo de trabajo colaborativo con visibilidad clara para ambos roles.
Arquitectura y Tecnologías Base
El desarrollo se ha realizado íntegramente en Java 11 utilizando el entorno Android Studio, garantizando robustez y compatibilidad. Implementamos el patrón MVC (Modelo-Vista-Controlador) para desacoplar la lógica de negocio de la interfaz, facilitando el mantenimiento. Para el almacenamiento persistente, empleamos la librería Room, un ORM que abstrae SQLite y nos permite gestionar la base de datos local de forma eficiente, eliminando la necesidad de escribir sentencias SQL complejas manualmente.
Tecnología de Interfaz y Persistencia
Anotación @TypeConverterAutomatiza la persistencia de datos complejos mediante Room ORM.
Material Design 3Componentes modernos para una experiencia limpia e intuitiva.
TypeConvertersPermiten transformar objetos complejos, como listas, en texto para SQLite.
ConstraintLayoutLayouts responsivos flexibles y optimizados para cualquier pantalla.
GlassmorphismEfectos visuales estéticos aplicados en pantallas clave.
El "Cerebro" de la Asignación
Proceso paso a paso
Lógica de asignación justa
- Filtro de disponibilidad: Descarta automáticamente a los empleados con vacaciones o restricciones horarias activas.
- Aleatoriedad (SecureRandom): Mezcla el pool de candidatos para evitar patrones predecibles o estáticos.
- Desempate por carga: Selecciona al trabajador con menos turnos acumulados para equilibrar la plantilla.
- El algoritmo procesa la semana día a día, analizando cada turno disponible.
- Primero aplica el Filtro de disponibilidad para descartar conflictos.
- Luego, utiliza SecureRandom para una selección imparcial, cerrando con el Desempate por carga para una equidad absoluta.
Define brand personality and values
Planificación detallada (Semanas 4-5)
Ciclo de vida: Planificación de 15 semanas
Fase creativa de diseño (Semanas 6-7)
Programación intensiva (Semanas 8-12)
Pruebas integrales de calidad
Pruebas integrales de calidad
El "Cerebro" de la Asignación
Persistencia
Interfaz
Algoritmo
Desarrollamos una lógica de detección de esquema que reintegra automáticamente los datos de prueba, mitigando los problemas de integridad durante el desarrollo.
Al elevar los componentes sobre las tarjetas mediante elevation, resolvimos la visibilidad de los indicadores de notificación, mejorando la experiencia de usuario.
La aplicación de SecureRandom garantiza una distribución más justa y equitativa en la asignación de turnos, superando la falta de equidad detectada.
Para resolver la falta de equidad en el algoritmo, integramos SecureRandom para aleatorizar la lista de candidatos, eliminando sesgos persistentes.
Los Badges de notificación no eran visibles al quedar ocultos. Ajustamos la elevación de las vistas para asegurar una correcta jerarquía visual.
Ante la pérdida de datos por cambios en el esquema, implementamos un sistema automático que detecta recreaciones de la base de datos para restaurar los datos de prueba.
Evolución y Escalabilidad: Rumbo a RosterPro 2.0
Migración a Firebase/Supabase: Sincronización en la nube para eliminar la dependencia del almacenamiento local.
Geolocalización: Registro de entrada y salida verificado mediante ubicación GPS.
Notificaciones Push: Comunicación inmediata ante aprobaciones, rechazos o cambios de turnos.
Arquitectura optimizada para soportar múltiples perfiles de usuario concurrentes.
Implementación de fichaje por códigos QR para accesos rápidos en instalaciones físicas.
Enfoque en convertir la herramienta en un SaaS competitivo para empresas de retail.
Arquitectura y Tecnologías Base
El desarrollo se ha realizado íntegramente en Java 11 utilizando el entorno Android Studio, garantizando robustez y compatibilidad. Implementamos el patrón MVC (Modelo-Vista-Controlador) para desacoplar la lógica de negocio de la interfaz, facilitando el mantenimiento. Para el almacenamiento persistente, empleamos la librería Room, un ORM que abstrae SQLite y nos permite gestionar la base de datos local de forma eficiente, eliminando la necesidad de escribir sentencias SQL complejas manualmente.
"Lograr una herramienta intuitiva que resuelve problemas reales demuestra que el orden técnico es la base de la innovación."
Al concluir este TFG, confirmamos que RosterPro no solo es funcional, sino que cumple su propósito de automatizar horarios de forma justa y dinámica. El proyecto reafirma que una arquitectura sólida y una organización del código impecable desde el primer día son los pilares fundamentales para un desarrollo fluido y exitoso.
Muchas gracias
Una identidad visual sólida permite transmitir valores, conectar con las personas y construir marcas memorables. Diseñar con coherencia no es solo una decisión estética: es una estrategia de comunicación.
El Rol de GestorDatos
La clase GestorDatos actúa como una Fachada que centraliza toda la lógica de negocio relacionada con la persistencia. Al actuar como intermediario, permite que las Activities soliciten información mediante métodos sencillos, sin necesidad de conocer los detalles técnicos o la estructura interna de Room. Esta abstracción desacopla la interfaz de usuario de la base de datos, facilitando el mantenimiento y garantizando que las pantallas solo gestionen la representación de los datos, delegando las operaciones complejas a un punto único de control.
El Rol de GestorDatos
La clase GestorDatos actúa como una Fachada que centraliza toda la lógica de negocio relacionada con la persistencia. Al actuar como intermediario, permite que las Activities soliciten información mediante métodos sencillos, sin necesidad de conocer los detalles técnicos o la estructura interna de Room. Esta abstracción desacopla la interfaz de usuario de la base de datos, facilitando el mantenimiento y garantizando que las pantallas solo gestionen la representación de los datos, delegando las operaciones complejas a un punto único de control.
RosterPro: Gestión Inteligente de Horarios en Android
ismaelj085
Created on June 5, 2026
Explora RosterPro, una app nativa Android que automatiza la creación de turnos laborales mediante algoritmos de equidad. Conoce su arquitectura técnica, el uso de Room y Room, y cómo optimiza la gestión del talento con un enfoque en la UX.
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Momentum: Employee Introduction Presentation
View
Corporate Fluid Presentation
View
Corporate Culture Presentation
View
Executive Presentation
View
Professional Presentation
View
Creative Presentation
View
Momentum: Onboarding Presentation
Explore all templates
Transcript
RosterPro: Gestión Inteligente de Horarios
Ismael José Maksim Georgiev
Proyecto de Fin de Grado (2º DAM): Automatización nativa en Java con Android Studio
La solución: RosterPro
El problema: Gestión manual
Automatización eficiente mediante Gestión manual vs RosterPro Eliminación drástica de errores humanos Garantía de equidad absoluta en turnos Control centralizado de incidencias Transparencia operativa total
La solución definitiva
La solución integral:
Nuestra aplicación elimina las fricciones tradicionales al ser totalmente gratuita, funcionar sin conexión a internet al almacenar todo localmente y ofrecer una interfaz intuitiva.
RosterPro: Funcionalidades según el perfil
Perfil Jefe: Gestión integral de la plantilla, creación y publicación de cuadrantes.
Perfil Empleado: Consulta de horarios y visualización de turnos asignados.
Aprobación o rechazo de solicitudes de vacaciones y cambios de turno.
Envío de solicitudes para cambios de turno o días de vacaciones.
Registro de restricciones horarias personales para el proceso de planificación.
Flujo de trabajo colaborativo con visibilidad clara para ambos roles.
Arquitectura y Tecnologías Base
El desarrollo se ha realizado íntegramente en Java 11 utilizando el entorno Android Studio, garantizando robustez y compatibilidad. Implementamos el patrón MVC (Modelo-Vista-Controlador) para desacoplar la lógica de negocio de la interfaz, facilitando el mantenimiento. Para el almacenamiento persistente, empleamos la librería Room, un ORM que abstrae SQLite y nos permite gestionar la base de datos local de forma eficiente, eliminando la necesidad de escribir sentencias SQL complejas manualmente.
Tecnología de Interfaz y Persistencia
Anotación @TypeConverterAutomatiza la persistencia de datos complejos mediante Room ORM.
Material Design 3Componentes modernos para una experiencia limpia e intuitiva.
TypeConvertersPermiten transformar objetos complejos, como listas, en texto para SQLite.
ConstraintLayoutLayouts responsivos flexibles y optimizados para cualquier pantalla.
GlassmorphismEfectos visuales estéticos aplicados en pantallas clave.
El "Cerebro" de la Asignación
Proceso paso a paso
Lógica de asignación justa
Define brand personality and values
Planificación detallada (Semanas 4-5)
Ciclo de vida: Planificación de 15 semanas
Fase creativa de diseño (Semanas 6-7)
Programación intensiva (Semanas 8-12)
Pruebas integrales de calidad
Pruebas integrales de calidad
El "Cerebro" de la Asignación
Persistencia
Interfaz
Algoritmo
Desarrollamos una lógica de detección de esquema que reintegra automáticamente los datos de prueba, mitigando los problemas de integridad durante el desarrollo.
Al elevar los componentes sobre las tarjetas mediante elevation, resolvimos la visibilidad de los indicadores de notificación, mejorando la experiencia de usuario.
La aplicación de SecureRandom garantiza una distribución más justa y equitativa en la asignación de turnos, superando la falta de equidad detectada.
Para resolver la falta de equidad en el algoritmo, integramos SecureRandom para aleatorizar la lista de candidatos, eliminando sesgos persistentes.
Los Badges de notificación no eran visibles al quedar ocultos. Ajustamos la elevación de las vistas para asegurar una correcta jerarquía visual.
Ante la pérdida de datos por cambios en el esquema, implementamos un sistema automático que detecta recreaciones de la base de datos para restaurar los datos de prueba.
Evolución y Escalabilidad: Rumbo a RosterPro 2.0
Migración a Firebase/Supabase: Sincronización en la nube para eliminar la dependencia del almacenamiento local.
Geolocalización: Registro de entrada y salida verificado mediante ubicación GPS.
Notificaciones Push: Comunicación inmediata ante aprobaciones, rechazos o cambios de turnos.
Arquitectura optimizada para soportar múltiples perfiles de usuario concurrentes.
Implementación de fichaje por códigos QR para accesos rápidos en instalaciones físicas.
Enfoque en convertir la herramienta en un SaaS competitivo para empresas de retail.
Arquitectura y Tecnologías Base
El desarrollo se ha realizado íntegramente en Java 11 utilizando el entorno Android Studio, garantizando robustez y compatibilidad. Implementamos el patrón MVC (Modelo-Vista-Controlador) para desacoplar la lógica de negocio de la interfaz, facilitando el mantenimiento. Para el almacenamiento persistente, empleamos la librería Room, un ORM que abstrae SQLite y nos permite gestionar la base de datos local de forma eficiente, eliminando la necesidad de escribir sentencias SQL complejas manualmente.
"Lograr una herramienta intuitiva que resuelve problemas reales demuestra que el orden técnico es la base de la innovación."
Al concluir este TFG, confirmamos que RosterPro no solo es funcional, sino que cumple su propósito de automatizar horarios de forma justa y dinámica. El proyecto reafirma que una arquitectura sólida y una organización del código impecable desde el primer día son los pilares fundamentales para un desarrollo fluido y exitoso.
Muchas gracias
Una identidad visual sólida permite transmitir valores, conectar con las personas y construir marcas memorables. Diseñar con coherencia no es solo una decisión estética: es una estrategia de comunicación.
El Rol de GestorDatos
La clase GestorDatos actúa como una Fachada que centraliza toda la lógica de negocio relacionada con la persistencia. Al actuar como intermediario, permite que las Activities soliciten información mediante métodos sencillos, sin necesidad de conocer los detalles técnicos o la estructura interna de Room. Esta abstracción desacopla la interfaz de usuario de la base de datos, facilitando el mantenimiento y garantizando que las pantallas solo gestionen la representación de los datos, delegando las operaciones complejas a un punto único de control.
El Rol de GestorDatos
La clase GestorDatos actúa como una Fachada que centraliza toda la lógica de negocio relacionada con la persistencia. Al actuar como intermediario, permite que las Activities soliciten información mediante métodos sencillos, sin necesidad de conocer los detalles técnicos o la estructura interna de Room. Esta abstracción desacopla la interfaz de usuario de la base de datos, facilitando el mantenimiento y garantizando que las pantallas solo gestionen la representación de los datos, delegando las operaciones complejas a un punto único de control.