title: | Defensa: Tesina de Licenciatura (Luciano Coggiola) |
---|---|
Author: | Luciano Coggiola |
description: | Defensa Tesina de grado: "Mi Universidad: una aplicación móvil para mejorar la experiencia de usuario de los estudiantes de la Universidad Nacional de La Plata". Tesina de Licenciatura en Informática de Luciano Coggiola. |
keywords: | presentación, tesina, unlp, facultad de informática, defensa, mi universidad, luciano coggiola, app, móvil |
css: | estilos/unlp.css estilos/presentacion.css |
id: | principal |
---|
"Mi Universidad: una aplicación móvil para mejorar la experiencia de usuario de los estudiantes de la Universidad Nacional de La Plata."
Autor: Luciano Coggiola.
Directores: Javier Díaz, Paola Amadeo.
Asesor Profesional: Alejandra Osorio.
Note
- Realizar presentación personal:
- Nombre
- comentar cual es mi relacion laboral
- Cespi -> Acceso a Sistemas universitarios (guarani, sipu, sipecu, moodle, kimkelen, meran).
id: | agenda |
---|
Introducción y objetivos
Contexto
Mi Universidad
- Backend
- Frontend
- Funcionalidad
- Plugins
- Usabilidad
Conclusión
id: | introduccion |
---|---|
data-x: | 0 |
data-y: | r1000 |
- Smartphones: amplio uso.
- Tecnologías: GPS, notificaciones, cámara...
- Sistemas abiertos.
Comunicación: mejora UX.
Integración de servicios: Interfaz genérica
Note
- Amplio uso: La penetración de smartphones: 24% de la población, propietarios -> alta dependiencia. El 71% de estos, accede a Internet todos los días desde su teléfono inteligente, y no sale de su casa sin llevarlo. Implicación: Presencia: quienes incluyan tecnologías móviles como parte central de su estrategia, se beneficiarán de la oportunidad de atraer a estos nuevos usuarios conectados en forma permanente.
- Mayor comunicación
- Tecnologías: GPS, lector de huellas, notificaciones, acelerometro, camara -> integracion de tecnologias
- Universidades utilizan sistemas abiertos -> Solucion disponible a otras universidades.
Comunicacion: enriquezca entre los alumnos y la entidad -> mejorar su experiencia de usuario
id: | intro_integracion |
---|---|
data-y: | r0 |
data-x: | r1400 |
data-y: | r0 |
---|---|
data-x: | r1400 |
Integración de servicios para mejorar:
- Comunicación entre alumnos, Universidad y Dependencias.
- Sociabilización de contenidos
- Presencia de la UNLP.
Note
Integración para esta tesina: Moodle y guarani con app.
id: | objetivos_especificos |
---|
Analizar:
- Contexto y aplicaciones existentes
- Herramientas para desarrollo de apps móviles.
- Servicios existentes (UNLP)
Desarrollar:
- Aplicación móvil
- API de integración
- Plugin Guaraní
- Plugin Moodle
Verificar
- Usabilidad.
Note
- apps existentes en Argentina y el mundo para determinar las características mas relevantes de este desarrollo
- herramientas existentes: desarrollo app, multiplataforma, aprovechando tecnologias
- integracion servicios UNLP
- Desarrollo App: comunicar/representar info
- API: interfaz genérica, segura
- guaraní: contribución a universidades
- moodle: idem, open source.
- tecnicas de usabilidad para verificar el impacto en el uso de la herramienta. Estas permiten obtener un feedback de los potenciales usuarios
data-y: | r1000 |
---|---|
data-x: | 0 |
id: | cap_1 |
id: | cap_1_oss |
---|---|
data-x: | r500 |
data-y: | r0 |
data-scale: | 0.1 |
Datos obtenidos de Google Analytics en los Guaraní de todas las Facultades (Enero a Septiembre, 2017)
Note
- "Si pensamos en una app", debemos analizar implementacion a qué plataformas está enfocada (tesis)
- Google Analytics: 01/2017 a 09/2017 en UNLP (guarani, cespi). Fechas pico de uso.
- comentar sobre versiones: 4.4 o superiores (94%).
- Enlazar con "algunas aplicaciones existentes"
id: | cap_1_apps |
---|---|
data-y: | r100 |
data-x: | r0 |
- El mundo: Kurogo, Harvard, Oxford
- UNLP y Argentina: Informática UNLP, Jursoc UNLP, UNLP ART
Note
- Resaltar Kurogo: plataforma (Modo Labs) para crear apps móviles. Modular. Calendario, mensajeria, Biblioteca, emergencias, comedor, estacionamiento.
- Info UNLPNovedades, aulas y horarios (de materias, código QR), info institucional y academica.
- jursoc: Ubicacion de edificio GPS, nros sorteo.
- ART: tels útiles, trámites.
data-y: | r0 |
---|---|
data-x: | r250 |
- Novedades
- Planificación estudiantil
- Geolocalización
- Presencia Universitaria
Note
- novedades: : diversidad en la forma de comunicacion en la universidad. Multiples apps. "pull to refresh".
- planificacion estudiantil: organizacion de fechas/horarios. Apps: Timetable (administrar tareas, examenes, sincronizar calend.)
- Geoloc.: : < costos y > acceso red => Uso de geoloc.
- presencia: presente en los dispositivos moviles (smartphones y tablets), ámbito de las aplicaciones y tiendas virtuales, estableciendo un canal de difusion de contenidos.
- Concluir, para pasar al desarrollo.
data-y: | r1000 |
---|---|
data-x: | 0 |
data-scale: | 1 |
id: | cap_2_3_mi_universidad_pantalla |
data-y: | r0 |
---|---|
data-x: | r375 |
id: | cap_2_3 |
- Licencia
- Integración (backend)
- Con otros Servicios externos
- Con Aplicación móvil
- Aplicación móvil (frontend)
- Plugins
- Usabilidad
Note
- Considerar los mecanismos para:
- Licencia: Expresar la libertad de uso, copia y modificación del desarrollo.
- Brindar un mecanismo genérico para integrar información útil para el estudiante, entre distintos sistemas implementados en la unlp (API para servicios externos).
- Comunicar datos de interés entre el backend y los dispositivos móviles.
- Proveer nuevas operaciones y que estas estén disponibles para su uso externo, a través de otros sistemas (plugins).
- Representar estos datos en una aplicación móvil, de manera sencilla y que el usuario encuentre cómodo al momento de su utilización (Usabilidad).
id: | cap_2_3_gnu_gpl |
---|---|
data-x: | r800 |
data-y: | r0 |
data-scale: | 0.1 |
Backend (API) | https://github.com/tanoinc/mi-universidad-api |
Frontend (App móvil) | https://github.com/tanoinc/mi-universidad-app |
Plugin Moodle | https://github.com/tanoinc/moodle-message_miuniversidad |
Plugin Guaraní | Colab (SIU) |
Tesis (LaTeX) | https://github.com/tanoinc/tesis |
Esta presentación (Hovercraft!) | https://github.com/tanoinc/tesis-presentacion |
Note
- GNU GPL v3: Richard Stallman -> proyecto GNU. Garantias al usuario final: utilizar, compartir, estudiar y cambiar el software. Su objetivo es declarar que los desarrollos que estén bajo esta licencia sean libres y estén protegidos por copyleft, evitando que futuras modificaciones por terceros restrinjan las libertades que brinda esta licencia.
- SIU Comunidad y Javier y LINTI promeve el uso de y desarrollo de software libre
- La seguridad: Cuantas más personas vean el código, es más probable que detecten errores y los corrijan. Esto tiene un impacto directo en el marco de la seguridad.
- La calidad: En relación con el inciso anterior, la cantidad de usuarios de un desarrollo, también influye, ya que permite que estos incorporen nuevas funcionalidades o las mejoren.
- Personalización: Al permitir modificaciones, habilita a que estas se realicen para adaptarse a las necesidades del usuario u organismo.
- La libertad: La utilización de software de "código abierto" libera el hecho de "estar atado" a una tecnología propietaria.
- La interoperabilidad: Suele adhiere más a los estándares libres que el software privativo, lo que evita estar limitado al uso de formatos cerrados.
- La auditabilidad: La visibilidad del código permite a los usuarios ver las acciones que este ejecuta.
- Las opciones de soporte: El soporte es gratis a través de la asistencia de la comunidad de usuarios y desarrolladores. También existe el soporte pago, cuando es requerido asegurarse un mantenimiento.
- La gratuidad (sin costo): por definición es gratis.
- Las pruebas de un producto: Ayuda a evaluar un software antes de utilizarlo.
id: | cap_2_3_integracion |
---|---|
data-x: | 0 |
data-y: | r500 |
API REST (JSON) con Autenticación
- Servicios externos: API Key/API Secret
- Aplicación móvil: OAuth2
PHP >= 5.6 y Lumen 5.4 (de Laravel)
MySQL o Postgres (probadas). Soportadas: SQLite y SQL Server
Note
- REST: JSON(simple, compacto <overhead). Sin estado. Orientada a recursos. Acceso mediante URI. Métodos HTTP (verbos CRUD). Versionable.
- OAuth2: verificar que aplicaciones tengan los permisos, en nombre del usuario (sin conocer sus credenciales). Resource Owner Password Credentials Grant. Tokens de acceso.
- API Key/API Secret: identificar al sistema. valida que los datos no fueron adulterados. Sobre https -> encriptado y replay attack.
- PHP: multiparadigma, multiplataforma, muy usado: 82% (ASP 14, java 2,5). Experiencia.
- Lumen: microframework de laravel orientado a APIS (sin sesiones y templates). Laravel muy usado. Lumen rápido: 50.000 solicitudes por minuto, y se logró tener respuestas de 6 milisegundos para configuraciones de PHP con HHVM y de 25 milisegundos utilizando PHP-FPM.
id: | cap_2_3_backend_diagrama |
---|---|
data-x: | r800 |
data-y: | r0 |
id: | cap_2_3_frontend |
---|
Híbrida: Framework Ionic2 (Apache Cordova)
HTML5, CSS3, Javascript (Angular con TypeScript)
Navegación Primaria: Pestañas (persistente) / Side Drawer (Transitorio)
Navegación Secundaria: Tarjeta/Menú lista
Note
- Híbrdas: Ventajas: Multiplataforma. Menor costo. Menor curva de aprendizaje (tecnologías web, > recursos humanos). Desventajas: Menor diseño (look and feel). Menor performance.
- Cordova: Open Source (viene de PhoneGap, Nitobi). Contenedor con Capa Javascript acceder funcionalidad móviles.
- Ionic2: Framwork. Angular. Typescript. Look and Feel multiplataforma HTML5, CSS3, SASS, transiciones aceleradas por HW. Ventajas: Diseño=> usabilidad. Modificaciones en vivo. Mayor performance. Angular 2 con typescript. PWA. Amplia comunidad. Aclarar soporte version Adroid 4.4 > 94% de estudiantes. OTROS FRAMEWORKS: ReactNative y NativeScript.
- Interfaz de usuario: se evaluaron otros patrones de diseño de interfaces.
id: | cap_2_3_frontend_imagen |
---|---|
data-x: | r200 |
id: | cap_2_3_funcionalidad |
---|---|
data-x: | 0 |
data-y: | r500 |
Puntos de Integración: Funcionalidad clave, genérica y transversal a cualquier servicio, que tiene el potencial de ser integrada en la aplicación
Servicios externos: Sistemas independientes que tienen la capacidad de integrarse a Mi Universidad.
Contextos: Son "temáticas" definidas por los servicios externos.
Note
- Puntos de Integración: Cabe destacar que hay una relación directa entre estos puntos y la definición de la API, ya que estos serán expuestos a través de ella.
- Servicios externos: Su comunicacion se establece a traves de la API haciendo referencia a los puntos de integracion. Ademas, los usuarios tienen la posibilidad de añadir a sus cuentas personales, los servicios a los cuales esten interesados.
id: | cap_2_3_funcionalidad_puntos |
---|---|
data-x: | r800 |
data-y: | r0 |
A continuación:
- Novedades
- Calendario
- Contenidos
- Mapas de Google
- Texto
id: | cap_2_3_funcionalidad_puntos_novedades |
---|
Novedades
Note
- Punto de integración: Novedades. Su modalidad de navegación secundaria es de lista y tarjeta (similar a aplicaciones como Facebook, Instagram y YouTube).
id: | cap_2_3_funcionalidad_puntos_calendario |
---|
Calendario
Note
- Punto de integración: Calendario.
Contenidos: Mapas
id: | cap_2_3_funcionalidad_puntos_mapa |
---|
Note
- Contenidos dinámico. Los da de alta el servicio externo.
- Punto de integración: Contenidos Google Maps.
- Solicitud HTTP a una URL externa, obtener datos: Marcadores Representan puntos en el mapa asociados con un ícono y un texto. Centro, Polígonos y lineas*
- Punto de integración: Contenidos Texto. Solicitud HTTP a una URL externa. Formato markdown.
- "Globales" y "No Globales"
- Con destinatarios
- Sin destinatarios
- Con contexto asociado
Ionic Services
Note
- "Globales" y "No Globales"
- Con destinatarios: Notifican solamente a los usuarios del listado asociado.
- Sin destinatarios: Notifican a todos los usuarios que utilizan los servicios externos
- Con contexto asociado: Notifican a todos los usuarios interesados en él.
- Utiliza servicio de Ionic: Abstrae diferencias entre implementaciones de los distintos SOs.
id: | cap_2_3_funcionalidad_notificaciones |
---|
A servicios externos...
- Libre
- Requiere autenticación
id: | cap_2_3_funcionalidad_secuencia_anadir_servicio |
---|
id: | cap_2_3_funcionalidad_contextos |
---|
- Permisos
- Pull to refresh
- Login
- i18n
- Estilos personalizables
- Introducción (configurable)
Note
- Qué operaciones pueden ser utilizadas por cada servicio. Existe un permiso por cada entrada de la API (URL y metodo HTTP).
- Pull to refresh: estos se pueden refrescar con el gesto "pull to refresh" (deslizar para recargar). Este consiste en deslizar la pantalla hacia abajo para actualizar los contenidos.
- Login: Manual o facebook
- Internacionalización: La aplicación soporta múltiples lenguajes que toma de la configuración del dispositivo. Para el alcance de esta tesis, solo hay definidos dos: Español e Inglés.
- Estilos personalizables: Mediante Sass (soportado por Ionic) se permiten personalizar los estilos y sus variables en archivos separados. Esto facilita la edición del diseño para otras Universidades. Por otro lado, si se necesitan realizar modificaciones, se puede aprovechar del mecanismo de versionado de GitHub para hacer un fork del proyecto y realizar los cambios necesarios. Ejemplo: rama master y rama UNLP
- Introducción configurable: La primera vez que se abre la aplicación aparecen una serie de diapositivas, que hacen de tutorial para mostrar las funcionalidades del sistema. Estas son configurables.
id: | cap_2_3_funcionalidad_api |
---|---|
data-x: | 0 |
data-y: | r500 |
Utilizada por los servicios externos.
- POST /api/v1/newsfeed, /api/v1/calendar_event, content/google_map, /api/v1/content/text
- DELETE /api/v1/content/{id}
- GET /api/v1/geolocation/user/{id_usuario}, POST /api/v1/geolocation/users
Códigos de respuesta: 200, 401, 403, 404, 422, 500...
Swagger: https://app.swaggerhub.com/apis/tanoinc/mi-universidad/1.0.0
id: | cap_2_3_plugins_guarani |
---|---|
data-x: | 0 |
data-y: | r500 |
Framework SIU Chulupí (PHP): "Personalización"
- 2.9.x: Informix
- 3.x: Postgres
Funcionalidad
- Interconexión entre usuarios
- Envío de mensajes
- Fechas de parciales
Colab (SIU)
id: | cap_2_3_plugins_guarani_imagen |
---|---|
data-x: | r800 |
data-y: | r0 |
id: | cap_2_3_plugins_moodle |
---|---|
data-x: | 0 |
data-y: | r500 |
Tipo: message output
Funcionalidad
- Mensajería
- Foro de novedades y consultas
GNU GPL v3: GitHub
Note
- Se puede usar en versiones anteriores.
- Mensajería: Los mensajes personales que se reciban dentro de la plataforma, se envían como novedades personales con notificacion a Mi Universidad. De esta manera un alumno podra saber con una notificación cuando le envían un mensaje privado. Esta característica se puede deshabilitar y es configurable por el usuario desde Moodle.
- Foro de novedades y consultas: Los anuncios que se realicen en el foro de novedades, seran enviados a traves de Mi Universidad a los alumnos del curso y ademas quedaran asociados a su contexto. De esta manera los alumnos que no pertenezcan al curso pero quieran estar al tanto de las novedades, puedan hacerlo, suscribiendose.
id: | cap_2_3_plugins_moodle_imagen |
---|---|
data-x: | r800 |
data-y: | r0 |
id: | cap_2_3_usabilidad |
---|---|
data-x: | 0 |
data-y: | r500 |
Recomendaciones de Nielsen Norman Group: Focus group
- Preparación del producto
- Selección de participantes
- Selección de coordinación
Note
- Nielsen Norman Group: estudio a obtener datos de una investigación cualitativa con usuarios.
- Focus group: son una forma de entrevista grupal que se centra en la comunicacion entre los participantes de la investigacion para generar nueva informacion (datos, ideas, correcciones, etcetera).
- La charla grupal favorecio a la prueba. La interaccion entre los participantes permitio explorar el conocimiento y experiencia de las personas. De esta manera se pudo explorar no solo lo que pensaban, sino tambien como lo hacían y por qué.
data-x: | r800 |
---|---|
data-y: | r0 |
Lista de tareas
Reuniones: 18/08 y 13/09 de 2017
id: | cap_2_3_usabilidad_focus |
---|
Note
- Accesibilidad: Maxi pertenece a la dirección de accesibilidad de la facultad.
id: | cap_2_3_usabilidad_resultados |
---|
Note
- Resaltar el proceso inicial de suscripciones
- Establecer ayudas para aclarar qué realiza cada botón
- En Android: modificar el gesto para eliminar un servicio.
- Agregar un mensaje de bienvenida al abrir la aplicación mostrando un resumen de sus funcionalidades. Considerar la posibilidad de volver a reproducir y cancelar
id: | cap_4_conclusion |
---|---|
data-y: | r1000 |
data-x: | 0 |
data-scale: | 1 |
Note
- se puede desarrollar una solucion para facilitar el acceso a la informacion por parte de los alumnos, que sea:
- abierta (utilizando software Open Source y estandares abiertos),
- distribuida,
- extensible a otras Universidades,
- con una interfaz publica que pueda ser consultada y utilizada por otrosservicios,
- que permita integrar aspectos claves de multiples sistemas.
- TRABAJOS FUTUROS: alumnos internacionales. Mejorar contenidos existentes e incorporar nuevos. MAyor integracion rede sociales. Motor de busqueda Elastic, Sphinx, Lucene. API Gateway TYK.