G ado en Ingenie ´ıa In o m´a ica
T abajo Fin de G ado
Desa ollo de una aplicaci´on pa a la ges i´on de espacios en
la Biblio eca de la Facul ad de In o m´a ica
Realizado po :
Ca los Ga idia O iz
Da id Go icho San Juan
I ´an Mon e ubio Ce ezo
Di ec o :
An onio Sa asa Cabezuelo
Facul ad de In o m´a ica
Uni e sidad Complu ense de Mad id
Mad id, Junio 2018
I. P ´ologo
“Las buenas no icias solo llegan a los que se emba can dispues os a nau aga ”
All´a po el mes de eb e o de 2017, es amigos es udian es de Ingenie ´ıa In o m´a ica de la
Uni e sidad Complu ense de Mad id comenza on a habla sob e su T abajo de Fin de G ado
del cu so siguien e. Ten´ıan cla o que que ´ıan ealiza un p oyec o que pe du a a en el iempo,
que queda a pa a la pos e idad y que si ie a de ayuda pa a g an can idad de gen e. Hoy, 16
meses despu´es, es os es alumnos po in podemos deci que hemos inalizado un p oyec o del
que nos sen imos ealmen e o gullosos.
T as es a˜nos en la acul ad ocaba hace uso de odo el conocimien o adqui ido y de demos-
a a p o eso es y a noso os mismos que e amos capaces de desa olla un e dade o p oyec o
in o m´a ico con odos sus apa ados comple amen e desde ce o. Adem´as, nues os a˜nos de uni-
e sidad y los pe ´ıodos in e minables de es udio en la biblio eca, jun o alg´un que o o in en o
us ado de es udia po no habe pues os lib es, nos hab´ıan hecho da nos cuen a de un g a e
p oblema exis en e en las biblio ecas.
As´ı pues, ya en´ıamos idea sob e la que ealiza el abajo de in de g ado: una aplicaci´on
m´o il que pe mi iese ocupa el pues o y e i ase que los descansos uesen demasiado la gos, odo
ello haciendo uso de la geolocalizaci´on. A˜nadimos algunas uncionalidades ex as a nues a idea
inicial, la pulimos un poco y nos emba camos en la a en u a del desa ollo del p oyec o.
Casi 500 d´ıas despu´es de la p ime a quedada del p oyec o, enemos una aplicaci´on comple a-
men e uncional disponible en Play S o e con su espec i a p´agina web pa a la ges i´on po pa e
de los biblio eca ios. Con iamos en que se haga uso de ella en la biblio eca y que, ojal´a, pueda
expandi se a o as muchas m´as biblio ecas pa a ayuda a cuan o mayo n´ume o de es udian es
mejo .
i
II. Ag adecimien os
“No es e dad que las pe sonas pa an de pe segui sue˜nos po que
se hacen iejos, se hacen iejos po que pa an de pe segui sus sue˜nos.”
No podemos comenza es a memo ia sin an es da las g acias a nues o di ec o An onio
Sa asa Cabezuelo. Muchas g acias po con ia en el p oyec o desde el p ime momen o, po
odos los consejos que nos ha ido apo ando y po odas las ideas que nos ha ido sugi iendo.
P obablemen e, es e p oyec o no pod ´ıa habe sido desa ollado sin su ayuda.
G acias a nues as amilias y no ias po aguan a nos en los d´ıas m´as di ´ıciles del desa ollo
del p oyec o, en los que siemp e han es ado ah´ı apoyando, y sob e odo po es os 4 la gos a˜nos en
los que hemos enido momen os buenos y momen os malos, siendo en es os ´ul imos donde m´as
se ha no ado su g an apoyo, inqueb an able con ianza e imp escindible ayuda. Muchas g acias.
Ellos, jun o a nues os amigos a los que ambi´en que emos ag adece odo su apoyo, ´animos, sus
suge encias sob e el p oyec o y esos d´ıas an necesa ios que nos han ayudado a espi a , han sido
los que nos han apo ado las ene g´ıas necesa ias pa a pode segui con ilusi´on en los momen os
en los que las cosas se o c´ıan un poco.
Tambi´en, debemos ag adece al es o de p o eso es de la acul ad que nos han dado clase
du an e es os a˜nos y que po an o, de un modo u o o han apo ado su g ani o de a ena a es e
p oyec o. A las biblio eca ias de la Facul ad de In o m´a ica, a los alumnos de la misma y a odos
los usua ios de la aplicaci´on en gene al, muchas g acias po usa la y p opo ciona el Feedback
necesa io con el que mejo a la aplicaci´on.
Po ´ul imo, no que ´ıamos despedi nos sin hace un pa de menciones especiales a dos amigos
que nos han ayudado mucho du an e el p oyec o. A i, Ma io, po es a ah´ı, ayuda nos con
algunas dudas sob e And oid que nos han su gido du an e la ealizaci´on del p oyec o, g acias.
Y a i, Elena, po habe sido la be a es e n´ume o uno, po us ecomendaciones en cuan o al
dise˜no y uncionalidades, y es a siemp e pendien e de nues o p og eso, muchas g acias ambi´en.
ii
III. Resumen
Biblio eko es una aplicaci´on o ecida a es udian es, p o eso es, isi an es y a odos los usua-
ios en gene al de la biblio eca de la Facul ad de In o m´a ica que pe mi e conoce qu´e pues os
es ´an ocupados en iempo eal. Pe o no solo eso, Biblio eko pe mi e en ia suge encias a los bi-
blio eca ios/as, consul a el ho a io de la biblio eca, conoce es ad´ıs icas de el iempo de es udio
y descanso y compa a lo con el iempo medio de odos los es udian es...
Sin emba go, el p incipal a ac i o de Biblio eko es in en a soluciona la p oblem´a ica a
la que cien os de es udian es se en some idos du an e los meses de ene o y mayo. Du an e
es os meses las biblio ecas suelen es a m´as llenas y exis en p oblemas con el n´ume o de pues os
disponibles. Algunos es udian es espabilados acuden a ellas y se an a descansa du an e iem-
pos supe io es a las dos ho as, dejando su pues o ocupado con un boli e impidiendo que o o
es udian e lo ocupe.
En es e escena io se puede ap ecia el g an po encial de Biblio eko, pues o que pe mi e al
usua io descansa has a un m´aximo de 30 minu os, dependiendo de la can idad de iempo que
haya es ado es udiando. Si anscu ido el iempo de descanso disponible, no ha uel o a la
biblio eca, su pues o se ´a libe ado au om´a icamen e.
Adem´as, Biblio eko cuen a con una p´agina web dise˜nada exclusi amen e pa a biblio eca-
ios/as y con acceso exclusi o pa a ellos. Desde es a p´agina, los biblio eca ios/as ienen acceso
de una mane a muy ´apida y sencilla a uncionalidades espec´ı icas pa a ellos ales como espon-
de los mensajes en iados po los es udian es, es ablece el ho a io o consul a es ad´ıs icas de
es udio e e idas a cualquie ango de echa de su in e ´es.
Palab as cla e
Biblio eca
Aplicaci´on
Es udio
Pues o
Descanso
Biblio eko
In o m´a ica
iii
IV. Abs ac
Biblio eko is an app a ailable o s uden s, eache s, isi an s and all use s o he lib a y o
he Compu e Science Facul y ha o e s eal ime in o ma ion abou which s udy spaces a e
busy. Fu he mo e, wi h Biblio eko use s can send sugges ions o he lib a ians, check he lib a y
opening hou s, consul s a is ics abou hei s udy ime and hei s udy b eaks, and compa e
hem wi h he a e age o all he s uden s...
Howe e , he main a ac ion o Biblio eko is a unc ionali y ha ies o sol e he p oblem
o a lo o s uden s du ing he mon hs o Janua y and May. In hese mon hs, lib a ies a e eally
busy and he e a e p oblems some imes wi h he numbe o s udy spaces a ailable. Some s u-
den s go o he lib a y and ha e ne e -ending b eaks (e en o mo e han 2 hou s), lea ing a
pen in hei s udy spaces and no le ing o he s uden s use ha s udy space.
We can app ecia e he big po en ial o Biblio eko he e, as i allows he use o ha e b eaks
o a pe iod no longe han 30 minu es, acco ding o how many ime he/she has been s udying.
I a e he b eak ime ha was a ailable o he use , he/she has no e u ned o he lib a y,
his/he s udy space will be elease au oma ically.
In addi ion, Biblio eko has a web page designed only and exclusi ely o he lib a ians and
wi h exclusi e access o hem. F om his web page, lib a ians ha e inmedia ely and easy access
o some speci ic unc ionali ies o hem such as answe he messages sen by he s uden s, se
he opening hou s and iew s a is ics o he desi ed ange by hem.
KeyWo ds
Lib a y
Applicacion
S udy
S udy space
S udy b eak
Biblio eko
Compu e Science
i
´
Indice
I. P ´ologo I
II. Ag adecimien os II
III. Resumen III
IV. Abs ac IV
1. In oducci´on 1
1.1. Mo i aci´on ....................................... 1
1.2. Obje i os ........................................ 2
1.3. Es adodela e ..................................... 3
1.4. Es uc u adelamemo ia ............................... 5
2. Especi icaci´on de los equisi os de la aplicaci´on 8
2.1. Funcionalidad aplicaci´on web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2. Funcionalidad aplicaci´on m´o il . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3. Fiabilidad........................................ 33
3. Tecnolog´ıas empleadas 34
3.1. Tecnolog´ıas en la aplicaci´on web . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2. Tecnolog´ıas en la aplicaci´on m´o il . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3. Basesdeda os ..................................... 37
4. A qui ec u a de la aplicaci´on 38
4.1. Aplicaci´onweb ..................................... 39
4.2. Aplicaci´onm´o il .................................... 39
4.3. Basesdeda os ..................................... 40
4.4. Se ido ex e no .................................... 40
4.5. APIs........................................... 40
5. Modelo de da os 41
5.1. Basededa osMySQL ................................. 41
5.2. Basededa osSQLi e ................................. 47
5.3. Comunicaci´on en e los modelos de da os . . . . . . . . . . . . . . . . . . . . . . 48
6. Dise˜no de la aplicaci´on 50
6.1. Pa eweb........................................ 51
6.2. Pa em´o il ....................................... 51
7. Implemen aci´on de la aplicaci´on 53
7.1. Aplicaci´onweb ..................................... 53
7.1.1. Iniciodesesi´on................................. 54
7.1.2. Buz´on de suge encias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.1.3. Es ad´ıs icas................................... 59
7.1.4. Ho a io ..................................... 61
7.1.5. Ce a sesi´on .................................. 64
7.1.6. Qui´enessomos ................................. 64
7.1.7. Heade ...................................... 64
7.1.8. Foo e ...................................... 65
7.2. Aplicaci´onm´o il .................................... 67
7.2.1. S a e ...................................... 70
7.2.2. Inicia sesi´on .................................. 72
7.2.3. Regis a .................................... 75
7.2.4. Biblio ecas ................................... 77
7.2.5. Plan as ..................................... 78
7.2.6. Mesa....................................... 83
7.2.7. Ocupa pues o ................................. 86
7.2.8. Vacia pues o.................................. 88
7.2.9. Hace descanso/Finaliza descanso . . . . . . . . . . . . . . . . . . . . . . 92
7.2.10.Es ad´ıs icas................................... 99
7.2.11.Con ac o ....................................101
7.2.12.Ho a io .....................................103
7.2.13. Modi ica con ase˜na . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.2.14.Ce a sesi´on ..................................109
7.2.15. Ay´udanos a mejo a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.2.16.Se iceUbicaci´on................................111
7.2.17.Ala ma .....................................115
7.2.18.Ala maEs oyVi o...............................117
7.3. O os componen es del sis ema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8. E aluaci´on de usua ios y p uebas 124
8.1. Iniciodelp oyec o ...................................124
8.2. Du an eelp oyec o ..................................124
8.3. T aselp oyec o.....................................124
9. Conclusiones y abajo u u o 132
9.1. Conclusiones ......................................132
9.2. Conclusions.......................................133
9.3. T abajo u u o .....................................134
9.4. T abajoindi idual ...................................135
9.4.1. Ca los Ga idia O iz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
9.4.2. Da id Go icho San Juan . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
9.4.3. I ´an Mon e ubio Ce ezo . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
10.Bibliog a ´ıa 142
11.Ap´endices 144
11.1. Ap´endice A: Manual de ins alaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . 144
11.1.1.P´aginaweb ...................................144
11.1.2.And oidS udio.................................144
11.1.3.SublimeTex ..................................144
11.1.4.MySQL .....................................144
11.1.5. Aplicaci´on And oid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
11.2. Ap´endice B: Manual de usua io . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
11.2.1.Aplicaci´onweb.................................145
11.2.1.1. Inicia sesi´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
11.2.1.2. Buz´on de suge encias . . . . . . . . . . . . . . . . . . . . . . . . 146
11.2.1.3.Es ad´ıs icas..............................147
11.2.1.4. Es ablece Ho a io . . . . . . . . . . . . . . . . . . . . . . . . . . 148
11.2.1.5. Desca ga app . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
11.2.1.6.Qui´enessomos ............................149
i
11.2.1.7. Con ´ac anos/Redes Sociales . . . . . . . . . . . . . . . . . . . . . 149
11.2.1.8.Ce a sesi´on.............................149
11.2.2.Aplicaci´onm´o il ................................149
11.2.2.1. Inicia sesi´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
11.2.2.2.Regis a se ..............................150
11.2.2.3.Biblio ecas ..............................151
11.2.2.4.Plan as ................................152
11.2.2.5. Hace descanso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
11.2.2.6.Libe a pues o ............................154
11.2.2.7.Es ad´ıs icas..............................154
11.2.2.8.Con ac o ...............................155
11.2.2.9.Ho a io ................................156
11.2.2.10.Modi ica con ase˜na . . . . . . . . . . . . . . . . . . . . . . . . . 157
11.2.2.11.Ce a sesi´on.............................157
11.2.2.12.Ay´udanos a mejo a . . . . . . . . . . . . . . . . . . . . . . . . . 158
12.Anexo 159
ii
1. In oducci´on
En es e p ime cap´ı ulo de la memo ia se a a desa olla la mo i aci´on del p oyec o desa-
ollado, cu´ales han sido sus obje i os y la es uc u a gene al de es a memo ia. Adem´as, es ne-
cesa io des aca que se ha ealizado la publicaci´on de la aplicaci´on ‘Biblio eko’ en Google Play
y egis ado el dominio h p://biblio eko.es en el que se encuen a alojada la aplicaci´on web.
In his i s chap e o he memo y, he mo i a ion, objec i es o he p ojec and he gene al
s uc u e o he p ojec a e going o be explained. In addi ion, i is impo an o men ion ha
he applica ion Biblio eko has been eleased in Google Play and he webpage is loca ed in he
domain h p://biblio eko.es
1.1. Mo i aci´on
Du an e los meses de Ene o y Mayo, la ocupaci´on en las biblio ecas llega a su pun o m´aximo,
eple as de es udian es que a an de ocupa has a el ´ul imo pues o disponible.
Pa a ayuda a que odos los es udian es puedan es udia , la mayo ´ıa de las biblio ecas e-
asan los ho a ios de cie e, de o ma que los es udian es puedan ap o echa las ins alaciones
du an e m´as iempo. Du an e el iempo de es udio, es com´un en los es udian es ealiza descan-
sos con el in de despeja la men e pe i´odicamen e.
Cuando se ealizan los descansos es cuando se p oducen cie os p oblemas con espec o a
la ocupaci´on de los si ios de es udio de la biblio eca. Cuando una pe sona abandona su si io y
eg esa del descanso puede e se so p endido y que su si io haya sido ocupado po o a pe sona.
Po esa az´on, muchos es udian es se en obligados a deja obje os encima de su pues o an es
de oma ese descanso pa a desp eocupa se de es e p oblema. Po ello, es habi ual e a ios
si ios con obje os y sin ocupaci´on apa en emen e.
Sin emba go, el hecho de ese a pues os hace que su ja o a p oblema pues o que, a eces,
algunos es udian es ese an pues os po iempos excesi amen e la gos, p i ando a o os usua-
ios de pode ocupa un pues o.
El sis ema que se p opone en es e abajo iene como obje i o ayuda a aquellos es udian es
que quie an descansa (siemp e que espe en y no sob epasen el iempo de descanso) a que ya
no engan que deja obje os encima de la mesa, con el iesgo que supone, debido a que pueden
sus ae lo. As´ı un es udian e que en ase a la biblio eca e ´ıa que es e pues o es ´a ocupado y
no puede ocupa lo. Un mapa de la ocupaci´on de la biblio eca se ´a donde el es udian e pod ´a
isualiza los si ios disponibles.
Adem´as, el sis ema se ´ıa el enca gado de libe a au om´a icamen e un pues o en el caso de
que el usua io haya supe ado el iempo de descanso que en´ıa disponible. Tambi´en o ece la
posibilidad de consul a es ad´ıs icas, el ho a io disponible y pe mi e en ia mensajes a los/as
biblio eca ios/as.
La aplicaci´on desa ollada ambi´en dispond ´ıa de una aplicaci´on web, de acceso exclusi o
pa a los biblio eca ios en la cual pod ´ıan con es a los mensajes de los es udian es, consul a
es ad´ıs icas gene ales de la biblio eca y especi ica su ho a io.
1
2. Especi icaci´on de los equisi os de la aplicaci´on
En es a secci´on se an a mos a la especi icaci´on de equisi os del sis ema. Pa a ello se ha
di idido en a ias pa es. En la p ime a pa e, se p esen an los equisi os e e idos a la pa e
web del p oyec o. En la segunda pa e apa ecen los e e idos a la pa e And oid. Finalmen e en
la e ce a es un apa ado ese ado pa a la iabilidad del p oyec o.
2.1. Funcionalidad aplicaci´on web
La p´agina web se ´a una he amien a con la que con a ´an y pod ´an consul a odos los d´ıas
los/as biblio eca ios/as y pod ´an ealiza algunas de sus unciones dia ias m´as ´apidamen e.
Po es o el desa ollo de la p´agina web iene como obje i o que el biblio eca io pueda con-
es a y lee los co eos del buz´on de suge encias que los alumnos hayan en iado, ac ualiza los
ho a ios de ape u a y cie e de la biblio eca o consul a dis in as es ad´ıs icas de ocupaci´on y
es udio.
A con inuaci´on en la Figu a 1 se p esen a el diag ama de casos de uso, que esume odas las
uncionalidades que end ´a el usua io de la p´agina web.
Figu a 1: Casos de uso aplicaci´on web
8
Funcionalidad 1: Inicio de sesi´on
Se ´a la pan alla p incipal de la aplicaci´on web y en ella el biblio eca io pod ´a inicia su
sesi´on in oduciendo una cuen a y con ase˜na(ambas suminis adas po la acul ad, po lo que
odos los biblio eca ios inicia ´an sesi´on con la misma cuen a) en dos ´a eas de ex o designadas
pa a ello. Si los da os suminis ados no coinciden con los de la base de da os de la aplicaci´on, el
usua io se ´a no i icado.
Figu a 2: Inicia sesi´on web
9
Funcionalidad 2: Limpia base de da os
Es a unci´on se ealiza ´a au om´a icamen e, sin in e enci´on del usua io, y consis i ´a en una
limpieza de la base de da os, es deci las es ad´ıs icas de los usua ios pasado un iempo, pa a
e i a el colapso de la base de da os.
Figu a 3: Limpia base de da os
10
Funcionalidad 3: Es ablece ho a io
Como la biblio eca no end ´a unos ho a ios ijos du an e odo el a˜no(po ejemplo en ´epocas
de ex´amenes es a ´a abie a m´as iempo),el biblio eca io se enca ga ´a de esc ibi en la p´agina el
ho a io de cada d´ıa de la semana; el ho a io de ape u a y de cie e g acias a la in e az sencilla,
in o mando adem´as de pe iodos no lec i os o d´ıas especiales.
Figu a 4: Es ablece ho a io
11
Funcionalidad 4: Consul a es ad´ıs icas gene ales
El biblio eca io pod ´a e las mismas es ad´ıs icas que las ecogidas en la app.
Figu a 5: Consul a es ad´ıs icas gene ales
12
Funcionalidad 5: Lee /con es a buz´on de suge encias
Los co eos que lleguen al biblio eca io de los usua ios de la app a pa i del buz´on de suge-
encias pod ´an se le´ıdos y con es ados a la pe sona que los en i´o. Adem´as, el biblio eca io no
sab ´a quienes los han mandado (se ´an an´onimos).
Figu a 6: Buz´on de suge encias - Mensajes ecibidos
13
Figu a 7: Buz´on de suge encias - Con es a mensaje
14
2.2. Funcionalidad aplicaci´on m´o il
Las unciones que pod ´an ealiza los usua ios se ´an ocupa /desocupa un si io den o de
la biblio eca, isualiza el mapa donde pod ´an obse a los si ios lib es y ocupados, adem´as
de e in o maci´on de la biblio eca como el ho a io de ape u a y cie e, en ia mensajes a los
biblio eca ios a pa i de un buz´on de suge encias, e sus es ad´ıs icas pe sonales y globales de
iempo de es udio y ocupaci´on y po ´ul imo e isa su in o maci´on pe sonal (email,cambia su
con ase˜na,e c.).
A con inuaci´on, en la Figu a 8 se incluye el diag ama de casos de uso en el que se pueden
obse a odas las uncionalidades que end ´a el usua io de la aplicaci´on m´o il And oid.
Figu a 8: Casos de uso aplicaci´on m´o il
15
Funcionalidad 1: Inicio de sesi´on
Es a se ´a la p ime a en ana que apa ece ´a al usua io al ab i la aplicaci´on, en caso de que
sea la p ime a ez que en e en la app. En ella se pod ´a conec a al sis ema, si ya es ´a egis ado,
con su email y su con ase˜na. Si los da os suminis ados no coinciden con los almacenados en
la base de da os, el usua io se ´a no i icado. En caso de no es a egis ado, pod ´a pulsa en un
enlace que le lle a ´a a la en ana de egis o.
Figu a 9: Inicia sesi´on aplicaci´on m´o il
16
Funcionalidad 2: Regis o
En el caso de que no se encuen e egis ado en la aplicaci´on, llega ´a a es a pan alla a a ´es
del acceso que apa ece en la pan alla de inicio de sesi´on. En la misma, el usua io p opo ciona ´a
su co eo elec ´onico y la con ase˜na que quie a pa a egis a se. Si las con ase˜nas no coinciden
o el email ya es ´a egis ado en la base de da os, el egis o no se comple a ´a y se in o ma ´a
al usua io del e o acon ecido. Una ez se ha inalizado el egis o, un email se ´a en iado a la
cuen a de co eo elec ´onico pa a con i ma el al a y que el usua io iene acceso a ese co eo.
Figu a 10: Regis a se aplicaci´on m´o il
17
Funcionalidad 9: Modi ica con ase˜na
Desde la misma, el usua io pod ´a modi ica la con ase˜na as in oduci su con ase˜na an i-
gua e in oduci la nue a con ase˜na dos eces pa a ga an iza que no se ha equi ocado. Una ez
hecho, pulsa ´a el bo ´on de acep a y la app se comunica ´a con la base de da os pa a modi ica
la con ase˜na del usua io almacenada.
Figu a 17: Modi ica con ase˜na
24
Funcionalidad 10: Ho a io
Los usua ios pod ´an consul a el ho a io de la biblio eca, as´ı como in o maci´on ele an e, a
a ´es de una opci´on del men´u. Es e ho a io se ´a asignado po el biblio eca io a a ´es de la
aplicaci´on web.
Figu a 18: Ho a io
25
Funcionalidad 11: Buz´on de suge encias
Es a opci´on end ´a una doble uncionalidad. Al se pulsada apa ece ´an dos opciones. La
p ime a de ellas se ´a esc ibi suge encia. Se a a ´a de suge encias que el biblio eca io lee ´a de
o ma an´onima y pod ´a esponde ambi´en sin conoce qui´en ue el que la esc ibi´o.
Es aqu´ı cuando en a en escena la o a uncionalidad, llamada lee espues as. En el caso
de que un biblio eca io con es e a una de las suge encias en iadas po un usua io de e minado,
´es e pod ´a lee su espues a desde es a opci´on.
(a) En ia suge encia (b) Lee espues as
Figu a 19: Buz´on de suge encias
26
Funcionalidad 12: In o maci´on aplicaci´on
Es a ´a disponible desde el men´u, in o maci´on sob e la aplicaci´on, como su e si´on, da os
sob e sus desa ollado es o una opci´on pa a pone se en con ac o con ellos.
Figu a 20: In o maci´on de la aplicaci´on
27
Funcionalidad 13: Comp oba disponibilidad pues o
Una ez el usua io haya seleccionado el pues o que desea ocupa , la app se comunica ´a con
la base de da os pa a ga an iza que el pues o que quie e ocupa es ´a disponible y pasa ´a a se
de o o colo di e en e al es o de pues os ocupados. En caso con a io, se no i ica ´a al usua io
que ha habido un e o y pod ´a ol e a selecciona pues o.
Figu a 21: Comp oba disponibilidad de pues o
28
Funcionalidad 14: Tempo izado ocupa pues o
La aplicaci´on debe enca ga se de comp oba que un usua io no se encuen e en la biblio eca
ocupando un pues o de es udio sin habe lo no i icado. Pa a ello, cuando de ec e que el usua io
ha en ado en la biblio eca, comenza ´a a inc emen a un empo izado .
En el caso de que es e llegue a 20 minu os y el es udian e a´un no haya ocupado un pues o,
se le mos a ´a un mensaje en el que se le suge i ´a que po a o , ocupe un pues o de es udio si
a a pe manece en la biblio eca du an e m´as iempo.
Figu a 22: Mensaje: ’Po a o ocupa pues o’
29
Funcionalidad 15: P egun a po descanso
Si el usua io decide sali de la biblio eca sin habe anunciado que iba a ealiza un descan-
so, au om´a icamen e se pond ´a en modo descanso siemp e que le quedan minu os de descanso
disponibles.
Adem´as, se mos a ´a un mensaje al usua io que le p egun a ´a si ha abandonado la biblio eca
o si po el con a io se es ´a omando un descanso. De no con es a el usua io en un plazo de 5
minu os, se libe a ´a su pues o y queda ´a disponible pa a el es o de es udian es.
Figu a 23: Mensaje: ’P egun a po descanso’
30
Funcionalidad 16: Tempo izado descanso
Una ez que el usua io ha decidido oma se un descanso, el empo izado de iempo disponi-
ble ( iempo que el usua io hab´ıa ido acumulando mien as es udiaba) comienza a dec emen a .
Cuando nos encon amos a cinco minu os de que llegue a 0, un mensaje es mos ado al usua io
a is´andole de que s´olo quedan 5 minu os pa a que le d´e iempo a eg esa a la biblio eca pa a
es udia .
Figu a 24: Mensaje: ’A iso de in de descanso’
31
Funcionalidad 17: En ´ıo de localizaci´on
La aplicaci´on necesi a ´a sabe la ubicaci´on del usua io en cie as si uaciones pa a comp oba
que es e no es ´a a ando de in oduci da os que no son eales. Cada cie o in e alo de iempo,
que se ´a es ablecido po los desa ollado es, la aplicaci´on en ia ´a al se ido la ubicaci´on exac a
del usua io, u ilizando pa a ello el sis ema de geolocalizaci´on in eg ado en odos los sma phones.
La aplicaci´on ha ´a uso de es os da os pa a a ias uncionalidades, como sabe si el usua io se
encuen a den o o ue a de la biblio eca, inc emen a o dec emen a el empo izado de iempo
de es udio, a isa al es udian e si ha e minado su descanso y debe ol e a en a en la biblio-
eca, e c´e e a.
Funcionalidad 18: Tempo izado es udio
T as habe iniciado el es udio el usua io, se pond ´a en ma cha un empo izado de es udio
que se inc emen a ´a en un minu o po cada minu o que el usua io pase es udiando has a un
m´aximo de 30 minu os. Es e iempo se ´a del que pod ´a dispone el usua io pa a oma se des-
cansos. Una ez uel a de descansa , el empo izado ol e ´a a inc emen a se desde los minu os
que ha dejado sin usa el usua io, has a un m´aximo o al de 30.
Funcionalidad 19: Comp oba si uaci´on den o/ ue a biblio eca
La base de da os end ´a almacenada la ubicaci´on exac a de la biblio eca en la que se encuen-
a el es udian e, de modo que cuando se en ´ıe la localizaci´on, la app pod ´a sabe si se encuen a
den o de la misma o ha salido ue a del pe ´ıme o es ablecido. Es o pe mi i ´a comp oba que
la posici´on del es udian e coincide con el es ado ac ual que ha es ablecido en la app, los cuales
pueden se es udiando, descansando o ue a de la biblio eca.
De es a o ma, se e i a que el usua io alsi ique su posici´on. Po ejemplo, si en la app apa ece
como es udiando pe o se de ec a que se encuen a ue a de la biblio eca, se le p egun a ´a si es ´a
ealizando un descanso, como se explica en el apa ado ‘P egun a po descanso’.
Funcionalidad 21: A iso in de descanso
Se mos a ´an di e en es mensajes al usua io que le a isa an de que le quedan an solo 5 mi-
nu os pa a que inalice su descanso, as´ı como o o que a isa ´a de que su descanso ha inalizado.
Funcionalidad 22: Ce a sesi´on
Si el usua io desea ce a sesi´on en la aplicaci´on m´o il, pod ´a hace lo. Es o conlle a ´a elimina
la sesi´on ac i a de la base de da os in e na del m´o il y pa a de comp oba la ubicaci´on del
usua io.
32
2.3. Fiabilidad
La aplicaci´on And oid es ´a desa ollada en la e si´on 7 de And oid, pe mi iendo que pueda
unciona pa a e siones an e io es, siendo es a e si´on donde se han ealizados las p uebas du-
an e el p oyec o.
La ges i´on de e o es de la aplicaci´on es ´a pensada pa a in o ma al usua io en odo mo-
men o de lo que ocu e en la aplicaci´on, con mensajes cla os, especi icando los allos que se han
p oducido. Algunos de ellos son e e idos al usua io y o os a la comunicaci´on con el se ido ,
empo izado es o de conexi´on.
Uno de los pun os undamen ales pa a el limpiado de da os en la base de da os, es la unci´on
au om´a ica que se ealiza en la web, la cual ag upa las es ad´ıs icas de los usua ios de iempo
de es udio, usua ios inac i os de hace m´as de un a˜no o mensajes del buz´on de suge encias, pa a
as´ı pode ecicla espacio en la base de da os. De es a mane a se consigue educi el n´ume o de
p oblemas que pueden su gi al a a con ablas de g an ama˜no.
33
Adem´as, se pueden consul a las es ad´ıs icas pe sonales y globales de iempo de es udio y
descanso, pa a as´ı pode hace un balance de es udio pe sonal. Tambi´en pe mi e en ia y ecibi
mensajes a los biblio eca ios, pudiendo en ia suge encias y dudas y pe mi iendo un hilo de
comunicaci´on en e biblio eca ios y es udian es.
Como a˜nadido, p esen a o as unciones como e ho a ios, siemp e que ´es os hayan sido
con igu ados po los biblio eca ios, al y como se desc ibi´o en el apa ado an e io .
4.3. Bases de da os
Las unciones que ienen las bases de da os son la de almacena la in o maci´on gene al (en
el caso de la base de da os elacional), y del p opio usua io (la del SQLi e).
La base de da os elacional, la cual u iliza MySQL, gua da da os de odos los usua ios,
mensajes, ho a ios, pues os y plan as de las biblio ecas dadas de al a en la base de da os, coo -
denadas de cada una de ellas... Adem´as, almacena un his ´o ico con odas las conexiones de odos
los usua ios a las di e en es biblio ecas, pa a as´ı pode mos a le a cada uno sus es ad´ıs icas de
es udio.
Po o o lado, la base de da os local de cada el´e ono m´o il an solo se enca ga de gua da
los da os del usua io, as´ı como el pues o ocupado ac ualmen e, las coo denadas ac uales del
usua io, es ado, iempo que iene pa a descansa ...
4.4. Se ido ex e no
El se ido ex e no es u ilizado pa a gua da oda la in o maci´on de la base de da os, adem´as
de aloja odos los a chi os necesa ios pa a el co ec o uncionamien o an o de la p´agina web
como de la aplicaci´on.
Se ha op ado po un se ido de pago, con 6GB de almacenamien o SSD que nos ga an iza
un ´apido acceso a odos los a chi os, con una la encia ex emadamen e baja y 1GB de RAM.
Conside ando que es as ca ac e ´ıs icas e an su icien es pa a es e de e minado p oyec o.
4.5. APIs
La API de geolocalizaci´on es necesa ia pa a consegui las coo denadas geoespaciales del usua-
io m´o il, una ez es e haya iniciado sesi´on.
Pa a pode ob ene la ubicaci´on del usua io cada cie o pe ´ıodo de iempo se ha usado
una aplicaci´on en segundo plano, un Se ice, que es ´a consul ando con la API an e io , la de
geolocalizaci´on pa a as´ı pode conoce la la i ud y longi ud del usua io. En el cap´ı ulo de im-
plemen aci´on se desa olla ´a po qu´e ue necesa io conoce la ubicaci´on de cada usua io cada
cie o iempo.
Pa a las es ad´ıs icas, an o del clien e web como del clien e m´o il se ha u ilizado una de e -
minada API, con a ias unciones en Ja aSc ip que pe mi en isualiza los g ´a icos in e ac i os
que enemos implemen ados.
Y en cuan o a la API PIP, pun o en pol´ıgono, es u ilizada pa a, una ez suminis ado el
pol´ıgono o mado po la biblio eca, de e mina as´ı si las coo denadas geog ´a icas que ob enemos
del usua io es ´an den o del ecin o de es a, o ue a de ella.
40
5. Modelo de da os
En es e cap´ı ulo se de alla la base de da os empleada y se desc ibe la uncionalidad y sig-
ni icado de cada abla y campo. En p ime luga se ealiza la explicaci´on de la base de da os
ubicada en el se ido pa a, pos e io men e, explica la que se aloja localmen e en el disposi i o
m´o il de cada usua io. Finalmen e, se concluye con una secci´on en la que se elacionan los dos
modelos, los cuales son ambos elacionales.
Se ha op ado po la implemen aci´on de un modelo de da os elacional pa a a a de ga an-
iza la pe sis encia de los da os y hace uso de su g an endimien o y es abilidad, log ando as´ı
un aho o an o en ba e ´ıa como en da os.
5.1. Base de da os MySQL
La base de da os MySQL, la cual o ece un g an endimien o y es es able, es la base de da os
en la que concen amos oda la in o maci´on de la aplicaci´on. Es o incluye odos los usua ios e-
gis ados, el his ´o ico de los mismos o odos los ho a ios de las biblio ecas implemen adas en e
o as cosas. A ella se accede en m´ul iples ocasiones, cuando se quie e comp oba la disponibilidad
de pues os, e las biblio ecas disponibles, los mensajes in e cambiados con los biblio eca ios,
las es ad´ıs icas...
Se a a de la base de da os maes a y es la que p e alece en caso de con lic o con la base
de da os local del m´o il de cada usua io. Sob e ella se p oduce la concen aci´on de odos los
da os p o enien es de los di e en es usua ios egis ados en la aplicaci´on. Se a a de una base
de da os MySQL.
Cons a de 9 ablas elacionadas en e s´ı median e cla es o ´aneas y a ibu os: biblio ecas,
en ia, his o ico, ho a ios, ocupa, pues os, usua ios, usua iosAc i os y usua iosTemp. Cada una
de ellas gua da in o maci´on espec´ı ica ace ca de di e en es aspec os necesa ios pa a el unciona-
mien o de la app.
A con inuaci´on, en la Figu a 26 se mues a el diag ama en idad- elaci´on, pa a pode esumi
de una mane a isual y g ´a ica como es ´a dispues a la base de da os y qu´e elaciones hay en e
las di e en es ablas.
41
Figu a 26: Diag ama en idad- elaci´on de la base de da os MySQL
Biblio ecas
Se a a de una abla en la cual se almacenan las di e en es biblio ecas que es ´an imple-
men adas. Aunque en la ac ualidad an solo exis e una ila con la biblio eca de la acul ad de
in o m´a ica, el p op´osi o es que la aplicaci´on c ezca e i implemen ado m´as biblio ecas, pa a lo
cual es necesa io dispone de es a abla.
Es una abla a la cual solo se puede accede median e PHPMyAdmin, de o ma que ´uni-
camen e pueden accede a la misma los 3 miemb os del equipo de desa ollo. De es a o ma,
cuando se p oduzca la implemen aci´on de una nue a biblio eca, los desa ollado es se ´an los
enca gados de inse a odos los campos de la misma.
Cons a de once campos, los cuales son los siguien es:
siglas: Es la cla e p ima ia de la abla, se a a de una cadena de 3 ca ac e es may´usculas
que si en pa a iden i ica a la biblio eca.
nomb e: Es un campo a cha con una longi ud m´axima de 100 ca ac e es. En es e campo
es donde se almacena el nomb e comple o de la biblio eca.
con asenia: De igual mane a que en el campo an e io , se a a de un campo a cha
con una longi ud m´axima de 100 ca ac e es. Aqu´ı se almacena la con ase˜na hasheada
necesa ia, jun o a las siglas, pa a accede a la p´agina de ges i´on de los biblio eca ios.
NO La : Se a a de un campo double en el cual se almacena la la i ud del pun o si uado
m´as al no oes e del ecin o de la biblio eca. Si e pa a de e mina si nos encon amos
den o de la biblio eca o ue a.
NO Lon: Se a a de un campo double en el cual se almacena la longi ud del pun o si uado
m´as al no oes e del ecin o de la biblio eca. Si e pa a de e mina si nos encon amos
den o de la biblio eca o ue a.
42
NE La : Se a a de un campo double en el cual se almacena la la i ud del pun o si uado
m´as al no es e del ecin o de la biblio eca. Si e pa a de e mina si nos encon amos den o
de la biblio eca o ue a.
NE Lon: Se a a de un campo double en el cual se almacena la longi ud del pun o si uado
m´as al no es e del ecin o de la biblio eca. Si e pa a de e mina si nos encon amos den o
de la biblio eca o ue a.
SO La : Se a a de un campo double en el cual se almacena la la i ud del pun o si uado
m´as al su oes e del ecin o de la biblio eca. Si e pa a de e mina si nos encon amos
den o de la biblio eca o ue a.
SO Lon: Se a a de un campo double en el cual se almacena la longi ud del pun o si uado
m´as al su oes e del ecin o de la biblio eca. Si e pa a de e mina si nos encon amos den o
de la biblio eca o ue a.
SE La : Se a a de un campo double en el cual se almacena la la i ud del pun o si uado
m´as al su es e del ecin o de la biblio eca. Si e pa a de e mina si nos encon amos den o
de la biblio eca o ue a.
SE Lon: Se a a de un campo double en el cual se almacena la longi ud del pun o si uado
m´as al su es e del ecin o de la biblio eca. Si e pa a de e mina si nos encon amos den o
de la biblio eca o ue a.
En ia
En es a abla, es ´an ecogidos los di e en es mensajes in e cambiados en e los usua ios y la
biblio eca co espondien e. A ella se accede cuando se p oduce el en ´ıo de un mensaje, an o po
pa e del usua io como po pa e del biblio eca io. En ese caso, se p oduce la inse ci´on de una
nue a ila en la abla. Adem´as, ambi´en se accede a ella, como biblio eca ios, cuando quie en
lee los mensajes que les han mandado los usua io y, como usua ios, cuando quie en lee las
espues as que les han dado los biblio eca ios.
A pesa de que los mensajes almacenados en es a abla cons an de un campo email, de o ma
que se ´ıa posible sabe qui´en es el usua io que ha esc i o cada mensaje, al biblio eca io se le
mos a ´an sin dicho campo pa a ga an iza el anonima o de odos los es udian es.
Cons a de sie e campos, los cuales son los siguien es:
email: Fo ma pa e de la cla e p ima ia, se a a de una cla e o ´anea que hace e e encia
al campo email de la abla usua ios. Es un a cha de 40 ca ac e es que pe mi e sabe
qui´en es el usua io que ha esc i o el mensaje, pa a as´ı pode mos a la espues a an solo
a dicho usua io, no a odos.
biblio eca: Fo ma pa e de la cla e p ima ia, se a a de una cla e o ´anea que hace
e e encia al campo siglas de la abla biblio ecas. Es un a cha de 3 ca ac e es que pe mi e
sabe hacia qu´e biblio eca iba di igido el mensaje, pa a as´ı mos a dicho mensaje a an
solo esa biblio eca.
echa: Se a a de un da e ime que pe mi e almacena la echa en la que ue esc i o el
mensaje.
espues a: Fo ma pa e de la cla e p ima ia, se a a de un inyin , ambi´en conocido
como booleano que pe mi e sabe si el mensaje se a a de un mensaje en iado po el
usua io o de una espues a del biblio eca io. En el caso de que se a e de un mensaje
43
en iado po el usua io es a ´a a 0, en el caso de que sea espues a del biblio eca io, es a ´a
a 1.
asun o: Se a a de un campo a cha de longi ud 100 ca ac e es en el cual se almacena
el asun o del mensaje.
con enido: Se a a de un campo a cha de longi ud 4000 ca ac e es en el cual se alma-
cena el con enido del mensaje, es deci , el mensaje p opiamen e.
idMensaje: Fo ma pa e de la cla e p ima ia, se a a de un en e o que se a au oin-
c emen ando a medida que an llegando nue os co eos de los es udian es. Cuando un
biblio eca io esponda a uno de es os mensajes, se in oduci ´a en la abla en ia con el
mismo idMensaje pe o con el campo espues a a 1.
His o ico
Es a abla es la que se usa pa a almacena y man ene un his ´o ico de odas las conexiones
de los di e en es usua ios a odas las biblio ecas implemen adas en la aplicaci´on. Es muy ´u il
pues o que sin ella luego no se ´ıa posible mos a las es ad´ıs icas, ni al usua io ni a los biblio e-
ca ios, del iempo que han es ado es udiando o descansando los es udian es.
Pues o que se p oduce una nue a inse ci´on cada ez que un usua io pasa de es ado es u-
diando a descansando y, po an o, el n´ume o de inse ciones po usua io y po d´ıa puede se
muy ele ado, se ha ealizado un CRON Job que, cada d´ıa de mad ugada, ag upe las conexiones
an e io es a un a˜no en a˜nos, qued´andose solo con las conexiones espec´ı icas del ´ul imo a˜no y
ag upando el es o po a˜nos. As´ı, se consigue educi el ama˜no de la abla his o ico conside a-
blemen e.
Cons a de cinco campos, los cuales son los siguien es:
email: Fo ma pa e de la cla e p ima ia, se a a de una cla e o ´anea que hace e e encia
al campo email de la abla usua ios. Es un a cha de 40 ca ac e es que pe mi e sabe
qui´en es el usua io que ha es ado es udiando/descansando en ese momen o, pa a as´ı ene
luego sus es ad´ıs icas pe sonales que pode mos a .
echa inicio: Fo ma pa e de la cla e p ima ia. Se a a de un imes amp que pe mi e al-
macena cu´ando comenz´o el es ado de ese usua io. Es deci , el momen o en el que comenz´o
a es udia o a descansa .
du acion: Se a a de un en e o en el cual se almacena la du aci´on en segundos de ese
de e minado es ado. Es deci , si un es udian e ha es ado es udiando 10 minu os an es de
inicia su descanso, su en ada espec i a end ´a el campo du acion a 600.
es udiando: Se a a de un inyin , ambi´en conocido como booleano que pe mi e sabe
si el es udian es es aba es udiando o descansando. En el caso de que es u ie a es udiando
es a ´a a 1, mien as que si es aba descansando, es a ´a a 1.
pues o: Fo ma pa e de la cla e p ima ia, se a a de una cla e o ´anea que hace e e encia
al campo ID de la abla pues os. Se a a de un a cha de longi ud 10 que pe mi e conoce
en qu´e pues o es aba es udiando el usua io.
44
Ho a ios
En es a abla se almacenan los ho a ios seg´un cada d´ıa de la semana pa a las di e en es
plan as de cada biblio eca implemen ada en la aplicaci´on. El biblio eca io es el ´unico que puede
modi ica los ho a ios de las di e en es plan as de la biblio eca a la que pe enece, seg´un ayan
a es a abie as.
Es una abla a la cu´al se accede pa a modi ica la desde el apa ado es ablece ho a io de la
p´agina web si se quie en modi ica los ho a ios que hay es ablecidos o desde la aplicaci´on m´o il,
como es udian es, pa a as´ı pode consul a el ho a io de la biblio eca en la que se encuen e.
Cons a de cinco campos, los cuales son los siguien es:
biblio eca: Fo ma pa e de la cla e p ima ia, se a a de una cla e o ´anea que hace
e e encia al campo siglas de la abla biblio ecas. Es un a cha de 3 ca ac e es que pe mi e
sabe a qu´e biblio eca hace e e encia dicho ho a io.
plan a: Fo ma pa e de la cla e p ima ia, se a a de un a cha de longi ud m´axima 40
ca ac e es que pe mi e sabe el nomb e de la plan a a la cual hace e e encia dicho ho a io.
Es o es ´a as´ı implemen ado pues o que hay biblio ecas en las cuales cada plan a puede
ce a a una de e minada ho a. El nomb e de la plan a es especi icado po el biblio eca io
cuando es ablece el ho a io.
dia: Fo ma pa e de la cla e p ima ia, se a a de un a cha de longi ud 10 en el cual se
almacena el d´ıa de la semana al cual hace e e encia dicho ho a io.
ho a inicio: Se a a de un ime en el cual se almacena la ho a de ape u a de la biblio eca
pa a ese d´ıa. Po con enio, si es ´a ce ada ese d´ıa se almacena ´a 11:11:11 y si es ´a abie a
24 ho as 23:59:59.
ho a in: Se a a de un ime en el cual se almacena la ho a de cie e de la biblio eca pa a
ese d´ıa. Po con enio, si es ´a ce ada ese d´ıa se almacena ´a 11:11:11 y si es ´a abie a 24
ho as 23:59:59.
Ocupa
Es a abla con iene la ocupaci´on ac ual de odas las biblio ecas que es ´en implemen adas
en la aplicaci´on. Es muy ´u il pues o que es la abla que se comp ueba a la ho a de ealiza las
es ad´ıs icas en las que se mues an a iempo eal el n´ume o de pues os que es ´an ocupados
Adem´as, se usa pa a ga an iza la in eg idad en e la abla pues os y la abla ocupa, de
o ma que odos los pues os que apa ezcan como ocupados en la abla pues os deben ene su
espec i a en ada en la abla ocupa.
Cons a de cua o campos, los cuales son los siguien es:
email: Fo ma pa e de la cla e p ima ia, se a a de una cla e o ´anea que hace e e encia
al campo email de la abla usua ios. Es un a cha de 40 ca ac e es que pe mi e sabe
qui´en es el usua io que es ´a ocupando ese de e minado pues o. Es una in o maci´on que es
´u il pa a as´ı mos a su p opio pues o de o o colo al usua io en el mapa de pues os de
la biblio eca.
pues o: Se a a de una cla e o ´anea que hace e e encia al campo ID de la abla pues os.
Se a a de un a cha de longi ud 10 que pe mi e conoce en qu´e pues o es ´a es udiando
el usua io. En combinaci´on con el campo an e io pe mi e sabe qu´e usua io es el que es ´a
ocupando cada pues o.
45
empo izado : Se a a de un en e o en el cual se almacena el iempo que lle a el es-
udian e en dicho pues o. O iginalmen e iba a se i pa a e cu´an o e a el iempo de
descanso disponible de cada usua io pe o inalmen e no se hace uso del mismo pues o que
la implemen aci´on del iempo disponible se ealiza desde la app pa a e i a conexiones con
el se ido que gas en ba e ´ıa.
den o: Se a a de un inyin , ambi´en conocido como booleano que pe mi e sabe si el
es udian e si encuen a descansando o es udiando. Si es ´a a 0 es ´a descansando y si es ´a a
1 es udiando.
Pues os
Es a abla incluye odos los pues os de odas las biblio ecas implemen adas en la aplicaci´on.
Adem´as, exis en pues os comod´ın del es ilo XXXGlobal y TGlobalXXX que pe mi en ag upa
odas las es ad´ıs icas de un de e minado usua io en a˜nos pasados (pa a la p oblem´a ica de que
la abla his o ico ue a demasiado g ande).
Es una abla en la cual ni los biblio eca ios ni los usua ios pueden hace nue as inse ciones.
Son los es desa ollado es los esponsables de inclui nue os pues os en el caso en el que se
incluya una nue a biblio eca en la aplicaci´on. El acceso desde la aplicaci´on a es a abla solo se
p oduci ´a en el caso de que un pues o pase a es a ocupado.
Cons a de an solo dos campos, los cuales son los siguien es:
ID: Es la cla e p ima ia, se a a de un a cha de longi ud 10 ca ac e es con la o ma
SIG PL XXX que pe mi e iden i ica cada pues o de cada biblio eca implemen ada. SIG
son las siglas de la biblio eca a la que se e ie e, PL el id de la plan a de esa biblio eca y
XXX el n´ume o de pues o de esa plan a en conc e o.
ocupado: Se a a de un inyin , ambi´en conocido como booleano que pe mi e sabe si el
pues o ocupado o no. Si es ´a a 0 es ´a lib e y si es ´a a 1 es ´a ocupado. Como se ha indicado
an es, pa a cada pues o ocupado, debe habe una en ada en la abla ocupa.
Usua ios
En es a abla apa ecen odos los usua ios que se encuen an egis ados en la aplicaci´on, con
sus espec i as con ase˜nas. Es una abla a la cual se accede en el momen o en el que se c ea un
usua io nue o (inse ´andolo en la abla) y cuando un es udian e ab e la aplicaci´on pa a e i ica
que su con ase˜na es co ec a.
Cons a de es, los cuales son los siguien es:
email: Es la cla e p ima ia, se a a de un a cha de longi ud 40 ca ac e es que pe mi e
iden i ica al usua io.
con asenia: Se a a de un a cha de longi ud 100 ca ac e es en el cual se almacena
la con ase˜na del usua io hasheada. Pe mi e comp oba que la con ase˜na in oducida es
co ec a.
ac i ado: Se a a de un inyin , ambi´en conocido como booleano que pe mi e sabe si el
usua io es ´a ac i ado o no. Si es ´a a 0 no es ´a ac i ado y si es ´a a 1 s´ı lo es ´a. A la ho a de
accede a la aplicaci´on se comp ueba que es e campo es ´a a 1 pa a as´ı pe mi i el acceso
a la misma.
46
Usua iosAc i os
En es a abla se almacena el email del usua io jun o a su ´ul imo en ´ıo de se˜nal ac i o. Con
ello, se puede de e mina si ese m´o il sigue es ando encendido o no.
Es una abla en la cual se inse a una ila cuando un usua io ocupa un pues o y dicha ila
se a ac ualizando pe i´odicamen e cada 15 minu os, siemp e que no se libe e dicho pues o o se
apague el m´o il. Adem´as, a es a abla accede pe i´odicamen e un CRON Job pa a e i ica qu´e
mo iles siguen ac i os.
Cons a de an solo dos campos, los cuales son los siguien es:
email: Es la cla e p ima ia, se a a de una cla e o ´anea que hace e e encia al campo
email de la abla usua ios. Es un a cha de 40 ca ac e es que pe mi e sabe qui´en es el
usua io el cu´al su m´o il sigue encendido. Es una in o maci´on impo an e, pues o que, de
no apa ece aqu´ı su email, su pues o se libe aba en la siguien e ejecuci´on del CRON Job.
ul imaIn o: Se a a de un imes amp que pe mi e conoce cu´ando ue mandada po
´ul ima ez in o maci´on desde el m´o il de su usua io. Es una in o maci´on muy impo an e
ya que, dependiendo de ese alo , el CRON Job in e p e a ´a que el m´o il ha sido apagado
o no y libe a ´a su pues o asociado o lo man end ´a.
Usua ios emp
Se a a de una abla empo al, usada pa a e i ica los co eos de los di e en es usua ios que
se egis an en el sis ema. Cuando un usua io se egis a en el sis ema, se almacena su email y
con ase˜na hasheada en la abla usua ios. Pe o adem´as, ambi´en se almacena aqu´ı su email y su
email hasheado y se le manda un email con un enlace pa a que ce i ique que el email que ha
egis ado le pe enece.
Cons a de an solo dos campos, los cuales son los siguien es:
email: Es la cla e p ima ia, se a a de una cla e o ´anea que hace e e encia al campo
email de la abla usua ios. Es un a cha de 40 ca ac e es que pe mi e sabe qui´en es el
usua io que acaba de se e i icado al pulsa sob e el enlace.
emailHashed: Se a a de un a cha de longi ud 100 en el cual almacenamos el email
del usua io hasheado. Pe mi e e i ica a qu´e usua io pe enece la cadena de ca ac e es a
la cu´al se acaba de accede median e el PHP, pa a as´ı ac i a dicho usua io.
5.2. Base de da os SQLi e
Es a base de da os es u ilizada ´unicamen e de mane a local en la aplicaci´on m´o il. G acias
a ella se ealiza una sesi´on co espondien e al usua io al inicia sesi´on. La p ime a ez que el
usua io inicia sesi´on en la aplicaci´on se p ocede a la gene aci´on de es a base de da os pe manen e
en el la memo ia del disposi i o.
De es a o ma, cada ez que el usua io ab a la app, se inicia la sesi´on di ec amen e ob eniendo
sus c edenciales de la base de da os, log ando as´ı una mejo expe iencia de usua io y e i ando
el epe i i o p oceso de inicia sesi´on cada ez que se inicia la app. Adem´as, cuen a con o os
campos en los que se almacenan o os da os que pe mi en educi el n´ume o de consul as a la
base de da os MySQL.
Es a sesi´on cons a de los siguien es campos:
47
email: Co esponde al email del usua io que es ´e egis ado en la aplicaci´on en ese m´o il
en ese momen o.
con asenia:Se a a de la con ase˜na hasheada pa a e i a pone en iesgo la cuen a del
usua io.
es ado: Se a a del es ado ac ual del usua io. Es os es ados pueden se ’Descansando’,
’Ocupando pues o’, ’Den o biblio eca’ o ’Fue a biblio eca’. Es os es ados a ´ıan seg´un la
acci´on que es ´e desa ollando el usua io y pe mi en que se man engan ac i as unas u o as
unciones en la app.
la i ud: Co esponde a la la i ud del usua io ac ualmen e, medida median e edes gps.
longi ud: Co esponde a la longi ud del usua io ac ualmen e, medida median e edes gps.
pues o: En es a a iable se almacena el pues o ocupado po el usua io ac ualmen e, en el
siguien e o ma o: nomb e de la biblio eca + plan a de la biblio eca + si io. Un ejemplo
pod ´ıa se : FDI 01 020.
inicioEs ado: En es e campo se almacena la echa en la que el usua io inici´o su es a-
do ac ual. Es un campo u ilizado pa a, po ejemplo, de e mina el iempo de descanso
disponible po un usua io de e minado, como se desa olla ´a m´as adelan e.
du aci´onAcumulada: Aqu´ı se almacena la du aci´on acumulada, en segundos, que iene
el usua io disponible pa a pode descansa .
plan a1: Aqu´ı se almacena el nomb e de la p ime a plan a de la Biblio eca de la Facul ad
de In o m´a ica pa a pode mos a lo en la app.
plan a2: Aqu´ı se almacena el nomb e de la segunda plan a de la Biblio eca de la Facul ad
de In o m´a ica pa a pode mos a lo en la app.
plan a3: Aqu´ı se almacena el nomb e de la e ce a plan a de la Biblio eca de la Facul ad
de In o m´a ica pa a pode mos a lo en la app.
5.3. Comunicaci´on en e los modelos de da os
Exis e una conexi´on en e las dos bases de da os que implemen an el p oyec o, median e la
cual se in e cambian da os pa a man ene la consis encia y ac ualiza el sis ema a medida que
ayan p oduci´endose acon ecimien os.
En la Figu a 27 se puede obse a de mane a g ´a ica las elaciones en e los algunos de los
campos de la base de da os local con los campos de a ias ablas de la base de da os del se ido .
48
Figu a 27: Diag ama de las elaciones en e las dos bases de da os
En odas las conexiones, a excepci´on de una, la base de da os SQLi e en ´ıa in o maci´on
ele an e al usua io que quie e in e ac ua con el sis ema, ya sea iniciando sesi´on, egis ´ando-
se, ocupando un pues o, desocup´andolo o haciendo descansos. En odos es os casos, el se ido
ecibe el email del usua io jun o al es o de da os necesa ios pa a e ec ua la ope aci´on e inse a
o ac ualiza en las ablas co espondien es el nue o acon ecimien o.
Es o esul a imp escindible pa a man ene la unicidad y consis encia de los da os.
La ´unica excepci´on es la ela i a a la abla ho a ios de la base de da os MySQL. Cada
aplicaci´on m´o il lee de ah´ı el nomb e de las plan as de la biblio eca pa a pode iden i ica las
den o de la app. Es el ´unico caso en el que la base de da os SQLi e ecibe da os pa a almacena los
en luga de en ia los que ya inco po an sus ablas.
49
A con inuaci´on se a a desc ibi el dise˜no de la p´agina de inicia sesi´on.
Figu a 33: E o es al inicia sesi´on
En la Figu a 33 se obse an los dos posibles e o es que pueden llega a apa ece , los cuales
son:
Siglas y/o con ase˜na inco ec os: apa ece en caso de que el usua io o la con ase˜na no
apa ezca en la base de da os. Se ha elegido el colo ojo po con enio pa a que el usua io
sepa econoce que se a a de un e o . Es e mensaje de e o se mues a o se ocul a
g acias a una unci´on en Ja asc ip .
Comple a es e campo: sale du an e unos segundos en el campo que al e po ellena .
´
Unicamen e se comp ueba an es de en ia la in o maci´on del usua io y la con ase˜na al
PHP.
En cuan o a los colo es, el neg o ha sido elegido pa a el heade y el oo e , pa a los bo ones,
una gama de colo es ojos (debido al se el colo de la UCM), y pa a el es o el blanco, que
combina isualmen e bien con los dos colo es an e io es.
Po ´ul imo, des aca que el dise˜no de es a p´agina ha sido consensuado pa a que sea lo m´as
simple y sencillo posible, con el obje i o de que el usua io iden i ique ´acilmen e las po enciali-
dades de la p´agina y de da le el meno n´ume o de unciones posibles pa a no sob eca ga le. En
es e caso solo end ´ıa que ellena dos campos.
56
7.1.2. Buz´on de suge encias
Es a uncionalidad p opo ciona un canal de comunicaci´on en e es udian es y biblio eca ios.
En un is azo gene al a la p´agina web se puede e que el heade y el oo e se epi en a
lo la go de las di e en es p´aginas, con la misma es uc u a. En es e apa ado se pueden e
odos los mensajes que la biblio eca ha ecibido (en es e caso la Biblio eca de la Facul ad de
In o m´a ica), donde cada uno es ´a di idido en es columnas: ‘Respondido’, que indica si se ha
espondido o no el mensaje, ‘Fecha’ y ‘Asun o’. A la de echa se encuen a el bo ´on ‘Mos a ’,
sob e el que se puede clica pa a lee el di´alogo que se ha man enido con el usua io, es deci , los
mensajes que se han in e cambiado.
Es impo an e sabe que no se mues a al biblio eca io la iden idad del usua io que mand´o
el mail pa a pode espe a su p i acidad. Se ha u ilizado el icono de una caja ac´ıa pa a el
caso en el que el mensaje no se ha espondido, y una caja con un check si el mensaje ya ha sido
espondido.
Se ha de inido a 10 el n´ume o m´aximo de mensajes a mos a po p´agina.
Figu a 34: Buz´on de suge encias - Aplicaci´on web
Al pulsa el bo ´on ‘Mos a ’ de un mensaje se ab i ´a pa a pode in e ac ua con ´el. En el
caso de que ya se haya espondido, apa ece ´an an o el mensaje ecibido como la espues a
del biblio eca io. En caso caso con a io, el biblio eca io end ´a la opci´on de esponde con un
campo en el que se pod ´a in oduci ex o. El ecu so u ilizado pa a mos a el mensaje es un
pop-up pa a pode supe pone el mensaje a la lis a de mensajes sin ene que edi igi a o a
p´agina dis in a, disminuyendo la sob eca ga de pes a˜nas al usua io.
57
En las Figu as 35 y 36 se pueden e dichos ejemplos espec i amen e:
Figu a 35: Buz´on de suge encias - Con es a mensaje
Figu a 36: Buz´on de suge encias - Mensaje ya con es ado
En lo que espec a a la implemen aci´on, en p ime luga se comp ueba que el biblio eca io
es ´e logueado. En caso de que el usua io quie a en a en es a p´agina sin habe iniciado sesi´on
an es, se le edi igi ´a di ec amen e a la p´agina de login pa a que inicie sesi´on. Es e es un aspec o
que sucede en odas las uncionalidades en las cuales es necesa io egis a se.
Los mensajes se mues an en la lis a en o den de echa descenden e y se es ablece el l´ımi e de
mensajes po p´agina a 10.
58
Lo p ime o que se mues a de los mensajes es si ha sido espondido (si el id de dicho mensaje
apa ece en dos ocasiones en la base de da os) o es ´a pendien e de ello (eso que ´a deci que solo
se ha encon ado una coincidencia con el id).
Una ez mos ada la ila de cada mensaje se habili a el bo ´on ‘Mos a ’, pa a que se pueda
conoce el con enido del mensaje. Al pulsa en dicho bo ´on, p ime o se mues a el mensaje que
co esponde a dicho id y luego exis en dos posibles caminos: mos a el mensaje con es ado, en
caso de que apa ezca dos eces el mismo id en la base de da os de la abla en ´ıa, o mos a un
cuad o de ex o pa a pode inse a una nue a ila en dicha abla si an solo apa ece una.
En cuan o al dise˜no, se emplean las cajas de espues a del mensaje con los iconos de glyphi-
con, que apo an un dise˜no esponsi e. Al se el heade y el oo e neg os, se ha u ilizado una
gama de colo es blanco pa a no sob eca ga al usua io con colo es muy llama i os.
7.1.3. Es ad´ıs icas
Se a a de una uncionalidad pa a la cual es necesa io hace uso de Highcha s [16], una
biblio eca a la que se accede median e Ja asc ip y con la que se puede especi ica el in e alo
de iempo que se quie e consul a . En la Figu a 37 se ap ecia c´omo se es ablece la conexi´on con
dicha lib e ´ıa y se con igu a alguna opci´on del g ´a ico como es el selec o .
Figu a 37: F agmen o de c´odigo co espondien e a la gene aci´on de la g ´a ica
Pa a la ob enci´on de los da os desde la base de da os es necesa io hace una consul a a la
misma. La l´ogica de la uncionalidad es ´a implemen ada en es ad´ıs icas.php de la ca pe a que
lle a su mismo nomb e. En ese iche o se encuen a, en e o as cosas, la que y con la que se selec-
ciona del his ´o ico la suma o al de la du aci´on de los iempos de es udio y se ag upan po d´ıas:
“SELECT ((SUM(du acion) / COUNT(DISTINCT(email))) / 60) as minu osPo Es udian e,
DATE FORMAT( echa inicio,’asd %e- %m- %Y’) as dia FROM ‘his o ico‘ WHERE es udiando
= 1 AND SUBSTRING(pues o, 1, 3) = ’$usua io’ GROUP by DATE FORMAT( echa inicio,
’ %e- %m- %Y’) ORDER BY DATE FORMAT( echa inicio, ’ %Y- %m- %d’)”
59
Uno de los p incipales p oblemas encon ados en el desa ollo de es a uncionalidad ue el
hecho del desa ollo de la que y. Como se puede e , se a a de una consul a bas an e compleja,
po lo que lle ´o un poco de iempo al equipo de desa ollo da con la que y que sa is acie a
odas las condiciones plan eadas.
Adem´as, como p oblema a˜nadido a la ho a de mig a a la e si´on inal, el g ´a ico mos aba
una l´ınea hacia a ´as desde, po ejemplo, el d´ıa 19 de cada mes has a el d´ıa 2. Es e peque˜no
p oblema e a debido a que a la ho a de esca a los da os de la BBDD, no se ob en´ıa el 0
delan e o de los n´ume os del 1 al 9, po lo que la o denaci´on no e a la adecuada.
Po ´ul imo, o o g an p oblema que su gi´o al pasa al se ido de pago, con unas con igu-
aciones ho a ias di e en es, ue que el g ´a ico de Highcha s no uncionaba, no mos aba nada
en pan alla. Finalmen e y as p oba a ias soluciones, se di´o con la soluci´on co ec a, que
consis i´o en es ablece la zona ho a ia cuando se gene aba el g ´a ico a la zona ho a ia de Mad id
median e la siguien e l´ınea de c´odigo:
da e de aul imezone se (’Eu ope/Mad id’)
En lo que concie ne al dise˜no, al igual que en el es o de uncionalidades implemen adas en
la web, se mues a en la pa e supe io un encabezado en el cual apa ecen disponibles odas
las uncionalidades implemen adas en la p´agina web. Adem´as, apa ece el mismo oo e que es ´a
desa ollado pa a odas las p´aginas una ez se ha iniciado sesi´on. En cuan o al dise˜no p opia-
men e de la pa e de las es ad´ıs icas, se a a de un g ´a ico en el cual median e un selec o se
puede es ablece el ango conc e o sob e el que que emos hace la consul a.
Figu a 38: G ´a ica es ad´ıs icas en la web
Como se puede ap ecia en la Figu a 38, en la pa e in e io del g ´a ico exis e un selec o
co ede o que pe mi e ajus a las echas a consul a . A medida que se es ablece el ango, el
g ´a ico se a adap ando din´amicamen e, modi icando su escala a los da os p opo cionados pa a
ese in e alo.
60
7.1.4. Ho a io
O o de los a ac i os que iene la aplicaci´on web es que el biblio eca io pod ´a es ablece el
ho a io de su biblio eca y modi ica lo las eces que sean necesa ias. Incluso exis e la posibilidad
de asigna ho a ios di e en es a cada una de las plan as o salas que con o man la biblio eca
en el caso de que no lo compa an en e ellas, como ocu e en la biblio eca de la Facul ad de
In o m´a ica.
Es a uncionalidad cub e una doble necesidad. Po un lado, en de e minadas ci cuns ancias
la biblio eca se e obligada a al e a su ho a io no mal de ape u a y/o cie e y necesi a que los
usua ios que ecuen an las ins alaciones conozcan la nue a si uaci´on. Puede encon a se aqu´ı
una he amien a id´onea donde ac ualiza al in o maci´on, que queda ´a e lejada ins an ´anea-
men e en la aplicaci´on m´o il. G acias a que el ho a io se es ablece de mane a semanal, esul a ´a
muy sencillo cambia ´unicamen e el d´ıa o d´ıas que se deseen sin ene que modi ica el es o de
la semana. Po o o lado, pa a quien acude a la biblio eca siemp e puede exis i la duda de qu´e
d´ıas y a qu´e ho a ab ´ıa o ce aba cie a biblio eca. Selecciona en la app la biblio eca que se
quie a consul a y accede al apa ado Ho a io esol e ´a la inc´ogni a de mane a muy sencilla y
´apida.
En lo ela i o al dise˜no y es uc u a, en la Figu a 39 se puede el aspec o de es e apa ado
de la web.
Figu a 39: Es ablece ho a io en la web
A es a uncionalidad de la aplicaci´on web se puede accede a a ´es de la pes a˜na del heade
en la que se puede lee “Es ablece Ho a io”. Al hace clic, se ´a edi igido al iche o index.php
ubicado en la ca pe a ho a io del ´a bol de di ec o ios. La p´agina es ´a di idida en pes a˜nas,
co espondi´endose cada una de ellas con las di e en es plan as o salas de las que dispone la
biblio eca, mos ´andose en es a imagen la pes a˜na co espondien e a la p ime a plan a. El colo
ojo de la ba a de pes a˜nas indica cu´al es ´a seleccionada y se mues a ac ualmen e, pudiendo
cambia en e plan as pa a asigna los dis in os ho a ios. Como indica el s´ımbolo a la izquie da
del nomb e de la plan a si uado bajo la ba a, ese nomb e puede cambia se y se sus i uido
po el que el biblio eca io conside e opo uno. En es e caso, al a a se de la biblio eca de la
61
Facul ad de In o m´a ica, las plan as es ´an iden i icadas como P ime a, Segunda y Te ce a, pe o
si se a ase de la Biblio eca Ma ´ıa Zamb ano, po ejemplo, las salas pod ´ıan llama se Sala de
Filolog´ıa o Sala de De echo pa a que los usua ios de la aplicaci´on sepan iden i ica las.
A la de echa de la ba a de a eas se encuen a un bo ´on en el que se lee “A˜nadi o a plan-
a”. Al pulsa lo, se gene a ´a au om´a icamen e o a pes a˜na que end ´a po nomb e la palab a
“Plan a” seguido del n´ume o de pes a˜na que le co esponda. Es deci , en la imagen an e io , al
pulsa en ese bo ´on se a˜nadi ´ıa o a pes a˜na con el nomb e de “Plan a 4”, y queda ´ıa selecciona-
da y abie a pa a pode ealiza di ec amen e cambios en ella. Si se cambia el nomb e de alguna
de las plan as, se ´a necesa io gua da y e esca la p´agina pa a que el cambio quede e lejado
en la ba a de pes a˜nas.
El ho a io es ´a ep esen ado po una abla ho izon al que dispone de 8 columnas, 7 de ellas
se designan a cada uno de los d´ıas de la semana, y 3 ilas, siendo 2 de ellas pa a indica la ho a
de ape u a y cie e de la biblio eca. Ob iando la p ime a ila y la p ime a columna, que son
empleadas po los ´ı ulos, el es o de las celdas se co esponden con las ho as de ape u a y cie e
de los di e en es d´ıas de la semana. Cada una de es as celdas la compone un bo ´on desplegable
en el que apa ecen como opci´on, po cada una de las 24 ho as del d´ıa, la ho a en pun o y la
media ho a. Es deci , al desplega uno de los bo ones se puede elegi una ho a en e las 00:00,
00:30, 01:00, 01:30, has a las 23:30, adem´as de dos opciones especiales que ienen po nomb e
“Ce ado” y “Todo el d´ıa”. Al selecciona alguna de es as dos opciones como ho a de ape u a,
se selecciona au om´a icamen e la misma opci´on como ho a de cie e en ese d´ıa y adem´as se
deshabili a ese bo ´on pa a que no pueda se modi icado y las ho as de ape u a y cie en sean
coinciden es.
En la pa e in e io de la abla se dispone de un bo ´on con la palab a “En ia ” con el que
se gua da el nue o ho a io en la base de da os, c e´andolo si no exis e o modi ic´andolo en o o
caso. Cabe des aca que al pulsa es e bo ´on se gua da ´an en la base de da os odas las plan as
que exis an en la p´agina con sus ho as es ablecidas, no se ´ıa necesa io en ia cada plan a indi-
idualmen e, si no que odo unciona como un mismo o mula io.
Po ´ul imo, cabe des aca la exis encia en la pa e in e io de la p´agina web de un mapa
donde apa ece se˜nalada la ubicaci´on de la biblio eca que iene la sesi´on iniciada en la web, con
obje o de comp oba que su localizaci´on en la base de da os es co ec a.
T as conoce el dise˜no, se explica ´a aho a c´omo ha sido su implemen aci´on.
Como ya se ha dicho, es e apa ado de la web se co esponde con el iche o index.php de la
ca pe a ho a io. La p ime a misi´on de es e php es conec a se con la base de da os y comp oba ,
en la abla ho a ios, si ya exis e un ho a io gua dado pa a es a biblio eca. Si es as´ı, se ecogen
los da os y pa a pos e io men e i eco i´endolo y pin ´andolo. En el caso con a io, se mos a ´a
una plan illa pa a que el enca gado de asigna lo lo comple e con los da os co ec os.
Se expond ´a en p ime luga el caso en el que no se encuen en da os sob e es a biblio eca.
Lo p ime o que gene a es e iche o php es la ba a de pes a˜nas en las que se pueden e las
di e en es plan as. Se mos a ´a solamen e una, llamada “Plan a 1”, que di ec amen e apa ece ´a
seleccionada en colo ojo, y el bo ´on “A˜nadi o a plan a”.
A con inuaci´on se c ea ´a un nue o elemen o <di >cuyo iden i icado se ´a el nomb e de la
plan a, en es e caso “plan a1”, y que se i ´a pa a iden i ica la abla co espondien e a es a
plan a. En ´el, se ab i ´a un o mula io y se comenza ´a a gene a , median e un bucle que eco e
odos los d´ıas de la semana, la abla del ho a io con cada una de sus opciones, quedando selec-
62
cionadas po de ec o las 09:00 como ho a de ape u a y las 21:00 como ho a de cie e. Requie en
especial a enci´on los a ibu os ‘id’ y ‘name’ de cada una de es as celdas, ya que asigna les un
co ec o iden i icado solucion´o un g an p oblema que su gi´o y que se explica ´a m´as adelan e.
Pa a conclui el o mula io, se c ea el bo ´on “En ia ” que ans e i ´a los da os del o mula io
a o o iche o ubicado en la misma ca pe a llamado “gua da Ho a io.php”, que inse a ´a es e
ho a io en la base de da os. Es e a chi o se enca ga ´a de ecoge los da os que se mandan,
con abiliza el n´ume o de plan as que se an a ing esa en la base de da os y median e un bucle
que da ´a an as uel as como pla as haya, ecoge ´a los da os de cada plan a y los inse a ´a o
eemplaza ´a en la abla ‘ho a ios’ de la base de da os.
Si ya exis en da os almacenados pa a esa biblio eca, an es de gene a ning´un elemen o HTML
se hace una nue a consul a pa a de e mina el n´ume o de plan as almacenadas en la base de
da os, con el obje i o p oduci an as pes a˜nas y an os bloques como sean necesa ios. Se c ea
la ba a y se le asigna a las pes a˜nas el nomb e que se lee de la base de da os. Aho a se c ean los
bloques que se co esponden con las dis in as plan as, cada uno con su nomb e co espondien e.
De la misma mane a que en la plan illa, se gene an las celdas de la abla, pe o es a ez comp o-
bando qu´e opci´on de los desplegables debe queda seleccionada. Pa a ello, se ealiza una nue a
consul a que de uel e los da os co espondien e a una plan a, ya que se consiguen los nomb es
de las mismas en la consul a an e io . Po cada una, se leen los alo es de las ho as de ape u a
y cie e y es el que queda seleccionado al gene a las celdas de la abla, epi iendo es e p oceso
en odas las plan as exis en es. Finalmen e, as habe sido c eados odos los bloques con su
co espondien e abla, se c ea el bo ´on “En ia ” y se cie a el o mula io, que engloba ´a a odas
las plan as, quedando cada una de sus a iables pe ec amen e di e enciadas po sus a ibu os
‘id’ y ‘name’.
Al desa olla odo es e p oceso su gie on a ios p oblemas, siendo dos los m´as impo an es:
uno ue c´omo hace pa a que un mismo bo ´on si ie a pa a en ia los da os de dis in os o mu-
la ios y o o di e encia las ho as de ape u a y cie e de las dis in as plan as. La soluci´on del
p ime o ue simplemen e ag upa odas las plan as en un ´unico o mula io, cada una con enida
en un elemen o <di >y con las a iables di e enciadas. Es a soluci´on, que pa ece an senci-
lla, no se pens´o desde el p ime momen o debido a que las di e en es plan as es aban siendo
in e p e adas como elemen os comple amen e independien es, pe o cuando se comp endi´o bien
que aunque los bloques es ´en ocul os siguen siendo pa e de la web, incluidas sus a iables, se
coloca on odos den o de un ´unico o mula io, quedando as´ı englobadas po un ´unico bo ´on.
Es o lle a al segundo p oblema, sabe c´omo di e encia las di e en es a iables de cada una
de las plan as, es deci , c´omo di e encia el alo co espondien e a, po ejemplo, la ho a que
ab ´ıa el lunes la plan a 1 y la plan a 2. Dado que la o ma de iden i ica cada una de las a iables
de un o mula io pasa po consul a su a ibu o ‘name’, la soluci´on e a da le un iden i icado
´unico y que uese lo su icien emen e cla o, el cual ue “nume oDePlan a diaDeLaSemana ab e”
pa a la ho a de ape u a y “nume oDePlan a diaDeLaSemana cie a” pa a la ho a de cie e. De
mane a simila se hizo pa a el ‘id’. Po ejemplo, pa a la ho a de ape u a del lunes de la plan a
1, el ‘name’ de su a iable e a “1 Lunes ab e”.
Po ´ul imo, es de menci´on c´omo unciona la ba a de pes a˜nas de las dis in as plan as. Su
co ec o uncionamien o es posible g acias a dos unciones, una en Ja asc ip llamada “ab i -
Plan a” pa a mos a las di e en es plan as y o a en jQue y enca gada de a˜nadi una nue a al
pulsa en el bo ´on co espondien e. La p ime a busca ´a el bloque <di >que enga como iden-
i icado el nomb e de la plan a que apa ece en la pes a˜na que pulsada, lo ha ´a isible, ocul a ´a
el bloque de la pes a˜na que se es aba mos ando y pond ´a la pes a˜na seleccionada de colo ojo.
La segunda de ellas es m´as compleja, ya que iene que gene a una nue a pes a˜na, un nue o
bloque y nomb a cada uno de sus elemen os co ec amen e pa a iden i ica los indi idualmen e
63
de mane a inequ´ı oca. El p ocedimien o pasa po clona el <di >de la p ime a plan a, pa a
pos e io men e cambia odos sus a ibu os y alo es. El nomb e y el id se consegui ´a a e iguan-
do cu´al es el n´ume o de la nue a plan a, con abilizando las ya c eadas. Se le asigna ese nomb e
y se coloca jus o encima del bo ´on “En ia ”. Lo siguien e es enomb a el ‘id’ y ‘name’ de odas
las a iables del o mula io de la mane a explicada an e io men e, y deja seleccionadas las ho as
que se de inie on en la plan illa. Po ´ul imo, se c ea la nue a pes a˜na en la ba a, con el nomb e
adecuado, y se hace clic median e una unci´on Ja asc ip pa a que se ab a au om´a icamen e
as habe pulsado en “A˜nadi o a plan a”.
7.1.5. Ce a sesi´on
Como se comen ´o p e iamen e en es e cap´ı ulo, algunas de las ca pe as en las que se di ide
la web no p esen an ninguna in e az g ´a ica, an solo ejecu an una uncionalidad. Ce a se-
si´on es una de ellas. Se a a de una uncionalidad p esen e siemp e en el la e al de echo del
encabezado que pe mi e ce a la sesi´on iniciada en la web. Se le ha asignado ese emplazamien-
o siguiendo el pa ´on Sign-In ools, el cual dice que es una o ma de si ua al usua io en la
p´agina web y que si quie e ealiza la unci´on de ce a sesi´on la encon a ´a ´apidamen e, de-
bido a que es ´a acos umb ado a ene esa opci´on en el mismo si io en la mayo ´ıa de po ales web.
Pa a ce a sesi´on, una ez se pulsa sob e dicha opci´on, se desenlazan odos las a iables
de la sesi´on con session unse () y se des uye la sesi´on con session des oy(). Una ez ealizado
es o, se edi ige a la p´agina p incipal, en la que exis e la posibilidad de ol e a loguea se.
7.1.6. Qui´enes somos
Es a p´agina, p esen e en el pie de p´agina, es la huella, ma ca o p esen aci´on de los in eg an es
y desa ollado es de la web. Al accede a ella, se obse a una p´agina sencilla pe o elegan e en la
que apa ecen el nomb e, los apellidos y la o o de cada uno de los es es udian es desa ollado es
del p esen e T abajo de Fin de G ado.
Es una p´agina a la cual se puede accede indis in amen e de habe iniciado sesi´on, no equie e
de ninguna con ase˜na ni usua io pa a se accesible como s´ı que ocu e con la mayo ´ıa de p´aginas
es an es.
7.1.7. Heade
El encabezado es un elemen o que es ´a siemp e p esen e en la web. A la ho a de ealiza lo,
se pens´o c´omo hace que ue a in ui i o, ´apido y, sob e odo ´acil, de usa . T as ba aja a ias
opciones, se de e min´o que, pues o que las unciones que iban a es a disponibles en la p´agina
web e an, a g andes asgos, cua o, lo ideal se ´ıa que es u ie an odas a la is a del usua io, sin
ene que na ega po complejos men´us pa a encon a las.
As´ı pues, se es ableci´o un heade que con ase con las cua o uncionalidades p incipales:
buz´on de suge encias, es ad´ıs icas, es ablece ho a io y ce a sesi´on. En el cen o de las cua o
opciones, pues o que de momen o la ´unica biblio eca implemen ada es la de la Facul ad de In-
o m´a ica de la UCM, se decidi´o coloca el escudo de la Uni e sidad Complu ense de Mad id.
Se a a de un heade esponsi e, que se adap a pe ec amen e a las di e en es dimensiones de
pan alla y a disposi i os m´o iles.
En cuan o al dise˜no, se op ´o po el colo neg o, con los iconos de Ma e ial Design de colo
blanco pa a da le un es ilo sob io y elegan e. Al pasa el mouse sob e cada uno de los elemen os
del encabezado, se ema ca en un colo g is cla o, poniendo el icono de colo neg o pa a as´ı
o ece al usua io in o maci´on cla a de qu´e opci´on es en la que a a pulsa .
64
P eside el encabezado ( ´ease Figu a 40) el escudo de la UCM sob e una ci cun e encia de colo
ojo.
Figu a 40: Encabezado con la sesi´on iniciada
No end ´ıa sen ido que las cua o opciones del encabezado se mos a an cuando la sesi´on no
es ´a iniciada. En ese caso (como ocu e po ejemplo en la pes a˜na de inicia sesi´on), las opciones
desapa ecen quedando an solo el escudo de la UCM, como se puede ap ecia en la Figu a 41
siguien e.
Figu a 41: Encabezado sin habe iniciado sesi´on
7.1.8. Foo e
De igual modo que en el caso del heade , se a a de un elemen o que se encuen a siemp e
p esen e en la p´agina web. A la ho a de dise˜na lo, se han incluido las di e en es opciones que
deben es a disponibles a cualquie usua io que accediese a la web, independien emen e de que
es u ie a logueado o no.
Adem´as, es necesa io que sea muy isual, in ui i o y amigable. Es po ello po lo que se
apos ´o po el dise˜no ac ual y se decidi´o inclui odas esas opciones. Se ha c e´ıdo necesa io que
cualquie usua io que acceda a la web pueda in o ma se sob e qui´enes son los desa ollado es
del p oyec o y pudiese desca ga la app m´o il, que es la pa e del p oyec o que es ´a des inada
al g an p´ublico. Po eso ha sido c eado un g upo de opciones llamado Explo a en el que se
enuen an es as dos opciones: Qui´enes somos y Desca ga app. Desca ga app se a a de un
enlace a Play S o e donde se puede desca ga la app m´o il Biblio eko.
T as es e g upo de opciones apa ece o o, denominado Comenza , en el cual es ˜na la opci´on
Inicia sesi´on, que edi ige a la p´agina de login. Es a es la ´unica pa e del oo e que di ie e seg´un
se haya iniciado sesi´on o no, ya que no iene sen ido que haya un enlace a inicia sesi´on si ya
es ´a iniciada. Po ´ul imo, a la de echa, es ´a la pa e en la que los usua ios pueden comunica se
con los desa ollado es. Es ah´ı donde apa ecen los es iconos de las edes sociales en las cu´ales
exis en pe iles c eados y ac i os (Twi e , Facebook e Ins ag am). Adem´as, exis e un bo ´on
Con ´ac anos median e el cual, al pulsa lo, se le ab e al usua io su p og ama de co eo pa a que
pueda en ia un co eo elec ´onico al equipo desa ollado .
En lo que espec a al dise˜no, se ha op ado po el mismo colo neg o que en el encabezado,
pa a as´ı da homogeneidad a la p´agina y un aspec o se io. A la izquie da del pie de p´agina se
encuen a el escudo de la Uni e sidad Complu ense de Mad id, al igual que en el encabezado
sob e un ondo ojo. Hacia la de echa podemos ap ecia los dos g upos de opciones comen ados
an e io men e. Al pasa po encima de alguna de las opciones, ´es a se esal a ´a en un blanco
m´as in enso. Po ´ul imo, a la de echa del odo, se ubican los enlaces de las edes sociales y
un bo ´on en colo ojo, que que des aca del es o, pa a que los usua ios puedan con ac a con
65
7.2.2. Inicia sesi´on
Se ´a la p ime a pan alla al inicia la aplicaci´on en el m´o il. Tend ´a la apa iencia que se
obse a en la Figu a 49.
Figu a 49: Inicio de sesi´on en And oid
El p ime equisi o indispensable pa a pode inicia sesi´on es es a egis ado, adem´as de
habe ac i ado el usua io. Si a´un no se ha hecho, pod ´a hace se pulsando en el enlace in e io .
El o mula io pa a inicia sesi´on dispone an solo de dos campos, el email y la con ase˜na.
En caso de no comple a alguno de ellos se no i ica al usua io el e o con un mensaje que dice
“Comple a odos los campos”. Del mismo modo ocu e en el caso de que no exis a el usua io en
la base de da os o la con ase˜na no sea la co ec a. Si el p oceso esul a sa is ac o io, se ealiza ´a
un in en (lanzamien o as´ınc ono de una nue a ac i idad) a la p´agina de biblio ecas.
72
(a) E o po campos ac´ıos (b) C edenciales inco ec as
Figu a 50: E o al inicia sesi´on en la app
En cuan o a la disposici´on de los elemen os se ha op ado po coloca el logo de la aplicaci´on
en el cen o de la p´agina y los dos campos pa a el inicio de la sesi´on. Como se puede obse a en
las di e en es igu a de es e apa ado, una ez clicas en un campo la le a del o ulo disminuye de
ama˜no, se si ´ua en la pa e supe io y cambia la aya del campo de colo blanco a neg o, dando
eedback ins an ´aneo al usua io de que el campo es ´a seleccionado. Todos los elemen os es ´an
anclados al cen o de la imagen pa a pode hace un buen eajus ado de ellos en las di e en es
dimensiones que ienen las pan allas de los disposi i os And oid.
En el encabezado es ´a indicado el ´ı ulo de la ac i idad ac ual pa a guia al usua io cuando
se desplace po las di e en es pan allas de la aplicaci´on (en es e caso Inicia sesi´on). El enla-
ce a la pan alla de egis o es ´a sub ayado pa a aumen a su isibilidad y da le aspec o de enlace.
En cuan o a la implemen aci´on, es a a ea se a a de un Ac i i y, debido a que iene una
is a XML asociada, como se puede e en la ca pe a ‘layou s’.
En es e layou se han u ilizado ecu sos como un edi Tex pe sonalizado pa a da la unci´on de
minimiza la le a y pode in oduci ex o y un bu on pa a el bo ´on, adem´as de un Tex View
pa a indica el enlace a Regis o y un ImageView pa a inse a el logo.
El a chi o Ja a co espondien e a es a ac i idad iene el nomb e de MainAc i i y.
Una ez se haya ca gado la is a se espe a ´a a que el usua io haya comple ado los campos
y pulse el bo ´on, en onces se ecoge ´an las c edenciales in oducidas y se ejecu a ´a un m´e odo
as´ınc ono pa a pode con ac a con la base de da os. Dicha clase he eda ´a de AsyncTask, que
o ece a ios m´e odos. En la Figu a 51 se mues a un agmen o del c´odigo de dicha clase, con
73
uno de los m´e odos implemen ados, y la llamada al php que ealiza la comp obaci´on del usua io.
Figu a 51: F agmen o de c´odigo de Inicia Sesi´on
En el PHP al que se accede median e el AsyncTask consegui emos el usua io y la con ase˜na
(hasheada, pa a no pone en pelig o al usua io), y despu´es se comp oba ´a en la base de da os del
se ido la exis encia de ese usua io, que la con ase˜na in oducida es co ec a y sea un usua io
ac i ado.
El PHP de ol e ´a a la clase ja a un obje o JSON en el que se pod ´a sabe si la ope aci´on se
ha e ec uado con ´exi o, y se no i ica ´a al usua io, con un Tex View, en el caso de que el usua io
no haya sido ac i ado o haya e o es en las c edenciales in oducidas. En caso de que no haya
dichos e o es se pasa ´a a la siguien e pan alla de la app y queda ´a gua dada la sesi´on en la base
de da os SQLi e, pa a que cuando se ab a la aplicaci´on de nue o, el usua io no enga que ol e
a inicia sesi´on, o eciendo de es a mane a en ajas conside ables de iempo y usabilidad.
74
7.2.3. Regis a
Es a uncionalidad pe mi e c ea una cuen a a los usua ios que a´un no lo hayan hecho. Tan
solo se han de ellena 3 campos, el co eo elec ´onico y la con ase˜na, que se ´a in oducida dos
eces pa a que si se come e alguna equi ocaci´on al esc ibi la, el usua io no se egis e con una
con ase˜na e ´onea.
A con inuaci´on podemos e como se ´ıa la pan alla de egis a , en la igu a 52.
Figu a 52: Regis o en And oid
La ´unica es icci´on que hab ´a es que la con ase˜na debe ene como m´ınimo de 8 ca ac e-
es incluyendo le as y n´ume os, haciendo as´ı que la con ase˜na sea segu a. Ambas con ase˜nas
debe ´an coincidi . Tambi´en se asegu a que el usua io ha elegido un usua io que no exis e en la
base de da os. A con inuaci´on, en la Figu a 53 se en los posibles e o es que pod ´ıan da se.
75
(a) Email no ´alido (b) Con ase˜na demasiado d´ebil (c) Con ase˜nas no coinciden
Figu a 53: Posibles e o es en el egis o
En cuan o al dise˜no empleado, se ha elegido los mismos colo es y la misma disposici´on que
en inicia sesi´on, p omo iendo as´ı una amilia idad con el usua io espec o a las di e en es pan-
allas. Se pod ´a ol e a la pan alla de inicio sesi´on median e el link que apa ece en la pa e
in e io , pa a que no se p oduzca el denominado “callej´on sin salida en las pan allas”.
Pa a la implemen aci´on de dicha ac i idad, se ha ealizado un a chi o XML de inido en la
ca pe a ‘layou s’ de inido pa a es a is a, basado en edi Tex , bu on y ex View.
La clase Ja a donde se ha implemen ado es a ac i idad es Regis o. Como en la an e io
secci´on, ambi´en se comienza po ca ga la is a y espe a a que se ellenen los campos. Una
ez ellenos y pulsado el bo ´on de egis a , se lanza una clase as´ınc ona que conec a ´a con la
base de da os. Se ecupe a ´a el email y la con ase˜na y se llama ´a al PHP de egis a , el cu´al
espe a ´a dichos campos.
Una ez ecibidos, comp oba ´a que no el email no exis ´ıa an e io men e en la base de da os
y lo inse a ´a jun o con la con ase˜na en la abla usua ios. Se ´a jus o aqu´ı donde se en ´ıe po
co eo al usua io un mensaje de ac i aci´on pa a que pueda ac i a su cuen a. El co eo que
ecibi ´a se ´a como el que apa ece en la Figu a 54.
Figu a 54: Mensaje pa a ac i a el usua io
76
Al clica en dicho link, apa ece ´a la con i maci´on de que se ha ac i ado la cuen a del usua io,
se da ´a de al a en la abla de usua ios, y se pod ´a inicia sesi´on con o al no malidad.
7.2.4. Biblio ecas
En es a pan alla se mues an las biblio ecas implemen adas en la aplicaci´on y se pod ´a elegi
cualquie a de ellas (como ya se sabe, po aho a la ´unica implemen ada es la de la Facul ad
de In o m´a ica). Tend ´a la unci´on de home o pan alla p incipal ya que, as inicia sesi´on po
p ime a ez, no ol ´a a apa ece la pan alla de login si no que se edi igi ´a di ec amen e a es a
pan alla, la pan alla de biblio ecas. Adem´as, es la pan alla a la que se ol e ´a si, es ando en
cualquie a de las opciones disponibles den o de cada una de las biblio ecas, se pulsa el bo ´on
a ´as.
Como se ap ecia en la siguien e cap u a, se a a de una pan alla bas an e sencilla en la
que se o ecen odas las biblio ecas disponibles en la app con su di ecci´on y su logo. El es o se
encuen an en es e Lis View a modo de ejemplo pa a mos a c´omo se e ´ıa cuando es u ie an
m´as biblio ecas implemen adas.
A pesa de an solo con a con una biblio eca, el p oyec o se ha desa ollado pa a pe mi i la
implemen aci´on de o as biblio ecas. Adem´as, es ´a ealizado de un modo que su implemen aci´on
esul e sencilla, siendo lo m´as cos oso el dise˜no y esquema de las di e en es salas de la nue a
biblio eca a implemen a . Tal como se puede ap ecia en la Figu a 55, es e es el dise˜no que iene
dicha pan alla.
Figu a 55: Pan alla de selecci´on de biblio eca en And oid
Una ez pulsada la biblio eca deseada, en es e caso la de la Facul ad de In o m´a ica, se
edi igi ´a a la pan alla de la plan a p incipal de la biblio eca. En el caso de la biblio eca de
77
la FDI, se ha de e minado que la plan a p incipal es la plan a 1, pues o que es ah´ı donde se
encuen a el mos ado de p ´es amo. Po an o, as pulsa ah´ı se nos mos a ´a la p ime a plan a
de la biblio eca con sus pues os lib es y ocupados.
7.2.5. Plan as
Una ez se seleccione una biblio eca, se accede ´a al mapa de la biblio eca en cues i´on. En es e
p oyec o se ha implemen ado la de la Facul ad de Ingenie ´ıa In o m´a ica, po lo que apa ece ´a
una ep esen aci´on eal de la disposici´on de los si ios y las mesas de la p ime a plan a.
A la izquie da de la pan alla, ocul o y accesible a a ´es de un bo ´on en el encabezado o
deslizando la pan alla hacia la de echa, se encuen a el men´u p incipal ci ado an e io men e,
a a ´es del cual se pod ´a accede a las di e sas unciones implemen adas. Es a uncionalidad
es ´a implemen ada en ´el, ya que si el usua io se encuen a en o a p´agina, como po ejemplo
es ad´ıs icas, y quie e ol e a plan as, puede pulsa en esa unci´on pa a ol e a e el mapa
de la biblio eca. En cuan o al dise˜no de es e apa ado en el men´u, se ha a ado de u iliza un
icono ep esen a i o, el cual son es l´aminas supe pues as que apa en an se las plan as de un
edi icio y que se ha ob enido de Ma e ial Design.
En la esquina in e io de echa de la pan alla se ap ecia un bo ´on lo an e que pe mi e selec-
ciona la plan a que se quie e consul a (habiendo 3 plan as en o al). Es e bo ´on con iene el
mismo icono de las es l´aminas u ilizado en el men´u. Al pulsa en ´el se despliegan es bo ones
que iden i ican a cada una de las plan as, pudiendo pulsa en cualquie a de ellos pa a elegi una
de las es, como se puede ap ecia en la Figu a 56.
Figu a 56: Bo ´on lo an e desplegado
78
Los pues os son ep esen ados en la aplicaci´on median e cuad ados, ag up´andose de la ma-
ne a que mejo con enga pa a ep esen a las mesas de cada plan a. El es ado de cada uno de
ellos se indica median e di e en es colo es, como se explica a con inuaci´on.
Aunque de mane a minimalis a, cada plan a se ha in en ado ep esen a con la mayo i-
delidad posible espec o a la dis ibuci´on eal que p esen an en la biblio eca de la acul ad.
La in e az posee elemen os como PUERTA o MOSTRADOR pa a pode o ien a y si ua al
usua io de mane a que ´acilmen e pueda iden i ica y elaciona los pues os de la aplicaci´on con
el que le co esponde a cada uno en la plan a eal.
Los colo es elegidos pa a indica el es ado de los pues os han sido el e de pa a un pues o
que se encuen a lib e, el colo ojo pa a se˜nala que el si io es ´a ocupado po o o es udian e,
el colo azul que indica que ese es el pues o que es ´a ocupando el usua io y el na anja pa a el
pues o que es ´a ocupando el usua io mien as ealiza un descanso.
A con inuaci´on, en la Figu a 57 amos a obse a las di e en es plan as, con pues os ocupa-
dos y lib es, pe o sin que el usua io ac ual haya ocupado ning´un si io.
(a) Plan a 1 (b) Plan a 2 (c) Plan a 3
Figu a 57: Vis a de las plan as de la Biblio eca FDI
79
En la Figu a 58 se obse a c´omo apa ece un pues o ocupado po un usua io y el mensaje en
el que se le no i ica que se ha ocupado co ec amen e.
Figu a 58: Usua io es udiando
80
Si el usua io, ealiza un descanso mien as iene un pues o ocupado, el colo de su pues o
cambia ´a de azul a na anja ( ´ease Figu a 59).
Figu a 59: Usua io descansando
La elecci´on de dichos colo es an dis in os iene el p op´osi o de que los usua ios di e encien
con acilidad los di e en es es ados, a la ez de ayuda en la medida de lo posible a aquellos
usua ios que puedan su i dal onismo.
El colo del ondo es un blanco lige amen e ojizo que combina con la pale a de colo es
u ilizada. El p op´osi o de que sea blanco es no dis ae la a enci´on del usua io y que oda su
a enci´on aya di igida a las mesas y pues os de las plan as.
Es des acable que exis en dis in os a chi os XML pa a cada una de las plan as, es ando di-
igido cada uno de ellos a las di e en es dimensiones de las pan allas de los disposi i os m´o iles.
Pa a cada ama˜no y esoluci´on se mues a la is a co espondien e, consiguiendo as´ı que no se
descuad en los si ios en dis in os disposi i os.
La implemen aci´on es simila en las 3 plan as. En cada una, los pues os son im´agenes cua-
d adas que se ag upan pa a o ma mesas y son en uel os po un bo ´on anspa en e que cub e
odos los si ios de una de e minada mesa. La in enci´on de es e bo ´on es e i a la di icul ad que
end ´ıa pulsa sob e un pues o de peque˜no ama˜no y que es ´a odeado po o os bo ones, pues
la imp ecisi´on en el oque se ´ıa al a. Pa a pulsa en un pues o se pulsa ´a sob e oda la mesa,
que se expandi ´a (iniciando la ac i idad Mesa) y pe mi i ´a selecciona de mane a mucho m´as
sencilla un pues o en conc e o.
81
do (en modo “OCUPANDO PUESTO”), y es o se i ´a m´as adelan e pa a pode es ablece el
iempo de descanso y pa a inse a una nue a ila en la abla his ´o ico de la base de da os del se -
ido . Po ´ul imo, se obse a un oas que dice que se ha podido ocupa el pues o co ec amen e.
Si el esul ado ob enido en el JSON no ha sido a o able, se mues a po pan alla cu´al ha
sido el causan e del e o , que se iden i ica po el alo en e o que con iene.
T as inaliza odo es e p oceso, se ol e ´a di ec amen e a la plan a en la que se encuen a
el pues o que se ha a ado de ocupa . Si ha sido posible se mos a ´a en azul, g acias al m´e odo
onResume implemen ado en cada una de las plan as. Si no ha sido as´ı, el pues o pe manece ´a
en el es ado en el que se encon aba.
7.2.8. Vacia pues o
Es a uncionalidad apa ece ´a en el men´u la e al una ez el usua io haya ocupado un pues o.
Pa a hace lo ha debido de pasa las es icciones como se ha is o en el cap´ı ulo an e io .
En caso de no habe ocupado un pues o, no se mos a ´a al usua io es a uncionalidad, ya que
se ´ıa un e o , po que no puede libe a un pues o que no posee. A con inuaci´on, en la Figu a
66, se puede e c´omo se mues a el men´u, sin habe ocupado un pues o.
Figu a 66: Men´u de And oid sin habe ocupado un pues o
88
Al ocupa un pues o, apa ece ´an au om´a icamen e en el men´u dos nue as opciones ( ´ease
Figu a 67), hace descanso ylibe a pues o. Es a secci´on se cen a en libe a pues o y la
desa olla ´a en p o undidad, la o a opci´on se e ´a en la secci´on siguien e.
Figu a 67: Men´u de And oid as ocupa un pues o
Pa a libe a un pues o, no solo se puede hace desde el men´u, si no que ambi´en es posible i
a la mesa en la que es amos ocupando el pues o y clica en el si io ocupado. En ese caso sald ´a
la misma ale a que si se hubiese dado a libe a pues o en el men´u. Se p egun a ´a si se desea
con i ma dicha ope aci´on, y se libe a ´a el pues o co ec amen e. Es e cuad o de con i maci´on,
que se puede e a con inuaci´on, es ´a implemen ado pa a con i ma con el usua io que es esa
ope aci´on la que quie e ealiza , ya que si desocupa el pues o pe de ´a su iempo acumulado pa a
descansa . Es po an o necesa io asegu a se ( ´ease Figu a 68) de que el usua io le ha dado a
p op´osi o y que quie e e mina su es udio.
89
Figu a 68: Mensaje de con i maci´on de libe a pues o
El icono del men´u pe enece a Ma e ial Design. Se dispone de la imagen en di e en es a-
ma˜nos, colo es y esoluciones, pa a que se pueda ajus a a los dis in os m´o iles. Al igual que en
el es o de aspec os de la in e az, odos los iconos de las unciones ienen la misma onalidad de
colo , pa a as´ı pode man ene una misma gama de colo y homogeneidad. Se ha p e endido que
el icono sea ep esen a i o y se asemeja a la opci´on de libe a , pa a ep esen a que el usua io
quie e abandona el pues o, haciendo que sea in ui i o con an solo con e el dibujo.
En cuan o a la implemen aci´on de dicha uncionalidad, se acopl´o una ila m´as en el men´u
del XML (se puede e en el a chi o ac i i y biblio eca diplan a1 d awe .xml).
Po o o lado, en cada Ja a en los que apa ece el lis ene de cada bo ´on del men´u, se a˜nadi´o
la uncionalidad de libe a pues o ( ´ease Figu a 69).
Figu a 69: F agmen o de c´odigo - Lis ene libe a pues o
90
Y pa a pode ocul a dicha unci´on se ha u ilizado la unci´on i emLibe a .se Checked( alse),
donde i emLibe a se e ie e al bo ´on de libe a pues o, y con es o se ocul a dicho apa ado del
men´u. Si el usua io de la sesi´on iene ocupado un pues o se habili a haciendo el opues o de
dicha unci´on (es deci , poni´endolo a ue). A con inuaci´on, en la Figu a 70, emos el c´odigo
que ealiza dicha unci´on.
Figu a 70: F agmen o de c´odigo - Habili a opciones
Una ez hayamos clicado en desocupa el pues o ha emos un in en al Ja a de Vacia Pues o.
En ´el, a pa i de la sesi´on del usua io, consegui emos el pues o que es ´a ocupando y el usua io
en cues i´on, la echa de inicio del es ado y el iempo que ha es ado es udiando. Con odo eso se
conec a con el PHP pa a, en p ime luga , elimina dicha ila de la abla ocupa y as´ı que se mues-
e desocupado el si io en el mapa, y pa a, pos e io men e, ac ualiza el his ´o ico y as´ı a˜nadi
nue a in o maci´on del iempo de es udio de dicho usua io a sus es ad´ıs icas pe sonales y globales.
Una ez hecho es o se einicia el es ado del usua io a “FUERA BIBLIOTECA”, has a que
consiga de nue o la ubicaci´on del usua io y comience de nue o el ciclo de es ados del usua io.
91
7.2.9. Hace descanso/Finaliza descanso
Ambas unciones apa ece ´an (una u o a), una ez el usua io haya ocupado un si io, como se
ha is o en el capi ulo an e io . Es ´a dise˜nada e implemen ada de la misma mane a que an es, es
deci , se ha a˜nadido a los XML una nue a ila en la que apa ece “Hace descanso” o “Finaliza
descanso”, cuando la sesi´on del usua io ma que un pues o ocupado. En caso de no ene pues o
no apa ece ´a dicha opci´on.
En la Figu a 66 de la secci´on an e io se puede obse a como no apa ece ninguna de es as
opciones si no se es ´a ocupando un pues o, mien as que en la Figu a 67 se e que as habe lo
ocupado, se ha a˜nadido la opci´on “Hace descanso”. En cambio, apa ece ´a la opci´on “Finaliza
descanso” si es ´a ealizando un descanso, como se ap ecia en la Figu a 71.
Figu a 71: Men´u con usua io descansando
En el caso de que se ocupase un pues o y se es ´e es udiando, si se lle a an unos 22 minu os
es udiando y se quisie a ealiza un descanso (pa a oma un ca ´e, po ejemplo), se le puede da a
esa opci´on del men´u. En ese momen o ( ´ease Figu a 72) sald ´a el iempo acumulado es udiando
(en es e caso 22 minu os que se puede desocupa el pues o sin pe de lo).
92
Figu a 72: Mensaje que a isa sob e iempo de descanso disponible
Au om´a icamen e, el pues o cambia ´a de azul a na anja, pa a indica que se es ´a descansan-
do.
93
Si se sob epasa es e iempo de descanso, se libe a ´a el pues o au om´a icamen e si el usua io
se encuen a ue a de la biblio eca, o ol e ´a a mos a se ocupado si se encuen a den o. Pe o
pa a que el usua io sepa cu´an o iempo le queda an es de que inalice su descanso, sald ´a una
no i icaci´on ( ´ease Figu a 73) 3 minu os an es de que acabe su iempo de descanso disponible
ad i i´endole de ello.
(a) No i icaci´on en la ba a de es ado (b) No i icaci´on lo an e
Figu a 73: Mensaje de 3 minu os es an es pa a in de descanso
94
Si se pulsa en “Finaliza descanso” an es de que es e e mine, se acumula ´a el iempo so-
b an e pa a el siguien e descanso y se le in o ma ´a de cu´al es ese iempo acumulado median e
un mensaje en la pan alla ( ´ease Figu a 74).
Figu a 74: Mensaje que a isa sob e iempo acumulado pa a el siguien e descanso
95
Se puede da la si uaci´on en la que el usua io se encuen e den o de la biblio eca ocupando
un pues o y sin hace un descanso ni libe a el pues o salga de ella. An e es o, se pasa di ec-
amen e su es ado a “DESCANSANDO” pa a que no pie da su si io, comenzando la cuen a
a ´as de su iempo de descanso disponible. Se le no i ica ´a es a si uaci´on y se le da la opci´on de
libe a su pues o, pa a e i a ene un pues o ocupado po nadie si su in enci´on es abandona
la biblio eca de ini i amen e ( ´ease Figu a 75).
(a) No i icaci´on en la ba a de es ado (b) No i icaci´on lo an e
Figu a 75: No i icaci´on ‘Has salido’
96
En el caso de que el usua io se encuen e descansando ue a de la biblio eca y se de ec e
que uel e a en a a ella ambi´en se lo no i ica ´a pa a que, si quie e ol e al es udio, inalice
el descanso y acumule de es a mane a el iempo de descanso que le ha sob ado ( ´ease Figu a 76).
(a) No i icaci´on en la ba a de es ado (b) No i icaci´on lo an e
Figu a 76: No i icaci´on ‘Has uel o’
En cuan o al dise˜no de es as dos nue as ilas del men´u, han sido implemen adas de igual
o ma que en la secci´on an e io , po lo que no se explica ´a de nue o.
En cuan o al Ja a, pa a pode desa olla odas las unciones, se ha implemen ado la cla-
se Descansa , la cu´al se ´a llamada una ez el usua io haya clicado en la unci´on de “Hace
descanso” o “Finaliza descanso”. Se ob end ´a el email del usua io de la sesi´on jun o al iempo
que ha es ado es udiando/descansando y comp oba emos su es ado pa a as´ı de e mina si an es
es aba es udiando y aho a quie e ealiza el descanso o po lo con a io, si es aba descansando
y aho a a a segui es udiando.
Se e ´a el p ime luga el caso en el que el usua io es ´a es udiando y quie e ealiza un
descanso. Su es ado cambia ´a a “DESCANSANDO”, se ac ualiza ´a su iempo de descanso acu-
mulado, que se ´a la di e encia del momen o ac ual con el momen o en el que inici´o el es udio,
y se inicia ´a una ala ma que sal a ´a 3 minu os an es de que e mine el descanso y lo ol e ´a a
hace cuando inalice o almen e. Es e hecho se puede ap ecia en la Figu a 77.
97
Figu a 84: Ho a io
En cuan o a la implemen aci´on es muy simila a es ad´ıs icas, ya que se es ablece una cone-
xi´on con la base de da os pa a ob ene el ho a io de la biblio eca.
Es a in o maci´on se en ´ıa a la clase Ho a io pa a que se mues e. Los cambios que se p o-
duzcan en la biblio eca po pa e del biblio eca io, an o de cambio en el nomb e de las plan as
como el ho a ios de ape u a o cie e, se e ´an e lejados ambi´en aqu´ı.
Al igual que en las secciones an e io es, se hace uso de abs o pes a˜nas pa a pode sepa a
los ho a ios de las di e en es plan as.
104
7.2.13. Modi ica con ase˜na
Si el usua io desea modi ica su con ase˜na pod ´a hace lo con es a uncionalidad. Es a un-
ci´on, jun o con Ce a sesi´on, pe enece a un apa ado del men´u la e al llamado pe il. Se ealiza
el mismo p oceso desc i o en las an e io es secciones pa a inco po a es a unci´on la men´u.
A con inuaci´on, en la Figu a 85 se mues a lo que e ´ıa el usua io al clica en dicho apa ado.
Figu a 85: Modi ica con ase˜na
105
Como se puede obse a , hab ´a es campos e e idos odos ellos a las con ase˜nas. P ime o
se debe esc ibi la con ase˜na ac ual del usua io pa a asegu a que no ha en ado alguien en la
aplicaci´on que no sea el p opio usua io y que quie a cambia su con ase˜na, pa a queda se ´el
con la cuen a. En caso de no se co ec a se ha ´a sabe al usua io ( ´ease Figu a 86).
Figu a 86: Modi ica con ase˜na - Con ase˜na inco ec a
106
A con inuaci´on se le pedi ´a que ing ese la nue a con ase˜na, la cu´al debe ´a ene una lon-
gi ud de 8 ca ac e es incluyendo le as y n´ume os (la misma condici´on que cuando un usua io
nue o se egis a). En caso de no cumpli con dicha es icci´on, se le ha ´a sabe al usua io con
la siguien e ale a ( ´ease Figu a 87).
Figu a 87: Modi ica con ase˜na - Con ase˜na no segu a
107
Si se cumplen es os equisi os adem´as de coincidi los dos campos en los que hay que in o-
duci la nue a con ase˜na, se modi ica ´a la con ase˜na. En o o caso, le apa ece ´a el mensaje de
la Figu a 88.
Figu a 88: Modi ica con ase˜na - Las con ase˜nas no coinciden
Como se obse a, se han comp obado odos los posibles casos de aude hacia la cuen a de un
usua io, comp obando que el usua io es ealmen e ´el an es de cambia su con ase˜na. Adem´as,
con la doble e i icaci´on de la nue a con ase˜na es pe ec amen e conscien e de cu´al es la nue a
con ase˜na a u iliza .
En cuan o a la l´ogica, se puede obse a en ’modi ica Con asenia.ja a’. Despu´es de conse-
gui las con ase˜nas, se comp ueba que las dos con ase˜nas nue as sean iguales y que espe an la
es icci´on de los 8 ca ac e es con n´ume os y le as. A con inuaci´on, se hashean pa a man ene
la p i acidad del usua io y e i a ulne abilidades. Se en ´ıan al PHP donde se comp ueba en
p ime luga que la con ase˜na a cambia coincide con la de la base de da os de ese usua io pa a,
pos e io men e, ac ualiza la ila de ese usua io cambiando su con ase˜na po la nue a.
Despu´es de ealiza es a unci´on, al ol e a inicia sesi´on, como es l´ogico, no se ´a ´alida la
con ase˜na que en´ıamos an e io men e, ´unicamen e la que se ha in oducido como nue a.
108
7.2.14. Ce a sesi´on
Es a unci´on se enca ga ´a de ce a la sesi´on ac ual. Adem´as, ambi´en pa a ´a la ala ma im-
plemen ada enca gada de man ene la conexi´on con la base de da os y el usua io y y se de end ´a
el se ice de ubicaci´on que de e mina la ubicaci´on del disposi i o. Una ez ce ada la sesi´on, se
edi igi ´a a la p´agina de Inicia sesi´on.
En es e caso, no se mos a ´a ninguna pan alla adicional pa a no sob eca ga al usua io, an
solo se mos a ´a un dialogo de ale a ( ´ease Figu a 89) pa a que el usua io es ´e con encido de
que quie e ce a su sesi´on.
Figu a 89: Di´alogo de ce a sesi´on
La implemen aci´on de es a unci´on es simple, ya que al llama a es a unci´on se elimina
la sesi´on ac i a de la base de da os SQLi e y se de ienen las ala mas ac uales. Adem´as, si el
usua io en´ıa un pues o ocupado, se libe a ´a el pues o llamando a Vacia Pues o. En la Figu a 90
se puede e un agmen o de c´odigo donde se ealiza la des ucci´on de la sesi´on y la de enci´on
de las ala mas.
109
Figu a 90: F agmen o de c´odigo - Ce a sesi´on
7.2.15. Ay´udanos a mejo a
Como unci´on ex a pa a la aplicaci´on, se ha ealizado un o mula io de Google con el que
se p e ende consegui un eedback di ec o de los des ina a ios inales de la aplicaci´on. En ´el
se pueden encon a p egun as como “¿En iendes bien qu´e es Biblio eko y pa a qu´e si e?”,
“¿Qu´e e pa ece que haya un iempo de descanso m´aximo de 30 minu os?” o “¿U iliza ´ıas es a
aplicaci´on?” en e o as.
Es a unci´on se encuen a en el men´u la e al de la aplicaci´on, den o de una secci´on llamada
Suge encias. Al clica en dicho apa ado apa ece un peque˜no ex o en el que se explica qui´en
ha desa ollado la aplicaci´on y se pide a los usua ios que ellenen el o mula io al que se puede
accede pulsando en la imagen que apa ece bajo el ex o ( ´ease Figu a 91).
Figu a 91: Fo mula io ay´udanos
110
Las espues as ecibidas po los usua ios se ´an analizadas en el siguien e cap´ı ulo y en el
apa ado de conclusiones. Se es udia ´an las posibles co ecciones p opues as po los mismos y
se p opond ´an las co espondien es soluciones a pa i de las necesidades de los usua ios.
7.2.16. Se ice Ubicaci´on
Uno de los pla os ue es de la aplicaci´on es el uso de la ubicaci´on GPS del disposi i o pa a
ubica al usua io en el in e io o ex e io del ecin o de las biblio ecas. Como ya se explic´o, la
in enci´on de es e p oyec o es ges iona la ocupaci´on de los pues os de es udio de la biblio eca,
de mane a que un pues o solamen e apa ezca ocupado si ealmen e el usua io se encuen a en
´el, a excepci´on del iempo en el que se le pe mi e es a ue a descansando. El obje i o de es a
condici´on es que no haya pues os desocupados, odo pues o en el que no haya alguien sen ado
debe apa ece como lib e en la aplicaci´on, op imizando as´ı la ocupaci´on de las biblio ecas y su
ap o echamien o po pa e de los es udian es.
Es o supone un g an e o, ya que es necesa io sabe d´onde se encuen a el usua io de la
app en cada momen o. Y pa a es o se hace uso de la se˜nal GPS que p ´ac icamen e odos los
disposi i os And oid inco po an y que an as posibilidades de explo aci´on iene.
La in enci´on inicial e a que la aplicaci´on pudie a de ec a ´unicamen e con la se˜nal GPS en
qu´e pues o de la biblio eca se encon aba el usua io. R´apidamen e se u o que desecha es a idea
al comp oba que, a pesa de lo mucho que ha a anzado es a ecnolog´ıa en los ´ul imos a˜nos, la
imp ecisi´on de es e m´e odo e a, pa a es e p op´osi o, emendamen e ele ada.
Se ba aja on o as posibilidades y as a ias p opues as, la opci´on que pa ec´ıa id´onea pa a
soluciona el p oblema ue la que de ini i amen e ha quedado implemen ada. La aplicaci´on de-
ec a cu´ando ha habido un cambio en la ubicaci´on del disposi i o y comp ueba, cada ez que
es o ocu e, si se encuen a en el in e io o en el ex e io de alguna de las biblio ecas imple-
men adas. La soluci´on pa a sabe qu´e pues o es ´a ocupando o quie e ocupa el usua io no es
an au oma izada como se p e end´ıa, pe o es al amen e e ec i a. Cuando un es udian e quie a
ocupa un pues o, debe ab i la aplicaci´on e indica manualmen e cu´al es el pues o exac o en el
que se sen a ´a, y se p ocede ´a a ealiza la acci´on al y como se explica en las secciones Mesa y
Ocupa Pues o.
Es e es, en de alle, el p oceso pa a ob ene la ubicaci´on del disposi i o.
An es de nada, y aco de con el sis ema de segu idad que implemen a And oid en odos sus
disposi i os, es imp escindible que el usua io acep e los pe misos de ubicaci´on de la aplicaci´on.
Es o au o iza ´a a la app a accede a la ubicaci´on del disposi i o. Sin es e pe miso, la aplicaci´on
no pod ´a unciona co ec amen e.
La ubicaci´on se conoce g acias a la ejecuci´on inin e umpida de un se ice. En And oid, un
se ice es un componen e sin in e az g ´a ica que se ejecu a en segundo plano y puede hace
odo ipo de ope aciones. La app lo u iliza como m´e odo de a amien o de los cambios en la
ubicaci´on del disposi i o. Se lanza es e se ice en el momen o en el que el usua io inicia sesi´on y
selecciona una biblio eca. Desde en onces, se ejecu a en segundo plano y se con ola que nunca se
de enga, o que si lo hace, sea au om´a icamen e lanzado de nue o sin ene que ealiza ninguna
acci´on, independien emen e de que la aplicaci´on es ´e abie a o ce ada. Incluso si el disposi i o se
apaga a, al ol e se a encende se inicia ´ıa de nue o po s´ı solo. De es e modo, aunque el usua io
einicie su disposi i o y no uel a a ab i la app se pod ´a segui comp obando si se encuen a
den o o ue a de la biblio eca. Cabe des aca que la ubicaci´on an solo queda almacenada en
la base de da os SQLi e inco po ada en el disposi i o, en ning´un caso se almacena en el se i-
111
do ni exis e o ma de sabe cu´al es la ubicaci´on de un usua io, odo queda ges ionado localmen e.
Es e se ice es el que se enca ga de ges iona el ciclo de es ados del usua io, adem´as de las
clases Ocupa Pues o, Vacia Pues o, Descansa , Ce a Sesion, Ala ma y Ala maEs oyVi o. Los
posibles es ados que puede adop a un usua io son los siguien es: “FUERA BIBLIOTECA”,
que indica que no se encuen a en niguna biblio eca, “DENTRO”, el usua io es ´a den o de una
biblio eca pe o sin ocupa ning´un pues o (´unicamen e se comp ueba la Biblio eca de la Facul-
ad de In o m´a ica po se , de momen o, la ´unica implemen ada), “OCUPANDO PUESTO”, el
usua io iene un pues o ocupado, y “DESCANSANDO”, iene un pues o ocupado pe o es ´a en
su iempo de descanso.
Al c ea el se ice, se inicializa un obje o de la clase Polygon (una clase Ja a que jun o a las
clases Line y Poin , odas de c´odigo abie o y licencia lib e, con o man el algo i mo PIP[19] que
pe mi e sabe si un pun o es ´a con enido en un pol´ıgono) con las coo denadas de la biblio eca
de la acul ad, que se ´a el que pe mi a sabe si el usua io se encuen a den o o ue a de la misma.
Tambi´en en su c eaci´on se es ablece un lis ene de la ubicaci´on del disposi i o que el sis ema
And oid p opo ciona, y en el m´e odo onLoca ionChanged, el p incipal de es a clase, es donde se
ges iona el es ado en unci´on de la nue a ubicaci´on. T as a ias comp obaciones, se ha de ec ado
que la p ecisi´on con la que el disposi i o cap a nue as ubicaciones puede se ex emadamen e
a iada, del o den de 15 has a 700, y an solo las que en´ıan una p ecisi´on in e io a 20 locali-
zaban el disposi i o con la exac i ud necesa ia, de modo que son solo es as las que se acep an
c´omo ´alidas.
Una ez se pe cibe una ubicaci´on lo su icien emen e p ecisa, se ac ualiza la base de da os
local con la ubicaci´on ecibida m´as ecien emen e y se comp ueba si la misma se encuen a
con enida en el pol´ıgono que se c e´o an e io men e.
Si lo es ´a, se ealizan una se ie de comp obaciones pa a ac ualiza , si uese necesa io, el
es ado del usua io, adem´as de o as acciones complemen a ias. En el caso de que el es ado del
usua io uese “FUERA BIBLIOTECA”, se ac ualiza el es ado a “DENTRO” y se lanza una
no i icaci´on ( ´ease Figu a 92) en la que se le sugie e que si a a ocupa un pues o lo indique
en la app. El o o caso a ene en cuen a en es a si uaci´on es cuando es aba descansando y su
an e io ubicaci´on e a ue a de la biblio eca (lo que se consigue sabe comp obando si la ´ul ima
ubicaci´on que conoc´ıamos es ´a o no den o del pol´ıgono). Si es o ocu e, es aba descansando
ue a y en a en la biblio eca, se le mues a o a no i icaci´on ( ´ease Figu a 93) en la que se le
in i a a inaliza su descanso pa a que acumule el iempo que le sob a, si es que ealmen e desea
inaliza lo, aunque es o no se hace au om´a icamen e.
112
(a) No i icaci´on en la ba a de es ado (b) No i icaci´on lo an e
Figu a 92: No i icaci´on al en a en la biblio eca
(a) No i icaci´on en la ba a de es ado (b) No i icaci´on lo an e
Figu a 93: No i icaci´on al ol e del descanso
113
Como se puede ap ecia , lo p ime o que hace es inse a en un pues o empo al llamado
TGlobalXXX donde XXX son las siglas de la biblio eca la suma o al del iempo que ha es ado
es udiando o descansando ese usua io ag upado po a˜nos. Es impo an e ene en cuen a que
solo se an a ag upa da os an e io es al a˜no, pues se conside a impo an e conoce al de alle
los momen os de es udio del ´ul imo a˜no. Una ez hecho es o, se bo an los da os de los pues-
os XXXglobal, pues o que ya es ´an incluidos esos da os en el pues o empo al TGlobalXXX.
T as es o, se eliminan odos los egis os an e io es al a˜no que sean di e en es de TGlobalXXX
pa a as´ı ealiza la limpieza p opiamen e dicha de los pues os ocupados. Una ez hecho es o,
se inse an los da os de los pues os TGlobalXXX en XXXglobal, poniendo como echa el d´ıa 1
de ene o de cada a˜no, a las 00:00:00 si se co esponde con descansando y a las 00:00:01 si se
co esponde con es udiando. Po ´ul imo, bo amos los pues os TGlobal pues o que, como ya se
ha mencionado, se a a de un pues o empo al.
En cuan o al o o ipo de CRON implemen ado, iene la misi´on de ges iona la conexi´on
en e la aplicaci´on y la base de da os. Con es o se asegu a que no se ha pe dido la conexi´on. Po
ejemplo, si el usua io de la aplicaci´on m´o il ha ese ado un pues o de es udio, y a con inuaci´on
apaga el m´o il, se deja de ene con ac o con ´el y no se pod ´ıa libe a su pues o.
Es e ue uno de los p oblemas que su gie on sob e c´omo ges iona las conexiones con el usua-
io y e si es aba con el m´o il encendido, y que se consigui´o esol e inalmen e g acias a dicho
m´e odo. En un p incipio no ue la opci´on que se plan e´o pa a esol e lo. An es de ella, se es u o
pensando en c´omo hace lo y, as in es iga , imos que al ez se pod´ıa hace con Fi ebase.
Sin emba go, as p oba e in es iga un poco con odas las opciones que hab´ıa disponibles, se
obse ´o que no e a exac amen e lo que se buscaba.
T as segui du an e un pa de d´ıas d´andole uel as a c´omo esol e lo, un d´ıa su gi´o la eliz
idea de que ue a el se ido el enca gado de comp oba y ges iona pe i´odicamen e las cone-
xiones con los di e en es disposi i os ac i os. Pa a ello, una ez el usua io inicie sesi´on, en ia ´a
un mensaje al se ido que almacena ´a a ese usua io como ’ i o’ en una abla jun o a la ´ul ima
ez que le ha llegado una p ueba de disposi i o i o. Una ez ocupado el pues o y cada 15
minu os, siemp e que la ubicaci´on pe manezca ac i ada, el disposi i o ol e ´a a manda una
nue a p ueba de ida. Pa alelamen e, cada 5 minu os se p oduce la ejecuci´on de un CRON Job
que e i ica si los disposi i os p esen es en la abla usua iosAc i os cumplen la condici´on de
es a i os (es o es que su ´ul ima in o maci´on ecibida haya sido ecibida hace como mucho 20
minu os). De no es a i os, el PHP ac ´ua en consecuencia libe ando el pues o.
As´ı se asegu a que si al usua io se le ha acabado la ba e ´ıa del m´o il y en´ıa un si io e-
se ado pe o se a a i de la biblio eca, si no se uel e a ene espues a de dicho es udian e,
se desocupa el si io en es e pe iodo de iempo. Con es o se consigue que los si ios que es ´an
ocupados en la biblio eca sean eales, y, en segundo luga , que si alg´un es udian e quie e hace
ampas, ocupando inde inidamen e un si io en la biblio eca, se elimine es a posibilidad.
120
En cuan o a la implemen aci´on, se basa en un c´odigo PHP, que se puede obse a en la
Figu a 102.
Figu a 102: PHP lanzado po el CRON Job que ges iona las conexiones i as
Y que se puede aduci a ni el usua io, como: en p ime luga selecciona el email de odos
los usua iosAc i os cuya ´ul ima in o maci´on es de hace m´as de 20 minu os y es ablece aquellos
si ios de la abla pues os que es ´en ocupados po esos usua ios a 0 (si ios desocupados). Adem´as,
se bo an odos los usua ios de los que no hemos ecibido in o maci´on en los ´ul imos 20 minu os
de la abla ocupa y po ´ul imo se eliminan ambi´en de la abla usua iosAc i os.
G acias a es e se ido se ha podido implemen a es a uncionalidad, la cu´al en el an e io
g a ui o no se dispon´ıa de al posibilidad y que ha apo ado al p oyec o un con ol sob e la
aplicaci´on.
O a g an uncionalidad que ha p opiciado el hecho de mig a a un se ido de pago ha
sido la posibilidad de pode manda co eos au om´a icamen e. P ´ac icamen e, desde el p ime
momen o se io necesa io que los usua ios e i ica an sus co eos pa a e i a que cualquie a se
pudie a egis a en la app incluso con un co eo inexis en e.
Se es u o pensando c´omo consegui es o y buscando ideas pa a log a lo. Un buen d´ıa, as
inaliza una de las clases su gi´o la soluci´on que hemos implemen ado inalmen e. En p ime
luga , se deb´ıa a˜nadi un campo a la abla usua ios, un campo booleano ac i ado que nos pe -
mi iese sabe si ese usua io hab´ıa sido ac i ado o no pa a pe mi i le o nega le el acceso a la
aplicaci´on. Adem´as, se c e´o o a abla, usua ios emp, en la cual se almacena el email de cada
usua io que se egis a y su email hasheado.
Una ez hecho es o, se gene a un email que se manda al usua io que se acaba de egis a en
el cual se encuen a un enlace con el emailHasheado pa a que ac i e su usua io. Si al accede al
enlace, el emailHasheado coincide con uno de los emailHasheados de la abla usua ios emp, se
p oduce la ac i aci´on que del email que co esponde a dicho emailHasheado en la abla usua ios
y se elimina la en ada de usua iosTemp. Todo es o se ealiza en el PHP que se puede obse a
en la Figu a 103.
121
Figu a 103: PHP que ac i a un usua io de e minado
T as es o, se consigui´o soluciona el p oblema de c´omo ac i a los usua ios. Aho a bien, que-
daba el hecho de que el co eo se en iase au om´a icamen e. Pa a ello, se encon ´o inalmen e
una clase PHP, PHPMaile , en in e ne que pe mi ´ıa gene a los co eos en el mismo momen o
en el que el usua io se egis aba. Se desca g´o la clase, se con igu ´o y se p ob´o, y uncionaba a
la pe ecci´on.
El p oblema lleg´o al hace la mig aci´on al se ido g a ui o. Se encon ´o el p oblema de que
los pue os pa a el en ´ıo de co eos es aban capados y, a pesa de ealiza se la inse ci´on del
usua io co ec amen e en las dos ablas, el co eo no se en iaba. Se consul ´o de nue o con el
equipo de sopo e e indica on que al a a se de un se ido g a ui o no es aba pe mi ido el
en ´ıo masi o y au om´a ico de co eos. As´ı pues, as ba aja a ias opciones se decidi´o pasa al
ac ual se ido , con el cual se ol i´o a ecupe a la uncionalidad de en ia co eos.
La o a base de da os u ilizada ha sido una base de da os in e na SQLi e que gua da ´a los
da os ela i os al p opie a io de la aplicaci´on.
Se u o que in es iga sob e como c ea una base de da os in e na y de como man ene la
sesi´on de un usua io a lo la go del uso de la aplicaci´on.
Se descub i´o que hay muchas a iaciones pa a gua da la in o maci´on, como a je as SD,
iche os, e c. Se ha p e e ido gua da la in o maci´on en una base de da os, pa a pode p ese a
la p i acidad del usua io, en e o os aspec os.
Como se puede e en la implemen aci´on, pa a pode abaja con SQLi e en And oid S udio
se ha c eado una ca pe a llamada SQli e, con dos clases Ja a:
SQLi eHelpe : clase u ilizada pa a ges iona la base de da os, en la que se c ea la base
de da os in e na (sesion).
Usada en su ape u a y cie e, as´ı como pa a acili a su ges i´on en el ciclo de ida de las
ac i idades.
U iliza ´a los siguien es m´e odos: onC ea e yonUpg ade, u ilizados pa a la c eaci´on y
la des ucci´on de la sesi´on ac i a en ese momen o.
122
Con ol Sesion: u ilizada pa a c ea la sesi´on. Es a clase se llama ´a en la p´agina p inci-
pal, una ez que el usua io haya iniciado la sesi´on.
Tend ´a m´e odos como c ea Usua io que c ea ´a una sesi´on a pa i del nomb e, es ado,
la ubicaci´on... Y m´e odos pa a selecciona , a˜nadi , ac ualiza o inse a un usua io selec-
Sesion, inse a Sesion, upda eSesion, bo a Sesion. A con inuaci´on, en la Figu a
104 se puede e un agmen o de c´odigo de ejemplo de como se inse a una sesi´on:
Figu a 104: F agmen o de c´odigo que inse a una sesi´on en SQLi e
Pa a inaliza es a secci´on, se a a habla de la implicaci´on en las edes sociales sob e la
aplicaci´on.
Se ha c eado un usua io en Ins ag am, Twi e , y Facebook, con la misi´on de da a conoce
el p oyec o a ni el de la acul ad y de la Uni e sidad Complu ense de Mad id, pa a incen i a
a la gen e a que p uebe la aplicaci´on, y que as´ı si a de ayuda pa a mejo a la y co egi la de
allos o unciones/dise˜no que puedan no gus a . Cabe eco da que la misi´on p incipal al inicia
es e p oyec o e a que la gen e lo pudie a usa en la biblio eca, po lo que hab´ıa que asegu a se
de su co ec o uncionamien o.
123
8. E aluaci´on de usua ios y p uebas
Cuando se comenz´o la ealizaci´on de es e p oyec o, el obje i o e a llega a ene inalizada la
app pa a el 11 de mayo pa a que as´ı es u ie a disponible pa a los ex´amenes y pode consegui
el eedback de los es udian es. Sin emba go, el eedback de los usua ios no solo se ha ob enido
as inaliza la aplicaci´on, si no que ha es ado p esen e en a ias ases, que son las siguien es.
8.1. Inicio del p oyec o
En un inicio, se con ´o con la opini´on de de una de las biblio eca ias de la acul ad pa a
la e si´on web, pues o que es m´as ele an e su opini´on en es e caso que la de es udian es que
ni siquie a an a ene acceso a la p´agina web. As´ı pues, los p incipales aspec os que ue on
mencionados po ella son que deb´ıa a a se de una web sencilla y muy in ui i a pa a que odas
las biblio eca ias pudie an adap a se ´apidamen e a la u ilizaci´on de la misma. Adem´as, des ac´o
que se ´ıa muy ´u il que es u ie an p esen es unciones como pode es ablece el ho a io, pa a
e i a ene que pone un ca el a mano en el que se e lejase el ho a io.
Pa a la e si´on m´o il, se op ´o po ense˜na un p o o ipo de la aplicaci´on y e c´omo e a el
compo amien o de los es udian es con ella. T as e sus eacciones y escucha sus opiniones, se
p ocedi´o a modi ica algunos aspec os del p o o ipo inicial. Una de los aspec os modi icados as
es a p ueba inicial ue el hecho de implemen a la posibilidad de libe a el pues o an o desde el
mismo pues o como desde una nue a opci´on incluida en el men´u desplegable si exis ´ıa un pues o
ya seleccionado. O o aspec o c i icado po los usua ios en es e p o o ipo y cuyo cambio se ha
is o e lejado en la e si´on inal ha sido el colo del ondo. G an n´ume o de los encues ados
esal a on que el colo azul e a demasiado in enso. Es po ello que en la e si´on inal se ha
es ablecido un colo blanco lige amen e ojizo, pa a no desen ona con la pale a de colo es de
la UCM.
8.2. Du an e el p oyec o
T as la ealizaci´on de la p ime a i e aci´on de la aplicaci´on m´o il, se p ocedi´o a la ealizaci´on
de la e aluaci´on de los usua ios. En dicha e aluaci´on no se p odujo ninguna c ´ı ica ese˜nable
po lo que se p ocedi´o a con inua con la segunda i e aci´on.
En la e ce a e aluaci´on ealizada a los usua ios as la segunda i e aci´on s´ı que se ob u-
ie on esul ados ele an es. De igual modo que en la p ime a e aluaci´on, los colo es u ilizados
pa a ep esen a los pues os lib es y ocupados no ue on del ag ado de los es udian es, quienes
c i ica on el hecho de que ue an demasiado llama i os pa a el ojo humano. As´ı pues, inalmen e
se decidi´o implemen a con unos colo es de los p opues os po Ma e ial Design, p esen es en
mul i ud de aplicaciones desa olladas en And oid.
8.3. T as el p oyec o
Uno de los p incipales e o es m´as epo ados po los usua ios as habe publicado la apli-
caci´on en Google Play ue el hecho de que, en las p ime as e siones, la app se bloqueaba y
se ce aba con inuamen e. Una ez le´ıdos los in o mes de Google Play Console, se consigui´o
es ablece un pa ´on com´un en odos los m´o iles a ec ados po es e allo. Se a aba de un e o
que a ec aba a m´o iles que no dispon´ıan de And oid pu o, con capas de pe sonalizaci´on como
las de Xiaomi, Samsung o LG.
124
Es e e o ue solucionado as un pe ´ıodo de in es igaci´on sob e posibles soluciones y se pu-
blic´o la nue a e si´on ac ualizada en Google Play que sol en aba la p oblem´a ica. La soluci´on im-
plemen ada consis e en a˜nadi in en P oblema ico.addFlags(In en .FLAG ACTIVITY NEW TASK
an es de lanza de e minados ’in en ’. En la Figu a 105 se puede obse a , como se ha ido edu-
ciendo el n´ume o de bloqueos de la aplicaci´on a medida que han ido pasando los d´ıas y nue as
e siones que sol en aban bugs iban siendo ac ualizadas en Google Play. Es po an o que la
aplicaci´on m´o il ha sido es eada en casi odo ipo de m´o iles, con di e en es e siones (desde
5.0 a 8.1), y di e en es ama˜nos y esoluciones de pan alla.
Figu a 105: G ´a ica que mues a el n´ume o de bloqueos dia ios de la app
O o de los aspec os que se ha podido pe ecciona en la app as lanza la al me cado y
pone la al se icio de los es udian es ha sido el hecho de de e mina co ec amen e si un usua io
es ´a den o de la biblio eca o no. T as obse a que la abla ocupa daba in o maci´on de un pues o
ocupado po un usua io a unas ho as en las que e a imposible que lo es u ie a se de e min´o que
exis ´ıa un p oblema en el caso de desac i a la ubicaci´on una ez el pues o hab´ıa sido ocupado.
En ese caso, el pues o quedaba ocupado sin impo a si el usua io abandonaba la biblio eca o
no has a que se ac i ase la ubicaci´on.
Se a aba de un allo muy g a e que pe mi ´ıa a los es udian es descansa ilimi adamen e. Es
po ello que ue sol en ado ´apidamen e, a˜nadiendo una condici´on nue a a la ala maEs oyVi o.
La nue a condici´on implemen ada consis e en que el usua io debe ene la ubicaci´on ac i ada
pa a que se p oduzca el en ´ıo de dicha se˜nal. En caso con a io, el pues o del usua io es libe ado.
Exis en disponibles a ias ´ıas de comunicaci´on pa a que los usua ios se pongan en con ac o
con los desa ollado es del p oyec o. Tales ´ıas son cualquie a de los pe iles del p oyec o en
edes sociales (Twi e , Ins ag am y Facebook) las cuales son ac ualizadas dia iamen e, co eo
elec ´onico y, po supues o, el boca a boca. Adem´as, exis e un cues iona io [20] del que ya se
ha hablado p e iamen e disponible en la app pa a que los usua ios dejen su opini´on. Has a la
125
echa de hoy se han egis ado 31 espues as, las cu´ales se anexa ´an a con inuaci´on.
Figu a 106: P egun a : ¿En iendes bien qu´e es Biblio eko y pa a qu´e si e?
Como se puede ap ecia en la Figu a 106, m´as del 80 % de los encues ados en ienden qu´e es
Biblio eko y pa a qu´e si e, en e al 19’4 % que dice no en ende lo. Se a a de una p egun a
cla e pa a el inicio y el n´ume o de desca gas y desins alaciones de la aplicaci´on, pues o que de
se es e n´ume o muy ele ado, la aplicaci´on no pe manece ´a en los disposi i os de los usua ios,
ya que desconocen su uncionamien o.
Figu a 107: P egun a : ¿Recue das alg´un momen o en el que e hubiese sido ´u il conoce la
ocupaci´on ac ual de la biblio eca?
126
En la Figu a 107 se puede obse a que, an solo algo menos del 13 % de los es udian es
a i man no habe necesi ado nunca conoce la ocupaci´on en un de e minado ins an e. Es po
ello que se puede de e mina que Biblio eko iene a ocupa un g an hueco exis en e en lo que a
ges i´on de pues os de biblio ecas se e ie e, ya que se a a de algo que hubie a sido ´u il pa a la
mayo ´ıa de los es udian es en alg´un momen o de sus idas.
Figu a 108: P egun a : ¿Cu´ando c ees que se ´ıa ´u il sabe qu´e pues os es ´an lib es?
En la Figu a 108 exis e p ´ac icamen e un 85 % de los encues ados que conside a que s´ı que
se ´ıa ´u il conoce la disponibilidad de pues os de la biblio eca, en e a poco m´as de un 15 %
que no lo conside a necesa io. Del 85 % que s´ı lo conside an, casi un 58 % conside a que se ´ıa
´u il siemp e mien as que el 42 % lo e ´ıa ´u il p incipalmen e en ´epoca de ex´amenes, cuando las
biblio ecas p esen an mayo a luencia.
Figu a 109: P egun a : ¿Qu´e e pa ece que haya un iempo de descanso m´aximo de 30 minu os?
127
No a acla a o ia con espec o a la Figu a 109: T as la publicaci´on del cues iona io, se ad i i´o
de la exis encia de una e a a, po lo que se subsan´o y hay que menciona que la opci´on mo ada
y la na anja son la misma. An e es a p egun a, poco mas del 15 % de los encues ados conside an
que el iempo de descanso debe ´ıa se lib e, en e al 67’7 % que piensan que 30 minu os es ´a
genial. Adem´as, hay un 9’7 % que lo conside a insu icien e y un 6’5 % al que le pa ece demasiado.
Figu a 110: P egun a : ¿Tienes cla o cu´ales son las unciones de Biblio eko?
En la Figu a 110 se puede obse a como una ab umado a mayo ´ıa, supe io al 80 % dice
ene cla as las unciones de la aplicaci´on. Algo m´as del 9 % dice no ene cla o qu´e es lo que
puede hace ni c´omo hace lo mien as que es la misma can idad de encues ados la que es m´as
ajan e y a i ma no sabe lo qu´e puede hace y lo qu´e no.
Figu a 111: P egun a : ¿Te esul a ´acil u iliza la app?
En la Figu a 111 se obse a que a casi el 85 % de los encues ados le esul a ´acil u iliza la
app. De odos ellos, p ´ac icamen e un 85 % la encuen an simple de usa mien as que el 15 %
es an e conside a que pod ´ıa se m´as cla a. Po o a pa e, exis en un 9’7 % de los encues ados
a los que no les pa ece del odo sencilla y an solo un 6’4 % a los que les pa ece complicada.
128
Figu a 112: P egun a : ¿Has encon ado alg´un allo en la aplicaci´on?
En la Figu a 112 se ap ecia que an solo un usua io ha epo ado un e o , en es e caso
una suge encia. Inicialmen e no se desa oll´o la uncionalidad Ce a sesi´on pa a e i a que a
a ´es de un mismo disposi i o se pudie a inicia sesi´on en a ias cuen as y ocupa m´as de un
pues o, pe o es e p oblema de segu idad se subsan´o con la implan aci´on de la Ala ma Es oy
Vi o y su co espondien e CRON de conexiones i as explicados an e io men e, po lo que es o
ya no supon´ıa ning´un iesgo pa a el uso de la aplicaci´on. Po lo an o, se conside ´o muy ´u il es-
a espues a y se inco po ´o la ci ada uncionalidad g acias a la apo aci´on de uno de los usua ios.
Figu a 113: P egun a : ¿Conside as ´u il es a aplicaci´on?
La Figu a 113 supone un g an impulso pa a la aplicaci´on ya que en ella se puede ap ecia
como casi el 85 % de los encues ados conside an ´u il es a aplicaci´on. De ellos, m´as del 88 %
conside an que la aplicaci´on acili a sus d´ıas de es udio mien as que el es o conside an que es
´u il en algunas ocasiones. Son an solo poco m´as del 15 % de los encues ados los que no en
ninguna en aja en la aplicaci´on.
129
Despu´es de ene expe iencia en la p og amaci´on en es os disposi i os m´o iles, comenzamos
los es miemb os del g upo a la ealizaci´on de inicia sesi´on y egis ase. T abaj´abamos en
pa alelo los es, in es igando y desa ollando dicha pagina. G acias a los apo es de odos los
miemb os conseguimos ealiza es as p´aginas y as es o eunimos mucha expe iencia.
A con inuaci´on, en´ıamos que elegi en e ealiza las p´aginas de es ad´ıs icas, buz´on de su-
ge encias,u ho a ios que o ec´ıan una meno di icul ad, o comenza con la p´agina de plan as ya
que e a la p´agina m´as impo an e del p oyec o.
Elegimos comenza con la p´agina de plan as, que a pesa de su di icul ad, al no ene dema-
siada expe iencia, nos impo an e comenza con es a pa e po si acaso no hubi´e amos enido
iempo su icien e de ealiza las dem´as p´aginas.
Pa a comenza a desa olla dicha pan alla, p ime o ealizamos una euni´on los es miem-
b os jun o con el di ec o , pa a pode pensa como pod ´ıamos implemen a el dise˜no de las
mesas y los pues os de la biblio eca. Apo e al igual que el es o de mis compa˜ne os ideas de
como ealiza lo. Has a que se nos ocu i´o ealiza lo con bo ones, cada pues o de es udio.
Fue on muchas euniones las que hicimos los es miemb os pa a pode ealiza dicha pan-
alla, has a que conseguimos ealiza la abajando an o los es jun os p esenciales, como cada
uno en pa alelo.
A con inuaci´on u imos que pensa como pode conoce la ubicaci´on de un usua io cada
cie o pe iodo de iempo, pa a de e mina si se haya o no en la biblio eca. Pa a ello ealizamos
a ias euniones con el di ec o y as a ios apo es an o mio, como del es o de los miemb os
u imos la idea de u iliza un Se ice, pa a ob ene la cada cie o iempo. Es a ue el pe iodo
m´as cos oso y en la que nos encon ´abamos mas pe didos a la ho a de sabe como soluciona lo,
pe o g acias a esa idea pudimos sol en a la.
Un ez e minamos la p´agina de las pan allas, nos di idimos las unciones que quedaban, y
que pa a segui el o den no mal que hab´ıamos lle ado en la aplicaci´on web, me asign´e el buz´on
de suge encias de la aplicaci´on m´o il.
El p oceso ue el mismo, p ime o me cen ´e en el dise˜no an o del buz´on de en ada como
de en ia mensajes, una ez e mine de implemen a dicho dise˜no, hicimos una euni´on pa a
habla posibles modi icaciones en cuan o a colo es, es ilos... T as cambia dichos aspec os, im-
plemen ´e la l´ogica del buz´on de suge encias como ue on el desa ollo de los e en os, inse ci´on
ac ualizaci´on en la base de da os, en e o as unciones.
T as acaba es a unci´on jun amos las unciones que nos hab´ıamos asignado y ealic´e jun o
con el es o de mis compa˜ne os, las peque˜nas unciones que quedaban como po ejemplo, modi-
ica con ase˜na o ce a sesi´on.
Cuando acabamos odas las unciones lanzamos a Play S o e pa a que la aplicaci´on uese
p obada y co egimos los peque˜nos e o es que hab´ıa.
Po ´ul imo he colabo ad como el es o del g upo, en la ealizaci´on de la memo ia, asign´ando-
nos di e en es cap´ı ulos, y luego leyendo y modi icando las edacciones de quien lo hab´ıa hecho
desde un p ime momen o. Po lo que cada cap´ı ulo que apa ece ha sido hecho y le´ıdo po los
es in eg an es del g upo.
136
9.4.2. Da id Go icho San Juan
Al igual que el es o de mis compa˜ne os, he colabo ado en muchas pa es del p oyec o, in-
es igando en mul i ud de ecnolog´ıas, y apo ando, al igual que el es o de los in eg an es del
g upo, el m´aximo endimien o posible.
Cuando comenzamos el p oyec o, po el mes de oc ub e, lo p ime o que hicimos ue plan-
ea c´omo desa olla el ema que desde el p ime momen o p opusimos. Nos sen amos los es
jun o a nues o di ec o y, pa iendo desde la idea inicial que en´ıamos, pensamos en qu´e cosas
se pod´ıan implemen a ´acilmen e y que sab´ıamos c´omo desa olla las, y cu´ales e an las que
e´ıamos que pod´ıamos desa olla pe o que pa a ello debe ´ıamos ap ende nue as ecnolog´ıas y
ecu so.
Una ez u imos la idea de c´omo que ´ıamos desa olla el p oyec o, qu´e unciones ex a iban
a apa ece y c´omo iba a se mos ado al usua io, nos dispusimos a ealiza los boce os co es-
pondien es de las di e en es pan allas y uncionalidades que hab ´ıa en las aplicaciones.
T as ene ealizados an o yo como mis compa˜ne os del g upo los boce os epa idos en
bloques, los pasamos a o ma o digi al median e un p og ama de gene aci´on de boce os. A me-
dida que una nue a pan alla e a ealizada, aco d´abamos una nue a euni´on pa a es a odos de
acue do en c´omo hab´ıa quedado inalmen e desa ollada dicha pan alla y qu´e unciones y c´omo
hab´ıan sido implemen adas.
Una ez inalizado el abajo an e io me dispuse a ob ene , al igual que el es o de mis
compa˜ne os, in o maci´on y eedback de los posibles usua ios de la aplicaci´on. En un p ime
momen o, ob u e opini´on del c´ı culo m´as ce cano (no ia, pad es y amilia) pa a despu´es acaba
ecibiendo Feedback ambi´en del g upo de amigos y es udian es de la acul ad.
T as ob ene es e Feedback, u o luga una euni´on en la que compa imos imp esiones so-
b e las opiniones que hab´ıamos ecolec ado p e iamen e. Conside amos cu´ales de ellas e an m´as
ele an es y nos epa imos los di e en es aspec os a modi ica po ecomendaci´on de los usua ios.
Adem´as, una ez es os cambios ue on ealizados, nos cen amos odos jun os en la c eaci´on
de la p´agina web. T as un d´ıa en e o en la acul ad que si i´o pa a sen a las bases, dise˜no y
dis ibuci´on inal de la p´agina web, nos epa imos las uncionalidades a desa olla de la misma,
pa a as´ı pode i a anzando en pa alelo. En mi caso, decid´ı enca ga me de la pa e de es ad´ıs icas.
En lo que concie ne a es a pa e, he de des aca que la implemen aci´on no ue ´acil. Que ´ıa
que se a ase de una uncionalidad que apo ase la mayo can idad de in o maci´on a los biblio e-
ca ios y pa a ello p ecisaba de una implemen aci´on que les pe mi iese modi ica din´amicamen e
el ango de echas a consul a . Finalmen e, as una p o unda in es igaci´on po la ed di con el
ecu so que necesi aba, Highcha s.
Adem´as, e a necesa io desa olla una que y que pe mi iese ecopila odos los da os que e a
necesa io mos a en la g ´a ica. T as alg´un que o o p oblema, g acias a la expe iencia adqui ida
du an e es os a˜nos en MySQL log ´e da con la que y que ob u iese de la base de da os odo
ello.
Finalizada ya la uncionalidad de es ad´ıs icas, ealic´e la uncionalidad web de limpia base
de da os, uncionalidad que, como ya se ha mencionado, inalmen e no ha sido implemen ada en
la web si no que se ha op ado po au oma iza . En un p incipio la au oma ic´e con el plani icado
de e en os de MySQL pe o inalmen e la ealic´e median e un CRON Job, debido a la es icci´on
137
exis en e en los se ido es de la ed con el plani icado de e en os de MySQL.
O a de los aspec os en los que m´as he abajado, adem´as de en la implemen aci´on de la
au oma izaci´on de a eas median e CRON Jobs, ha sido en la gene aci´on, implemen aci´on y
desa ollo de los PHP.
Despu´es de jun a es as unciones con el es o de mis compa˜ne os, ealizamos una euni´on
pa a asegu a nos de que no al aba ninguna uncionalidad y pode empeza a desa olla la
aplicaci´on m´o il.
A con inuaci´on empec´e a e u o iales, jun o al es o de mis compa˜ne os, y gu´ıas de c´omo
desa olla aplicaciones And oid, debido a que no en´ıamos ninguna expe iencia en es e aspec o.
Uno de los miemb os del g upo, I ´an, s´ı que en´ıa expe iencia en el ema pues o que hab´ıa
es ado ma iculado en una asigna u a de aplicaciones And oid y ue el que nos gui´o en es os
compases iniciales.
T as es e p oceso de ap endizaje, empezamos los es miemb os del equipo a implemen a las
p ime as pan allas de la aplicaci´on, es deci inicia sesi´on y egis a se. Hicimos a ias eunio-
nes odos jun os pa a pode ealiza las, a la ez que busc´abamos in o maci´on y abaj´abamos
en pa alelo pa a pode consegui que uncionasen las pan allas. Fue bas an e cos oso el inicio,
pues o que ninguno de noso os en´ıa expe iencia an e io a es e ipo de p oyec os.
Una ez conseguimos e mina es as pan allas, decidimos en una euni´on ealiza la pan a-
lla de plan as, donde se mues a el es ado de la biblio eca ac ual. Aco damos una euni´on los
miemb os del equipo con el di ec o del p oyec o e hicimos una llu ia de ideas de c´omo pode
desa olla e implemen a dicha uncionalidad. T as dicha euni´on, decidimos implemen a los
pues os median e bo ones.
Debido a que e a es a pan alla de la aplicaci´on donde se encon aba la p incipal unciona-
lidad del p oyec o, decidimos ealiza la jun os, haciendo euniones p esenciales casi odos los
d´ıas. Adem´as, los d´ıas que no nos encon ´abamos pe sonalmen e, cada in eg an e del g upo de-
dicaba iempo indi idual pa a busca ecu sos o ecnolog´ıas que ayudasen. T as el dise˜no de las
di e en es plan as, u imos que in es iga c´omo implemen a el ema de la ubicaci´on y consegui
cada cie o pe ´ıodo de iempo la ob enci´on de la misma.
Una ez implemen amos la uncionalidad p incipal del p oyec o, nos asegu amos de su un-
cionamien o y dise˜no, nos epa imos las uncionalidades sob an es. En mi caso me enca gu´e
de es ad´ıs icas, ya que ue es a pa e ambi´en la que ealic´e en la p´agina web, de modo que, a
p io i, me se ´ıa m´as ´acil implemen a la a m´ı.
Sin emba go, no muchas eces lo que se espe a en eo ´ıa es lo que acaba ocu iendo en
ealidad y es a ue una de ellas. Pa a empeza , solo una que y de la pa e web si i´o pa a la
implemen aci´on de es a uncionalidad en la pa e m´o il y. Po ello, me dispuse a ealiza el
es o de que ies que pe mi iesen ob ene la in o maci´on necesa ia de la base de da os. Una ez
es u o ob enida dicha in o maci´on y e i icada que ue a co ec a, me cen ´e en c´omo mos a la
g ´a icamen e. Hice uso de una de las lib e ´ıas de And oid, in es igu´e con ella ace ca de c´omo
usa la y me dispuse a la c eaci´on de los g ´a icos. Adem´as, pa a la in e az g ´a ica decid´ı hace
uso de pes a˜nas, uncionalidad que pos e io men e ha sido usada en el p oyec o.
Una ez acabamos odas las uncionalidades es an es, y ealizamos las p uebas, subimos la
aplicaci´on a Play S o e pa a que las pe sonas que se la desca gasen pudiesen p oba la. Despu´es
de a ios epo es de e o es, an o mis compa˜ne os como yo es u imos a eglando allos que se
138
hab´ıan p oducido, muchos de ellos po p oblemas de compa ibilidad en las e siones no pu as
del And oid.
Pa a inaliza , ambi´en pa icip´e jun o al es o de mis compa˜ne os en la ealizaci´on de la me-
mo ia. Nos di idimos los cap´ı ulos y cada ez que uno de los in eg an es del equipo e minaba
uno de ellos, los dem´as lo le´ıamos, co eg´ıamos y eesc ib´ıamos alg´un pun o que nos pa ec´ıa que
quedaba mejo de o o modo, siemp e consul ´andolo con los dem´as.
Pa a e mina que ´ıa deci que ha habido momen os a lo la go del p oyec o, en los que
es ebamos algo a ascados, como en el p oceso de de e mina la ubicaci´on del usua io, o cuando
necesi amos de un Se ice en segundo plano y no daban los esul ados que espe ´abamos. C eo
que ha sido algo posi i o el hecho de abaja en g upo pues o que nos apoy´abamos unos a los
o os en momen os di ´ıciles pa a a a de saca lo adelan e, siendo siemp e un g upo unido.
139
9.4.3. I ´an Mon e ubio Ce ezo
Comenzamos el p oyec o e lexionando de como se ia la aplicaci´on web y m´o il, median e
una llu ia de ideas. Pens´e an o yo como el es o de los compa˜ne os del equipo en que uncio-
nalidades hab ´ıa que ene en cuen a an es de comenza con el desa ollo del p oyec o.
Comenzamos desa ollando boce os de como iba a se la aplicaci´on web y m´o il, como se ´ıan
las pan allas, que unciones se le iban a mos a al usua io a p ime is a, que o as unciones
pod ´ıan es a ecogidas en di e en es m´odulos...
T as ene un esquema p incipal de como se ´ıan las aplicaciones comenzamos a desa olla en
di e en es p og amas unos p o o ipos del aspec o de ambas aplicaciones. Una ez los en´ıamos
desa ollado po comple o, ense˜namos nues os boce os a pe sonas como amigos y amilia es,
usua ios no expe os en la aplicaci´on pa a que alo asen como iban a encon a nues a aplica-
ci´on.
Despu´es de a ias modi icaciones en es os boce os, comenzamos a dibuja que bases de da os
necesi a ´ıamos, y como se iban a elaciona las bases de da os con la aplicaci´on.
A con inuaci´on comenzamos desa ollando la aplicaci´on pa a web debido a que en´ıamos
expe iencia en el desa ollo de las mismas, po a ias asigna u as que hab´ıamos enido a lo la go
de la ca e a sob e es e ipo de p oyec os. As´ı que como en´ıamos expe iencia en el desa ollo
de es e ipo de p oyec os, nos di idamos los m´odulos de unciones, yo me enca gue del ho a io.
Pa a la ealizaci´on de la misma, que ´ıa que no solo el biblio eca io/a pudie a de e mina la
ho a de ape u a y cie e si no ambi´en que pudie a c ea nue as plan as y llama las de di e-
en e mane a, eso ue uno de los aspec os que m´as me cos ´o. Tu e que in es iga bas an e pa a
encon a unos ecu sos que me ayuda an a consegui mos a bien los ho a ios. Una ez ealic´e
eso y hab´ıa pues o dise˜no a los ho a io, conce amos una euni´on los in eg an es del equipo pa a
pode de e mina los allos que pod ´ıa habe y discu i el dise˜no.
Una ez co egidos los allos, implemen ´e con ayuda de una API de geolocalizaci´on un mapa
pa a pode mos a la ubicaci´on de la biblio eca.
Despu´es de acaba con el desa ollo de la aplicaci´on web, pasamos al desa ollo de la aplica-
ci´on m´o il. Yo e a el ´unico que hab´ıa enido expe iencia en el desa ollo de aplicaciones m´o iles,
debido a que el a˜no an e io hab´ıa cu sado la asigna u a de P og amaci´on de Disposi i os M´o i-
les, y hab´ıa ealizado alg´un p oyec o de es e ipo. Po lo que les ense˜n´e a Ca los y Da id, las
di e en es o mas de ealiza una aplicaci´on m´o il, como pudie a se en na i o o con aplicando
ecnolog´ıas web. T as hace a ias euniones donde imos los p os y los con as en e una y o a
opci´on, e minamos po decidi nos po hace la aplicaci´on exclusi a pa a And oid. Les ense˜n´e
cu´al e a el amewo k po el que nos ´ıbamos a i mo iendo, y p oyec os b´asicos pa a ealiza a-
ias p uebas. A con inuaci´on an o ellos como yo in es igamos y ap endimos sob e el desa ollo
de aplicaciones.
La p ime a pan alla, la de inicia sesi´on y egis a se, la hicimos jun os, pa a pode i cogien-
do sol u a. Una ez depu amos la p ime a pan alla y nos asegu amos de que uncionaba, y que
es ´abamos de acue do en el dise˜no, decidimos segui con el desa ollo y empezamos el desa ollo
de la p´agina uen e del p oyec o, plan as.
140
Dicha pan alla la ealizamos en e los es componen es del g upo, debido a su complejidad.
P ime o ealizamos una euni´on los miemb os del g upo, con el di ec o , pa a pode hace una
llu ia de ideas de como hace la ealizaci´on del dise˜no y como ep esen a los pues os de es udio y
las mesas. T as es a cha la salimos con la idea de ealiza la median e bo ones. Una ez hab´ıamos
hecho es o, ino lo m´as complicado y en lo que in e imos m´as iempo, y e a sabe como ob ene
la ubicaci´on del usua io en cie o pe iodo de iempo. Es o nos lle ´o muchas euniones pa a pode
llega alguna soluci´on, jus amen e la que enemos aho a mismo implemen ada.
Una ez conseguimos e mina el pila p incipal del p oyec o, nos asegu amos de que no
hab´ıa allos, empezamos a di idi las unciones es an es en e los miemb os del equipo, yo
ealic´e ho a ios.
Dicha uncionalidad ue mas le ade a que la an e io mencionada. Me enca gu´e de lee de
la base de da os los ho a ios y mos a los. Una ez hab´ıa acabado es o, ealizamos una euni´on
pa a de e mina el dise˜no de los ho a ios y con o me a es o co egi los. Una ez co egido a˜nad´ı
es a unci´on al p oyec o.
Despu´es de e mina el desa ollo del p oyec o, lanzamos la aplicaci´on a la conocida Play
S o e, pa a que la gen e la pudiese p oba . Despu´es de es o, nos en ia on a ios epo es los
usua ios de allos y p oblemas y los acabamos co igiendo los es in eg an es del g upo.
Una ez inalizado el ema de la aplicaci´on m´o il, desa oll´e a la pa de mis compa˜ne os los
cap´ı ulos de la memo ia, cada ez que un in eg an e desa ollaba un capi ulo los o os dos lo
e isaban y co eg´ıan.
Po ´ul imo des aca el abajo ealizado po el g upo, debido al es ue zo que hemos ealizado
du an e odo el a˜no, en si uaciones en la que no es aba muy cla o como a anza con el p oyec o.
Adem´as c eo que hemos sabido se un buen g upo de abajo, apoy´andonos, buscando odos
in o maci´on, y siemp e con una buena o ganizaci´on. Desde un p ime momen o siemp e quisimos
en desa olla un p oyec o que uese de u ilidad y eso ue una de las cosas que nos mo i ´o a
segui el p oyec o y a sabe dis u a mien as lo ealiz´abamos.
141
10. Bibliog a ´ıa
[1] P´agina web en la que apa ecen los pues os disponible de los labo a o ios de la FDI - h p:
//in o ma ica.ucm.es/pues os-disponibles-po -labo a o io/
[2] P´agina web en la ealiza la ese a de salas de abajo en g upo de la acul ad de educaci´on
de la UCM - h p://cisne.sim.ucm.es/ eco d=b3601291~S6*spi
[3] Aplicaci´on m´o il de Cinesa - h ps://play.google.com/s o e/apps/de ails?id=com.
codiwans.cinesa
[4] Aplicaci´on m´o il de PLM - h ps://play.google.com/s o e/apps/de ails?id=com.
ingeniacom.plm
[5] Ven ajas y des en ajas de JSON y de XML - h ps://www.osca blanca eblog.com/
2014/07/18/json- s-xml/
[6] Ven ajas y des en ajas de MySQL - h p://www. oc.es/2013/04/11/
988- azones-po -la-que-u iliza -mysql.h ml
[7] Summa y o Don No man’s Design P inciples - h p://www.csun.edu/science/cou ses/
671/bibliog aphy/p eece.h ml
[8] Documen o de es ilo web de la UCM - h ps://www.ucm.es/ssii/in oduccion
[9] Fon Awesome Icons - h ps://www.w3schools.com/icons/ on awesome_icons_in o.
asp
[10] Glyphicons Icons - h ps://www.w3schools.com/icons/boo s ap_icons_glyphicons.
asp
[11] P incipios aplicaci´on m´o il - h p://appdesignbook.com/es/con enidos/
pa ones-in e accion-mo iles/
[12] Ma e ial Design - h ps://ma e ial.io/design/
[13] Robo o - h ps:// on s.google.com/specimen/Robo o
[14] Pega ina NFC - h ps://compu e hoy.com/paso-a-paso/apps/
e ique as-n c-como-usa las-que-si en-4351
[15] Desca ga de la app Biblio eko desde Google Play - h ps://play.google.com/s o e/
apps/de ails?id=es. g.mon e ichomas e s
[16] Highcha s, lib e ´ıa esc i a en Ja asc ip que pe mi e la c eaci´on de g ´a icas - h ps://
www.highcha s.com/
[17] And oid De elope s - h ps://de elope .and oid.com/
[18] C´odigo PHP del algo i mo Pun o en Pol´ıgono (PIP) - h p://assemblysys.com/es/
algo i mo-pun o-en-poligono/
[19] C´odigo Ja a del algo i mo Pun o en Pol´ıgono (PIP) - h ps://gi hub.com/s omku/
polygon-con ains-poin
142
[20] Cues iona io ealizado pa a la e aluaci´on de la aplicaci´on - h ps://docs.google.
com/ o ms/d/e/1FAIpQLSdOKCU0aHXo3 TLBjTn1ksODsAp0xEoZ D0KgPC 2iU609Q/
iewanaly ics
[21] Cu so de P og amaci´on And oid sgoli e - h p://www.sgoli e .ne
143
11. Ap´endices
11.1. Ap´endice A: Manual de ins alaci´on
Como el pensamien o que se en´ıa an es de ealiza el p oyec o e a ealiza una aplicaci´on web
y m´o il ´acil de usa es po ello que pa a pode p oba la aplicaci´on y pa a su ins alaci´on se a a
de un p oceso simple. Pa a p oba la aplicaci´on an solo es necesa io desca ga se de Google Play
la aplicaci´on ‘Biblio eko’ [15] y pa a accede a la p´agina web en el link h p://biblio eko.es/
Se puede accede al con enido de odo el p oyec o a a ´es de una ca pe a de Google D i e
habili ada pa a ello. En ella se puede encon a es a memo ia, una ca pe a llamada ‘Aplicaci´on
m´o il’ y o a ‘Aplicaci´on web’. En la p ime a se encuen a el a chi o .apk lis o pa a ins ala se
en cualquie disposi i o And oid y o a ca pe a que con iene el p oyec o de And oid S udio,
con odos los a chi os, c´odigo e im´agenes que lo componen. En la segunda de las ca pe as se
puede e un a chi o .sql con la base de da os de la aplicaci´on web, y o a ca pe a a su ez que
con iene el ´a bol de di ec o ios comple o de la p´agina web.
A con inuaci´on se an a desc ibi los ecu sos necesa ios pa a pode e odo el p oyec o
desa ollado en su o alidad:
11.1.1. P´agina web
Pa a isualiza la p´agina web bas a ´a con isi a el siguien e enlace: h p://biblio eko.es/
Si una biblio eca quie e da se de al a en la pla a o ma el p oceso a segui es pone se en
con ac o con los desa ollado es a a ´es del apa ado Con ´ac anos de la web, desde donde se
es ablece ´an los equisi os y se solici a ´an odos los da os necesa ios pa a que el equipo desa o-
llado c ee esa nue a biblio eca en ambas aplicaciones. Cuando se haya inalizado, se acili a ´a
a la biblio eca sus da os de acceso y pod ´a accede a la web de mane a no mal.
Si se quie e isualiza en local, p ime o debe emos se debe ´a desca ga el a chi o .sql y la
ca pe a ’biblio eko’, que con iene el c´odigo pa a isualiza la p´agina web, ambos se adjun an en
a ca pe a de D i e, pa a la c eaci´on de las ablas en la base de da os. A con inuaci´on, ac i a
la conexi´on con xampp y con mysql. Luego se pod ´a isualiza la p´agina web en el siguien e
enlace: h p://localhos :8080/biblio eko
11.1.2. And oid S udio
U ilizado pa a el desa ollo de la aplicaci´on m´o il. Se puede desca ga la e si´on 3.1.2 pa a
Windows en es e enlace h ps://de elope .and oid.com/s udio/?hl=es
11.1.3. Sublime Tex
Aunque no es necesa io, se ecomienda pa a pode lee los di e en es a chi os HTML, CSS,PHP
y Ja asc ip un edi o de ex o. En es e p oyec o se ha p og amado u ilizando dicho edi o , muy
ecomendable. A con inuaci´on se adjun a un link pa a la desca ga: h ps://www.sublime ex .
com/3
11.1.4. MySQL
Pa a la base de da os, se end ´a que desca ga es e ges o de base de da os.
Se puede hace la desca ga en h ps://www.mysql.com/downloads/
144
11.1.5. Aplicaci´on And oid
Una ez ins alado And oid S udio, y desca gada la ca pe a ’mon e ichomas e s’, pod emos
ab i el p oyec o seleccion´andolo. Tambi´en pod emos ejecu a un emulado den o de es e a-
mewo k. Tambi´en se puede hace una p ueba ins alando el a chi o .apk que se adjun a con el
p oyec o.
11.2. Ap´endice B: Manual de usua io
En es e manual se explica ´a de alladamen e las unciones que puede ealiza el usua io, pa a
acili a el uso de la aplicaci´on web y m´o il.
11.2.1. Aplicaci´on web
11.2.1.1 Inicia sesi´on
Figu a 115: Manual - Inicia sesi´on
Al se es a p´agina exclusi a pa a los biblio eca ios, no pod ´an inicia sesi´on o a pe sona que
no engan es e ol en la acul ad. Pa a pode inicia sesi´on, los adminis ado es (que se emos
noso os) de la aplicaci´on debe ´an pone se en con ac o con los biblio eca ios pa a p opo ciona
un usua io y con ase˜na. Es e usua io y con ase˜na cambia ´a dependiendo de la biblio eca, po
lo que no se ´a la misma.
Pa a inicia sesi´on co ec amen e se debe ´a ellena el usua io (campo 1) y la con ase˜na
(campo 2) y da le a la opci´on de acep a (campo 3). En caso de no habe come ido allos, se
pasa ´a a la pan alla p incipal, el buz´on de suge encias.
145