TFG EN ENGINYERIA INFORMÀTICA, ESCOLA D’ENGINYERIA (EE .

3y ago
64 Views
3 Downloads
812.19 KB
14 Pages
Last View : 12d ago
Last Download : 3m ago
Upload by : Ophelia Arruda
Transcription

TFG EN ENGINYERIA INFORMÀTICA, ESCOLA D’ENGINYERIA (EE), UNIVERSITAT AUTÒNOMA DE BARCELONA (UAB)JoinApp – L’aplicació Android de controld’assistència a través de BluetoothMario Aguilar SánchezResum — Aquest document presenta el desenvolupament de JoinApp, una aplicació Android per a verificar l’assistència a unevent mitjançant la tecnologia Bluetooth. Una aplicació disponible tant pels assistents com pels amfitrions de l’event quepermet confirmar la presencia per proximitat fent una lectura de l’adreça MAC Bluetooth en un sentit o altre. Tot això sense lanecessitat d’utilitzar altres dispositius que no siguin els smartphones que portem a tot arreu. Darrere d’aquesta solució estanprincipalment Ionic, un framework per a crear aplicacions mòbils híbrides amb Angular, i Firebase, un backend-as-a-service deGoogle que ens permet gestionar les dades i l’accés dels usuaris d’una forma ràpida i segura.Paraules clau — Control d’assistència, aplicacions mòbils, Bluetooth, Ionic, Angular, Firebase, AndroidAbstract — This document presents the development of JoinApp, an Android application to verify attendance to an event usingBluetooth technology. An application available to both attendees and hosts of the event that allows confirmation of presence byproximity by reading a Bluetooth MAC address in one way or another. All this without the need of using other devices that arenot the smartphones we carry everywhere. Behind this solution are mainly Ionic, a framework for creating hybrid mobileapplications with Angular, and Firebase, a backend-as-a-service by Google that allows us to manage the data and user accessquickly and safely.Index terms — Attendance control, mobile applications, Bluetooth, Ionic, Angular, Firebase, Android—————————— ——————————1 INTRODUCCIÓCOM a estudiant d’últim curs d’enginyeriainformàtica a l’UAB he pogut comprovar queexisteix una manca d’agilitat a l’hora de controlarl’assistència dels estudiants a les classes on el professorho desitja.de permetre la identificació i la detecció per proximitatdels assistents. Existeixen diverses tecnologies que podrien servir a l’hora d’efectuar aquesta detecció. Les mésconegudes i utilitzades en el món mòbil són NFC, geolocalització i Bluetooth.El procés actual consisteix en un full de paper que elprofessor imprimeix prèviament amb el llistat de tots elsalumnes matriculats a l’assignatura i que reparteix durantla classe. Els estudiants es van passant de mà en mà el fulli el signen. Un cop ha passat per tots i cadascun delsestudiants aquest torna al professor, que més tard passaràa l’ordinador les dades per tal de fer el càlcul d’assistènciaper alumne.NFC és una tecnologia cada cop més utilitzada quant a lacomunicació entre dispositius per proximitat. El granproblema de la tecnologia NFC és que no tots els dispositius mòbils o smartphones disposen d’aquesta. A més amés aquest sistema funciona de forma eficient a una distància de pocs centímetres entre els dispositius.Aquest procés comporta un temps extra que elsprofessors han de dedicar tant abans de la sessió, per apreparar el full d’assistència, com després, a l’hora dedigitalitzar les dades obtingudes. A més a més elsestudiants no tenen accés a les seves dades d’assistènciallevat que portin el compte o les demanin al professor.Per a poder agilitzar aquest procés és inevitable utilitzarun sistema digital, a poder ser mòbil. Aquest sistema haLa geolocalització en canvi sí que és present en la majoriade dispositius mòbils. Malgrat això, la tecnologia GPSdepèn totalment d’una bona connexió amb els satèl·lits.Molts dels entorns potencials on s’utilitzarà l’aplicacióJoinApp seran entorns tancats, com aules, sales i edificis,on l’absència de senyal és una possibilitat.Finalment, hem decidit utilitzar la tecnologia Bluetooth.Bluetooth és present a quasi la totalitat dels dispositiusmòbils i a molts altres dispositius electrònics. És una tecnologia que detecta directament els dispositius en unrang d’almenys 10 metres i que no depèn de senyals externes �— E-mail de contacte: mario.aguilar@e-campus.uab.catMenció realitzada: Enginyeria del SoftwareTreball tutoritzat per: Robert Benavente (DCC)Curs 2017/182 OBJECTIUSEn aquesta secció definim els objectius principals i secundaris de l’aplicació.Juliol de 2018, Escola d’Enginyeria (UAB)1

2EE/UAB TFG INFORMÀTICA: JOINAPP – L’APLICACIÓ ANDROID DE CONTROL D’ASSISTÈNCIA A TRAVÉS DE BLUETOOTH2.1 Objectiu principalImplementar una aplicació per a dispositius mòbilsAndroid que mostri a l’amfitrió les persones que hanassistit a la seva conferència o classe mitjançant latecnologia Bluetooth i que estigui disponible a la PlayStore.Aquesta aplicació permetrà al professor o conferenciantestalviar-se la impressió dels fulls d’assistència i laposterior digitalització de les dades.D’aquesta manera es pretén modernitzar i agilitzar elprocés actual de control d’assistència que resulta tedióspels estudiants i sobretot pels professors.2.2 Objectius secundarisEls objectius secundaris de l’aplicació són: Poder autenticar-se mitjançant un compte ja existentde gmail.Poder seleccionar els assistents quan l’amfitrió creal’event.Que els assistents puguin tenir accés i coneixementde les classes i/o conferències a les quals han assistit ia les quals no.Poder crear grups d’events amb la mateixa llistad’assistents.Que els assistents puguin marcar per ells mateixosvia Bluetooth que han assistit, com a alternativa al’escaneig de tots els assistents per part de l’amfitrió.3 ESTAT DE L’ARTExisteixen moltes aplicacions mòbils que utilitzenBluetooth per al control de la proximitat. Una de lestecnologies més utilitzades és el beacon. (Figura 1)El beacon és un dispositiu de baix consum que emet unsenyal broadcast i que és suficientment petit per fixar-se aqualsevol espai. Es comunica amb els dispositius propersmitjançant una connexió Bluetooth de baix consum (BLE).Les implementacions més populars que utilitzen aquestatecnologia són: iBeacons (Apple) i Eddystone (Google).La gran millora que volem oferir amb la nostra aplicacióés l’eliminació d’aquest beacon o dispositiu intermedi ique qualsevol dispositiu mòbil pugui exercir tant el rold’assistent com d’amfitrió.Hi ha altres aplicacions al mercat que no utilitzenBluetooth però que permeten efectuar el controld’assistència basant-se en l’escaneig dels assistents perexemple a través d’un codi QR, com en el cas lay.google.com/store/apps/details?id com.pazhanam.checkin&hl en US).Les aplicacions més exitoses fins ara però, han estat lesque es basen en el control manual de l’assistència sensel’ús de cap tecnologia facilitadora. Així i tot disposen d’undisseny amigable. És el cas d’Attendance ?id dotinc.attendancemanager2&hl en US).4 METODOLOGIALa metodologia que hem seguit a l’hora de desenvoluparel projecte és Scrum, tot i que també ens hem recolzat enun taulell Kanban.4.1 ScrumScrum ens permet aportar una estratègia dedesenvolupament incremental, en lloc d’una planificacióexhaustiva. Scrum està enfocat al treball en equip, però enaquest cas hem fet una adaptació i hem utilitzat les partsde la metodologia que ens interessen. No han existit lesreunions diàries però sí que hem fet les d’inici i finald’sprint en les quals ha estat present el tutor. A més a méshem dividit les tasques en sprints que han coincidit ambels períodes entre entregues. La figura del product ownero client ha estat la del tutor.Un dels pilars més importants d’Scrum són les revisions.La seva importància resideix en què les reunions són labase per aconseguir transparència i comunicació. Enaquest aspecte hem aprofitat les reunions obligatòriesprogramades del TFG. Figura 1. Dispositiu transmissor de Bluetooth o BeaconReunió de planificació de l'sprint. Al principi de cadasprint, per decidir què volem realitzar en aquestsprint.Reunió de revisions de l’sprint. Al final de cadasprint, es tracta que s’ha completat i que no.Retrospectiva de l'sprint. També al final de l'sprint, iserveix perquè els implicats donin les sevesimpressions sobre l’sprint i s'utilitza per a la milloradel procés.

MARIO AGUILAR SÁNCHEZ: JOINAPP – L’APLICACIÓ ANDROID DE CONTROL D’ASSISTÈNCIA A TRAVÉS DE BLUETOOTH4.2 KanbanKanban ens ha servit com una eina de suportcomplementària a l’ús d’Scrum la qual ens ha permès: Visualitzar el que es fa (el flux de treball). Visualitzartotes les tasques i elements en una taula.Limitar la quantitat de treball en procés. Establirmetes assequibles.Fer un seguiment del temps de forma contínua iavaluar el treball amb precisió.Lectura fàcil d'indicadors visuals. Conèixer el queestà passant d'un sol cop d'ull. Utilitzar targetes decolors per distingir els tipus de treball, prioritats,etiquetes, dates límit.Identificar els colls d'ampolla i eliminar el que resultadescartable. L’eina Kanban que hem utilitzat ha estat Trello, a la qualha tingut accés el tutor o product owner.Totes les tasques dels diferents Sprints s’introdueixen alBacklog. Un cop comença l’Sprint, passem les tasquesrelacionades amb l’Sprint al taulell To Do.Immediatament quan comencem una tasca la movem a InProgress (només podem tenir una tasca per persona aaquest taulell). Si trobem algun impediment en larealització de la tasca, la podem bloquejar. En acabar laimplementació, la tasca es mou a Test on realitzemdiferents tests per tal de validar la seva correctesa.Finalment, un cop passem els tests amb èxit, la tascapassa a l’estat Done. 5 DESENVOLUPAMENTEn aquesta secció descrivim les principals característiquesdel desenvolupament de l’aplicació.Requeriments no funcionals: 5.1 RequerimentsA continuació es mostren els requeriments funcionals i nofuncionals derivats dels objectius de l’aplicació.Requeriments funcionals: Accés a l’aplicació: Els usuaris han de poder accedira l’aplicació mitjançant la creació d’un nou usuari a lapantalla de registre introduint un correu electrònic iuna contrasenya o utilitzant un compte Google.Navegació: Els usuaris han de tenir accés a totes lespantalles des d’un menú lateral.Perfil d’usuari: Els usuaris han de tenir accés a unapantalla de perfil on podran introduir l’adreçaBluetooth del dispositiu que utilitzaran com areceptor.Visualització de grups: Els usuaris han de podervisualitzar els grups dels quals són amfitrions i elsgrups dels quals són assistents en dues pestanyes dela mateixa pantalla.Creació, edició i eliminació de grups: Els usuarishan de poder crear grups. Els amfitrions han depoder editar i eliminar els seus grups. Els grupspoden ser públics o privats.Addició i eliminació de membres: L’amfitrió ha depoder afegir o eliminar membres del seu grup.Unió i sortida de grups: Un usuari pot unir-se aqualsevol grup públic i pot deixar qualsevol grup delqual és membre.Visualització d’events: Els usuaris han de podervisualitzar la llista i el detall dels events dels qualsformen part. Els usuaris han de visualitzar perdefecte els pròxims events ordenats per data i horad’inici. Els events que hagin finalitzat han de passar auna pestanya d’històric.Creació, edició i eliminació d’events: Els usuaris hande poder crear events. Els amfitrions han de podereditar i eliminar els seus events.Selecció de grup: L’amfitrió ha de poder seleccionarun dels seus grups a l’hora de crear un event. Enaquest cas, els membres del grup s’afegiran comassistents de l’event.Addició i eliminació d’assistents: L’amfitrió ha depoder afegir o eliminar assistents del seu event.Escaneig d’assistents: L’amfitrió ha de poderescanejar a través de Bluetooth els assistents al seuevent entre l’hora d’inici i l’hora final d’aquest.Marcat manual d’assistència: L’amfitrió ha de podermarcar l’assistència manualment com a alternativa al’escaneig amb Bluetooth.Escaneig d’amfitrió: Els assistents han de poderescanejar l’amfitrió de l’event a través de Bluetoothentre l’hora d’inici i l’hora final d’aquest. Disponibilitat: El sistema estarà sempre disponibleun cop publicada l’aplicació a la Play Store, excepteen casos de manteniment, en els quals s’avisarà alsusuaris amb antelació.Usabilitat: La interfície ha de ser fàcil i intuïtiva.L’aplicació ha de tenir el mínim de pantallespossibles. Les pantalles han de ser del tipus llista odetall.Seguretat: L’aplicació ha d’estar protegida davant depossibles atacs. Les dades més sensibles de l’usuari,com la contrasenya, han de ser encriptades abans deser emmagatzemades a la base de dades.Mantenibilitat: El disseny de l’aplicació quant a codiha de basar-se en el model o arquitectura decomponents.5.2 TecnologiesPer a implementar la nostra aplicació hem utilitzat Ionic[12], un framework per al desenvolupament d’aplicacionsmòbils hibrides que poden córrer tant en dispositiusAndroid com iOS.3

4EE/UAB TFG INFORMÀTICA: JOINAPP – L’APLICACIÓ ANDROID DE CONTROL D’ASSISTÈNCIA A TRAVÉS DE BLUETOOTHEl principal avantatge de les aplicacions híbrides enversles natives és que només s’ha de fer un desenvolupamentper a que l’aplicació funcioni en qualsevol plataformamentre que de l’altra forma hem d’implementar una appdiferent per a cadascuna. (Figura 2)Figura 2. Arquitectura híbrida Angular IonicPer a realitzar els dissenys de la interfície gràfica d’usuarihem fet servir Ionic Creator, una drag & drop tool quefacilita la maquetació de les pantalles de l’aplicació.Quant a la depuració de l’aplicació en dispositiusAndroid hem utilitzat Ionic Devapp. Una app disponiblegratuïtament a la Play Store que permet depurarqualsevol aplicació Ionic mentre estiguem connectats a lamateixa xarxa.També hem utilitzat Google Firebase [14], una API quepermet que la informació de les aplicacions siguisincronitzada i emmagatzemada al núvol.Firebase ens permet no preocupar-nos per laimplementació de l’API i la gestió de les dades i centrarnos íntegrament en el desenvolupament de l’aplicació.També gestiona el registre i l’accés d’usuaris a l’aplicació.Tot això fent ús d’una base de dades no relacional alnúvol.L’editor de codi que hem fet servir per a desenvoluparl’aplicació ha estat Visual Studio Code. El principalavantatge d’aquesta eina és la seva lleugeresa. L’usuaridecideix quines extensions vol instal·lar i no té elproblema del pes que comporten altres alternatives comel seu germà gran Visual Studio o la família Storm.5.3 Disseny amb Ionic CreatorEl disseny de la interfície gràfica d’usuari s’ha realitzatmitjançant l’eina Ionic Creator (Figura 3). Es tracta d’unaeina senzilla drag-&-drop per al disseny i la creació deprototips d’aplicacions mòbils.Figura 3. Dissenyador de pantalles Ionic CreatorLes principals funcionalitats d’Ionic Creator són: Construir visualment la nostra aplicació arrossegantels components mòbils predefinits a l'emulador deldispositiu.Previsualitzar i interaccionar amb els nostresprojectes en directe als nostres dispositius. A més decompartir-ho amb companys i clients.Exportar un projecte Ionic totalment funcional o fins itot el fitxer APK natiu per instal·lar-lo directamentals nostres dispositius.Amb aquesta eina hem creat els dissenys de les següentspantalles: Pantalla de login/registre: En accedir a l’aplicaciól’usuari haurà d’autenticar-se mitjançant el seu emaili contrasenya. Si no disposa d’usuari podrà donar-sed’alta a la pantalla de registre. Sidemenu: Els usuaris utilitzaran un menú accessibledes de les principals pantalles per a navegar perl’aplicació. També és on tindrà l’opció de tancar laseva sessió. Pantalla de configuració de perfil: En aquestapantalla l’usuari podrà canviar certs atributs del seuperfil, com el nom que es mostra a l’aplicació il’adreça Bluetooth del dispositiu que utilitzarà per seridentificat quan sigui present a un event JoinApp. Pantalla d’events: La principal pantalla de l’aplicacióconsisteix en un llistat dels events als quals l’usuariestà assignat o té accés. Cada event consta d’un nom,una data, una hora d’inici, una hora de fi, on té lloc ila persona responsable de l’event. (Figura 4) Pantalla de creació/edició d’un event: Un usuari potcrear o editar un event.

MARIO AGUILAR SÁNCHEZ: JOINAPP – L’APLICACIÓ ANDROID DE CONTROL D’ASSISTÈNCIA A TRAVÉS DE BLUETOOTH Pantalla d’assistents a l’event: Si cliquem a un eventpodrem observar el detall de les persones que vanassistir al mateix. El responsable de l’event pot fer unescaneig per a identificar les persones que han assistital mateix.La nostra base de dades no relacional consta de 3col·leccions: usuaris, events i grups. Cadascunad’aquestes col·leccions està formada per documents delmateix tipus. Document usuariAtributdisplayNameDescripcióNom d’usuari que es mostra al’aplicació.Correu electrònic.Enllaç a la imatge de perfil del’usuari google.Adreça MAC del Bluetooth deldispositiu.emailphotoURLbluetoothAddress Figura 4. Disseny pantalla llista d’events5.4 Cloud FirestorePer a gestionar les dades de l’aplicació hem utilitzatCloud Firestore [5]. Cloud Firestore és una base de dadesNoSQL de Firebase allotjada al núvol a la qual podenaccedir directament apps iOS, Android i web.A partir del model de dades NoSQL de Cloud Firestore,emmagatzemem les dades en documents que contenencamps que s'assignen a valors. Aquests documentss'emmagatzemen en col·leccions, que són contenidors perals nostres documents. (Figura 5)Els documents admeten diversos tipus de dades diferents,des de strings i nombres simples, fins a objectes niatscomplexos. També podem crear subcol·leccions dins dedocuments i crear estructures de dades jeràrquiques ques'ajustin a escala a mesura que la nostra base de dadescreix.Figura 5. Estructura de dades NoSQL documentalDocument oupusuaris DescripcióNom de l’event.Usuari creador de l’event.Lloc on es realitza l’event.Dia, mes i any de l’event.Hora d’inici.Hora de finalització.Grup al qual pertany l’event.Subcol·lecció d’usuaris assistents al’event amb atribut booleà attended true si han assistit i attended false en cas contrari.Document grupAtributnamehostisPrivateusuarisDescripcióNom del grup.Usuari creador del grup.Booleà que indica si el grup és públicisPrivate false i qualsevol usuari espot unir o isPrivate true i només elcreador pot afegir als membres.Subcol·lecció d’usuaris membres delgrup.5.5 Autenticació GoogleDe la gestió dels usuaris de l’aplicació s’ocupa Firebase.Firebase Authentication [3] permet habilitar diversesformes d’autenticació. En el nostre cas, qualsevol usuaripot tenir accés a l’aplicació de dues formes (Figura 6): Autenticació basada en correu electrònic icontrasenya: L’usuari s’ha de donar d’alta al’aplicació mitjançant la pantalla de registre totintroduint el seu nom, la seva adreça de correuelectrònic i una contrasenya. Autenticació amb Google: L’usuari pot accedir al’aplicació utilitzant un compte existent de Google,com per exemple, el correu de la universitat.5

6EE/UAB TFG INFORMÀTICA: JOINAPP – L’APLICACIÓ ANDROID DE CONTROL D’ASSISTÈNCIA A TRAVÉS DE BLUETOOTHPer a implementar el mòdul d’autenticació Google hemutilitzat el plugin de cordova googleplus [1].de detall de l’event. En aquest mode és necessari quetots els assistents tinguin la MAC de Bluetoothvinculada al seu usuari.Figura 6. Login a JoinApp amb un compte Google5.6 Mòdul BluetoothCada dispositiu té una adreça MAC de Bluetooth única(ex: 00:EC:0A:0C:49:BE). L’usuari pot afegir a la pantallade perfil l’adreça MAC de Bluetooth del dispositiu queutilitzarà. Per exemple, els usuaris amb rol d’assistentpoden introduir l’adreça del seu smartphone però unamfitrió pot optar per utilitzar un altre tipus de dispositiuBluetooth que hi hagi a la seva sala. Aquesta adreças’emmagatzema com un atribut més de l’usuari a la basede dades de JoinApp i pot ser modificada en qualsevolmoment per l’usuari.El gran avantatge de vincular la MAC de Bluetooth al’usuari JoinApp és que no necessitem connectar-nos alsdispositius per a confirmar l’assistència. A l’hora de ferl’escaneig dels dispositius Bluetooth pròxims obtenim amés del nom del dispositiu l’adreça de

Reunió de revisions de l’sprint. Al final de cada sprint, es tracta que s’ha completat i que no. Retrospectiva de l'sprint. També al final de l'sprint, i serveix perquè els implicats donin les seves impressions sobre l’sprint i s'utilitza per a la millora del procés.

Related Documents:

achievement reaches the international advanced level. In 2018, TICA merged and acquired an OFC central air conditioning enterprise . TICA's excellent system integration capability and the world-class OFC water chillers help increase the integrated COP of the efficient equipment room to 6.7 to 7.0. TICA---We're striving.

achievement reaches the international advanced level. In 2018, TICA merged and acquired an OFC central air conditioning enterprise . TICA's excellent system integration capability and the OFC water chillers help increase the integrated COP of the efficient equipment room to 6.7 to 7.0. TICA---We're striving.

15 de marzo de 2022 1 . Manual de uso de la aplicación GestTFx para la g estión de TFG/ TFM . La aplicación GestTFx tiene como objetivo dar soporte a la gestión de los Trabajos Fin de Grado y Máster (TFG/TFM) a fin de automatizar todos los procesos relacionados con estas asignaturas y centralizar el ciclo

de discuss es matem tica s no ensino da çlgebra . Pr ticas de discuss o matem tica e conhecimento did tico As aula s de Matem tica , onde os alunos s o incentivados a partilhar as suas ideias, a

Geom. Anal tica I Respostas do M odulo I - Aula 10 1 Geometria Anal tica I 10/05/2011 Respostas dos Exerc c

TICA has established a global strategic joint venture with United Technologies Corporation (UTC) whose businesses include the world's most advanced Pratt & . TICA water-cooled flooded screw chiller has a compact design, using flooded evaporator and twin semi hermetic screw comperssor. Also, it is . COP 5.80 5.83 5.85 5.80 5.81 5.84 5.83 5 .

BANCA EXAMINADORA _ Profa. Dra. Ana Carolina Brand o Salgado Centro de Inform tica /UFPE . N cleo de Biogeo Inform tica /INPA _ Prof. Dr. Alexandre Magno Andrade Maciel Escola Polit cnica de Pernambuco/ UPE . de Modelagem Específica de Domínio .

S1 Akuntansi Pendidikan Profesi: PPAk S2 Magister Science, Magister Terapan S3 Ilmu Akuntansi Pendidikan IAI: KAPd. dan KASP Asosiasi Profesi Akuntansi: IAPI dan IAMI Asosiasi Profesi lain terkait akuntansi dan Internasional –Internal Auditor, CISA, ACCA, CMA, CIMA, CPA Negara lain Asosiasi Profesi PPAJP Kemenkeu Kemendiknas - DIKTI BNSP OJK Internasional .