scieee Science in your language
[es] (orig)

Visibilizando injusticias laborales publicadas en Twitter a travéss de una plataforma descentralizada basada en blockchain

Abstract

En nuestro día a día, se producen numerosas situaciones de injusticia en el entorno laboral. Sin embargo, muchas veces, los medios tradicionales de denuncia no son suficiente para visibilizarlas. En los últimos años, con la aparición y expansión de las redes sociales, muchas personas han recurrido a ellas para hacerse oír. En particular, Twitter ha jugado un papel muy importante a la hora de visibilizar iniciativas y unir a gente con intereses comunes. En este contexto, percibimos que, aun significando un avance importante, pueden existir problemas si se usan exclusivamente las redes sociales como medio de denuncia. Por ejemplo, la denuncia puede ser censurada por medio de su eliminación, denuncias muy medí áticas pueden eclipsar a otras, o las denuncias pueden quedar ocultas entre la gran cantidad de contenido que hay en la red social. Es por ello que proponemos crear una herramienta de análisis y visualización dedicada, exclusivamente, a este tema. La aplicación Injustweet, haciendo uso de estadísticas y graficas, muestra datos relacionados con denuncias laborales en Twitter. De forma que pueda servir como un punto de conocimiento, apoyo y denuncia para personas que estén interesadas, tanto a nivel personal como profesional, en el tema. El desarrollo de la aplicación aprovecha los ´últimos avances metodológicos y tecnológicos para llevarla a cabo. Por un lado, el desarrollo del frontend se lleva a cabo cuidando el diseño gracias a React. Por otro lado, con el objetivo de evitar la censura, el backend hace uso de tecnologías distribuidas, como la blockchain. Finalmente, destacamos que con el fin de detectar, entre la gran cantidad de datos, aquellas que sean denuncias, se aplican técnicas de análisis de lenguaje natural.

Read accessible full text

Visibilizando injusticias laborales publicadas en Twitter a travéss de una plataforma descentralizada basada en blockchain

Author: Asunción López, Roberto; Moreno Bellaneda, Julián; Imbert Fernández, Pablo; P´erez González de Ossuna, Raquel; Mulero Martin, Javier; Ruiz Ribera, Angela
Year: 2022
Source: https://docta.ucm.es/bitstreams/8aae8b38-64f0-4c53-92f0-20412149fa70/download
Visibilizando injus icias labo ales publicadas en Twi e a
a ´es de una pla a o ma descen alizada basada en
blockchain
Gi ing isibili y o wo kplace injus ices published on Twi e ia a
decen alized blockchain-based pla o m
TRABAJO DE FIN DE GRADO
UNIVERSIDAD COMPLUTENSE DE MADRID
FACULTAD DE INFORM´
ATICA
G ado en Ingenie ´ıa In o m´a ica
Robe o Asunci´on L´opez Pablo Imbe Fe n´andez
Juli´an Mo eno Bellaneda Raquel P´e ez Gonz´alez de Ossuna
Doble G ado en Ingenie ´ıa In o m´a ica y Ma em´a icas
Ja ie Mule o Ma ´ın ´
Angela Ruiz Ribe a
Depa amen o de Ingenie ´ıa del So wa e e In eligencia A i icial
Di ec o es: Same Hassan Collado y Jo ge Sald´ı a
Cu so acad´emico 2021-2022
Con oca o ia de Junio
Dis ibuci´on de la memo ia e im´agenes del p oyec o
A ibuci´on-Compa i Igual 4.0 In e nacional (CC BY-SA 4.0)
Us ed es lib e de:
Compa i : copia y edis ibui el ma e ial en cualquie medio o o ma o
Adap a : emezcla , ans o ma y cons ui a pa i del ma e ial pa a cualquie p op´osi o,
incluso come cialmen e.
Bajo los siguien es ´e minos:
A ibuci´on: Us ed debe da c ´edi o de mane a adecuada, b inda un enlace a la licencia,
e indica si se han ealizado cambios. Puede hace lo en cualquie o ma azonable, pe o
no de o ma al que sugie a que us ed o su uso ienen el apoyo de la licencian e.
Compa i Igual: Si emezcla, ans o ma o c ea a pa i del ma e ial, debe dis ibui su
con ibuci´on bajo la la misma licencia del o iginal.
This wo k is licensed unde he C ea i e Commons A ibu ion-Sha eAlike 4.0 In e na ional License. To iew a copy o his license, isi
h p://c ea i ecommons.o g/licenses/by-sa/4.0/ o send a le e o C ea i e Commons, PO Box 1866, Moun ain View, CA 94042, USA.
Dis ibuci´on del c´odigo del p oyec o
GNU Gene al Public License 3.0
Todo el c´odigo desa ollado en es e p oyec o se dis ibuye bajo la licencia GPL-3.0.
This p og am is ee so wa e: you can edis ibu e i and/o modi y i unde he e ms o he GNU Gene al Public License as published by
he F ee So wa e Founda ion, ei he e sion 3 o he License, o (a you op ion) any la e e sion.
This p og am is dis ibu ed in he hope ha i will be use ul, bu WITHOUT ANY WARRANTY; wi hou e en he implied wa an y o
MERCHANTABILITY o FITNESS FOR A PARTICULAR PURPOSE. See he GNU Gene al Public License o mo e de ails.
You should ha e ecei ed a copy o he GNU Gene al Public License along wi h his p og am. I no , see h ps://www.gnu.o g/licenses.
Resumen
En nues o d´ıa a d´ıa, se p oducen nume osas si uaciones de injus icia en el en o no la-
bo al. Sin emba go, muchas eces, los medios adicionales de denuncia no son su icien e pa a
isibiliza las. En los ´ul imos a˜nos, con la apa ici´on y expansi´on de las edes sociales, muchas
pe sonas han ecu ido a ellas pa a hace se o´ı . En pa icula , Twi e ha jugado un papel muy
impo an e a la ho a de isibiliza inicia i as y uni a gen e con in e eses comunes.
En es e con ex o, pe cibimos que, a´un signi icando un a ance impo an e, pueden exis i
p oblemas si se usan exclusi amen e las edes sociales como medio de denuncia. Po ejemplo,
la denuncia puede se censu ada po medio de su eliminaci´on, denuncias muy medi´a icas pue-
den eclipsa a o as, o las denuncias pueden queda ocul as en e la g an can idad de con enido
que hay en la ed social.
Es po ello que p oponemos c ea una he amien a de an´alisis y isualizaci´on dedicada,
exclusi amen e, a es e ema. La aplicaci´on Injus wee , haciendo uso de es ad´ıs icas y g ´a icas,
mues a da os elacionados con denuncias labo ales en Twi e . De o ma que pueda se i
como un pun o de conocimien o,apoyo ydenuncia pa a pe sonas que es ´en in e esadas,
an o a ni el pe sonal como p o esional, en el ema.
El desa ollo de la aplicaci´on ap o echa los ´ul imos a ances me odol´ogicos y ecnol´ogi-
cos pa a lle a la a cabo. Po un lado, el desa ollo del on end se lle a a cabo cuidando el
dise˜no g acias a Reac . Po o o lado, con el obje i o de e i a la censu a, el backend hace
uso de ecnolog´ıas dis ibuidas, como la blockchain. Finalmen e, des acamos que con el in de
de ec a , en e la g an can idad de da os, aquellas que sean denuncias, se aplican ´ecnicas de
an´alisis de lenguaje na u al.
Palab as cla e: blockchain, dashboa d, an´alisis de lenguaje na u al, denuncias labo ales,
Twi e , MERN, Py hon.
i

Abs ac
The e has always been di e en kinds o injus ice in he wo kplace. Howe e , many i-
mes, i is ha d o be hea d when using he adi ional ways o launching complain s. Du ing
he pas yea s, due o he apid g ow h o social media, many ha e s a ed using hem as
a way o communica ing hose injus ices. In pa icula , Twi e has played a e y impo an
ole. I has become a pla o m ha gi es isibili y o many ini ia i es and whe e people can
ge oge he and sha e common in e es s.
E en hough social ne wo ks ha e pa ially sol ed he p oblem, hey alone do no seam o
be he bes solu ion. Fo ins ance, a epo made in Twi e can be censo ed by dele ing he
wee . The denuncia ions can be eclipsed by he gigan ic amoun o da a o by o he s which
ge mo e spo ligh .
Tha is way we p opose o de elop an applica ion dedica ed, exclusi ely, o his opic.
Injus wee will show da a ela ed o wo kplace injus ices by using g aphs and s a is ics. The-
e o e, e e yone who is in e es ed pe sonally o p o essionally in hose si ua ions could use i
as a way o consul ing and sha ing in o ma ion.
Du ing he de elopmen o his p ojec , we ha e used he la es echnologies and me ho-
dologies a ailable. On one hand, we we e able o c ea ing an a ac i e design and de eloping
he on end hanks o Reac . On he o he hand, we used blockchain as a way o a oiding
censo ship. Finally, i should be no ed ha we ha e used language p ocessing echniques o
ob ain da a ela ed o wo kplace injus ices.
Key wo ds: blockchain, dashboa d, language p ocessing, wo kplace complain s, Twi e ,
MERN, Py hon.
Ag adecimien os
Que emos dedica unas palab as pa a ag adece a odos aquellos que nos han acompa˜nado
y apoyado, no s´olo du an e el desa ollo de es e TFG, sino a lo la go de oda la ca e a.
En p ime luga , nos gus a ´ıa ag adece a Same Hassan yJo ge Sald´ı a , codi ec o es
del TFG, po su mo i aci´on y ayuda. Nos ha pe mi ido saca adelan e un p oyec o del que
sen i nos o gullosos, as´ı como ap ende sob e nue as ecnolog´ıas y su aplicaci´on a p oblemas
sociales eales.
Po o o lado, ag adece a odas aquellas pe sonas que de o ma olun a ia pa icipa on
en la e aluaci´on del p oyec o, lo que nos pe mi i´o en ende mejo la calidad de los esul ados
ob enidos.
Finalmen e, a ni el pe sonal, ag adece a los compa˜ne os de ca e a que nos han acom-
pa˜nado du an e es os a˜nos y con los que hemos compa ido i encias acad´emicas. As´ı como
a los amilia es y amigos, que nos han apoyado y animado du an e las ´epocas de ex´amenes y
las la gas ho as de es udio.
i
´
INDICE GENERAL
´
Indice gene al
1. In oducci´on 1
2. In oduc ion 4
3. Ma co e´o ico y es ado del a e 7
3.1. Ma co e´o ico .................................. 7
3.1.1. Redes sociales y o ganizaci´on social ................... 7
3.1.2. An´alisis de lenguaje na u al y web sc aping ............... 9
3.1.2.1. An´alisis de lenguaje na u al .................. 9
3.1.2.2. Web sc aping ......................... 14
3.1.3. Blockchain como ecnolog´ıa descen alizada .............. 15
3.2. Es ado del a e .................................. 19
3.2.1. Redes sociales como uen e de in es igaci´on .............. 19
3.2.2. Blockchain pa a el bene icio social .................... 20
4. Me odolog´ıa y ecnolog´ıas 22
4.1. Me odolog´ıa ................................... 22
4.1.1. Me odolog´ıa de dise˜no y so wa e .................... 22
4.1.2. Me odolog´ıa de so wa e lib e ...................... 23
4.1.3. Plan de abajo ............................. 24
4.1.4. Con ibuciones al p oyec o ........................ 25
4.2. Tecnolog´ıas .................................... 42
4.2.1. Edici´on y con ol de e siones ...................... 42
4.2.1.1. Diag amas de Gan ...................... 42
4.2.1.2. O e lea ............................ 43
4.2.1.3. Gi Hub ............................. 43
4.2.1.4. PyCha m ............................ 43
4.2.1.5. Visual S udio Code ...................... 43
4.2.2. Dise˜no de la aplicaci´on .......................... 43
4.2.2.1. Balsamiq Wi e ames ..................... 43
4.2.2.2. GIMP ............................. 43
4.2.2.3. diag ams.ne .......................... 43
4.2.3. Desa ollo de la aplicaci´on ........................ 43
4.2.3.1. Twi e API .......................... 43
iii
CAP´
ITULO 2. INTRODUCTION
ela ed o wo kplace denuncia ions. Mo eo e , wi h he inal pu pose o a oiding censo ship,
we b ing o wa d he idea o using he blockchain.
Goals
In iew o he si ua ion exposed, we de elop ou applica ion wi h he ollowing goals in
mind:
To gi e isibili y o wo kplace ela ed denuncia ions in places whe e Spanish is hei main
language. We would like o show, no only he epo s, bu also he con ex in which
hey ake place.
To p o ide a place whe e people can sha e, see and epo si ua ions o injus ice, as well
as suppo one ano he .
To de elop an in e ace ha can be used and unde s ood by e e yone.
To lea n and use na u al language p ocessing echniques in o de o acqui e da a.
To lea n and use he blockchain as a way o a oiding censo ship.
To de elop a p ojec using and encou aging he use o ee so wa e.
S uc u e o his documen
This pape con ains he in o ma ion equi ed o p ope ly unde s and he p ojec . We now
show he con en s o each chap e .
Chap e 1: I p esen s he easons why we s a ed his p ojec and he mo i a ions
behind i .
Chap e 2: Chap e 1 in English.
Chap e 3: I gi es a heo e ical poin o iew o he echnologies used and he lines o
wo k ha ha e inspi ed us.
Chap e 4: I explains he wo k me hodologies and echnologies used, as well as he
planning made and how each pe son con ibu ed o he p ojec .
Chap e 5: Be o e s a ing he p ojec , we ook some ime o lea n and de elop smalle
p ojec s which a e shown in his sec ion.
Chap e 6: I explains he in es iga ion phase ha ook place, as well as all he equi-
emen s we had o mee a e shown in his sec ion.
Chap e 7: I p esen s he p ocess ollowed du ing he design and implemen a ion phase.
I made us be e unde s and he ma ke we we e en e ing o and he use s we had o
a ge .
5

CAP´
ITULO 2. INTRODUCTION
Chap e 8: The ull so wa e a chi ec u e o ou p ojec can be ound he e.
Chap e 9: A e inishing he p ojec , a phase o e alua ion ook place. I had wo
poin s o iew; use expe ience and NLP.
Chap e 10: I p esen s he esul s and conclusions o ou p ojec . I also p oposes he
u u e lines o wo k ha could be ollowed.
Chap e 11: Chap e 10 in English.
Resou ces
The p ojec can be ound in Gi Hub using he ollowing link:
h ps://gi hub.com/injus wee - g
Access Injus wee using he illowing link:
h ps://dashboa d- wi e .he okuapp.com/dashboa d
6
CAP´
ITULO 3. MARCO TE´
ORICO Y ESTADO DEL ARTE
Cap´ı ulo 3
Ma co e´o ico y es ado del a e
3.1. Ma co e´o ico
Dedicamos es a secci´on a p esen a los p incipales emas que amos a a a , in oduciendo
el con ex o ecnol´ogico y social en el que se desa olla nues o p oyec o. Vamos a con a lo en
es pa es.
En p ime luga , nos cen a emos en e c´omo las edes sociales se han u ilizado como
o ma de o ganizaci´on social pa a denuncia injus icias labo ales y sociales, as´ı como a en-
ende c´omo de impo an e es la colec i izaci´on de pe sonas pa a ob ene esul ados.
A con inuaci´on, dedicamos una secci´on a e c´omo se pueden ap o echa ´ecnicas de an´ali-
sis de lenguaje na u al pa a de ec a y ecoge las si uaciones que sean de in e ´es.
Finalmen e, nos ace ca emos a conoce qu´e es la ecnolog´ıa blockchain, un ´e mino muy
u ilizado du an e los ´ul imos a˜nos y que se es ´a in oduciendo cada ez m´as en nues a so-
ciedad. En ende emos los concep os b´asicos, un poco de su his o ia, y en qu´e momen o nos
encon amos ac ualmen e.
3.1.1. Redes sociales y o ganizaci´on social
Hoy en d´ıa, g an pa e de la comunicaci´on que ealizamos a a ´es de in e ne es g acias a
las edes sociales. En endemos po edes sociales aquellos se icios web o aplicaciones que nos
pe mi en conec a nos con o as pe sonas, pa a compa i e in e cambia in o maci´on, c eando
as´ı edes de con ac os y comunidades. Las edes que se o man pueden se p i adas o p´ublicas.
Pe o son ´es as ´ul imas las que han p omo ido, du an e los ´ul imos a˜nos, que las edes sociales
no s´olo sean un luga donde compa i expe iencias con us con ac os, sino ambi´en un medio
de di usi´on masi a de in o maci´on.
Todo es o ha conducido a que las edes sociales se u ilicen, en pa icula , como medio de
o ganizaci´on y mo ilizaci´on ciudadana. Es o se debe a que ayudan a aumen a la pa i-
7
CAP´
ITULO 3. MARCO TE´
ORICO Y ESTADO DEL ARTE
cipaci´on y el sen imien o de pe enencia a colec i os. Adem´as, dan oz a inicia i as que, po
los medios adicionales, pod ´ıan no se escuchadas.
Un ejemplo de uso de edes sociales con es e in, es la mo ilizaci´on de los abajado es
de Walma de 2010. Walma es una cadena mul inacional de supe me cados es adounidenses,
con una plan illa global de 2.2 millones de abajado es, de los cuales 1.4 e an abajado es po
ho as[121]. La o ganizaci´on “OUR Walma ” (O ganisa ion Uni ed o Respec a Walma ),
undada po la UFCW (Uni ed Food and Comme cial Wo ke s), ue c eada pa a comba i la
amenaza que supon´ıa la compa˜n´ıa pa a la o ganizaci´on de los abajado es [115]. A los a-
bajado es se les imped´ıa o ganiza se, incluso e an sancionados si se les e´ıa habla de esos
emas du an e las jo nadas labo ales, po lo que las edes sociales supusie on un canal de
comunicaci´on segu o y di ec o, donde expon´ıan sus si uaciones y se apoyaban mu uamen e.
OUR Walma se con i i´o, de es a mane a, en un mo imien o con bas an e epe cusi´on en
los medios. G acias a ´el, consiguie on aumen a el sala io inicial 10 d´ola es la ho a, cambio
que a ec ´o a 500,000 abajado es [115].
O o ejemplo, ue el mo imien o #Figh Fo 15 su gido en Twi e en 2012, con el in
de aumen a el sala io m´ınimo a 15 d´ola es la ho a a los abajado es de un es au an e de
comida ´apida. G acias a las edes sociales, ob u ie on un ni el de exposici´on mucho mayo al
espe ado, debido a la g an can idad de usua ios que compa ´ıan el con enido. Es o e i ´o que
u iesen que depende de los medios adicionales pa a hace se o´ı . La inicia i a u o an a
epe cusi´on que, g acias a ella, se consigui´o la ap obaci´on de leyes, en nume osos es ados
es adounidenses, que aumen aban el sala io m´ınimo, ace c´andose o supe ando los 15 d´ola es
la ho a.
Po lo an o, se ha is o que las edes sociales son muy ´u iles a la ho a de uni a pe sonas
en dis in as si uaciones de injus icia y isibiliza , a g an escala, p oblemas que son di ´ıciles de
di undi haciendo uso de medios adicionales. En pa icula , una de las edes m´as u ilizadas
pa a denuncia es e ipo de si uaciones es Twi e , g acias a la g an ac i idad que lle an a
cabo sus usua ios, y al uso de hash ags.
Twi e nace en 2006, undada po Jack Do sey y sus socios en San F ancisco [85]. P o-
pone un se icio en el cual sus usua ios pueden compa i mensajes de ex o, llamados wee s,
de has a 280 ca ac e es (p e iamen e 140). Los usua ios ambi´en pueden eacciona a o os
wee s, compa i´endolos median e e wee s, o ma c´andolos como a o i os con likes. Adem´as,
el uso de hash ags1, pe mi e ag upa wee s elacionados en e s´ı.
Adem´as de los mo imien os mencionados an e io men e, hay muchas o as inicia i as que
han u ilizado Twi e como medio de di usi´on. Po ejemplo, #MeToo [54], nacido en 2017,
pa a denuncia los abusos y ag esiones sexuales po pa e de p oduc o es de Hollywood, o
#BlackLi esMa e [9], que denuncia la op esi´on de la comunidad neg a eje cida po el es ado
y las au o idades. Twi e ha pe mi ido y con ibuido a la c eaci´on de espacios segu os donde
1Palab as sin espacios p ecedidas del s´ımbolo #
8
CAP´
ITULO 3. MARCO TE´
ORICO Y ESTADO DEL ARTE
las pe sonas se unen pa a denuncias, c ea colec i o y apoya se mu uamen e.
3.1.2. An´alisis de lenguaje na u al y web sc aping
Hemos hablado de la g an can idad de da os e in o maci´on ´u il que pueden encon a se en
edes sociales, debido a la pa icipaci´on ac i a de una g an can idad de gen e. Nos plan eamos
c´omo ex ae y analiza esos da os, la mayo pa e de los cu´ales se encuen an en o ma o
ex o.
3.1.2.1. An´alisis de lenguaje na u al
El p ocesamien o del lenguaje na u al, o NLP po sus siglas en ingl´es, es un campo en la
in e secci´on en e la in eligencia a i icial y las ciencias del lenguaje que pe mi e a la in o m´a ica
analiza , in e p e a y comp ende el lenguaje humano. En e las dis in as aplicaciones de es a
ecnolog´ıa podemos encon a las siguien es.
Clasi icaci´on de ex os
La clasi icaci´on de ex os [59, 49, 21] consis e en, a pa i de una mues a, ex ae in o ma-
ci´on ele an e que pe mi a clasi ica la en una clase de en e un conjun o de ellas. Dependiendo
de c´omo se lle e a cabo es a clasi icaci´on, exis en 3 p incipales sis emas.
Rule-based sys ems
La clasi icaci´on de ex os se ealiza u ilizando un conjun o de eglas ling¨u´ıs icas hechas
a mano. Es as eglas ienen en cuen a una se ie de elemen os del ex o que les pe mi en
iden i ica a qu´e clase pe enecen. Sin emba go p esen an g andes des en ajas:
•Po una pa e equie en un amplio conocimien o sob e los emas que se es ´an
clasi icando, pa a sabe qu´e palab as se usan en cada con ex o.
•Requie en de muchas p uebas y cambios pa a que uncionen co ec amen e, lo que
se aduce en mucho iempo de desa ollo.
•Son di ´ıcilmen e escalables, pues o que las nue as eglas pueden llega a a ec a a
las ya exis en es.
Machine lea ning-based sys ems
A pa i de ex os de ejemplo p eseleccionados, ambi´en conocidos como co pus, los al-
go i mos de machine lea ning ap enden a clasi ica ex os g acias a m´e odos es ad´ıs icos
que les pe mi en c ea su p opias eglas. La p incipal en aja de es e ipo de sis emas
es p ecisamen e su escalabilidad, no equie en de a˜nadi eglas manualmen e po que
bas a con amplia el co pus. Adem´as, son gene almen e m´as p ecisos que los sis emas
basados en eglas, ya que no equie en un p o undo conocimien o del ema. Lamen a-
blemen e, son menos explicables que es os ´ul imos, un peque˜no cambio en el co pus de
en enamien o puede al e a comple amen e el uncionamien o del sis ema sin conoce
9
CAP´
ITULO 3. MARCO TE´
ORICO Y ESTADO DEL ARTE
su causa. Finalmen e, obse amos que se debe ene en cuen a que equie en de co pus
p eseleccionados que cumplan con las ca ac e ´ıs icas necesa ias pa a en ena al modelo,
dependiendo de los ex os necesa ios puede hace se di ´ıcil encon a uno adecuado y
c ea uno a mano equie e de mucho iempo y es ue zo.
Hyb id sys ems
Los sis emas h´ıb idos son una complemen aci´on de los an e io es sis emas.
Machine T ansla ion
La Machine T ansla ion (MT) [87, 31, 47] es la aducci´on au om´a ica en e ex os de
habla humana. Des acamos las siguien es a ian es.
Rule-based MT
Se basa en el empleo de un conjun o de eglas dise˜nadas po expe os ling¨uis as. El
p oceso de an´alisis pa e de ex ae in o maci´on de mo emas, ca ego ´ıa g ama ical de
las palab as que o man el ex o (pa o speech), named en i y (es deci econoce y
clasi ica nomb es p opios de pe sonas, o ganizaciones, echas ) y wo d sense disambi-
gua ion ( econoce cu´al de las posibles acepciones que una palab a iene es la que se
es ´a usando). T as es e p oceso, se lle a a cabo una aducci´on de las palab as a´ız del
idioma o iginal a las palab as a´ız del idioma a aduci , y luego se aducen los su ijos.
Finalmen e, se lle a a cabo una co ecci´on del g´ene o y n´ume o de las palab as.
S a is ical MT
Emplea modelos es ad´ıs icos que asumen que la aducci´on de odas las palab as del
lenguaje al que se aduce es ´an co ec amen e aducidas con una cie a p obabilidad.
Cuan a mayo sea la p obabilidad mejo es la aducci´on de esa palab a. Pa a ello se usan
ex os an e io men e aducidos y combinan las palab as en odas las posibles posiciones,
lo que esul a en una base de da os de aducciones.
Neu al MT
U iliza edes neu onales combinadas, no malmen e, con S a is ical MT pa a ob ene
mejo es esul ados. Son las m´as complejas pe o ambi´en las m´as e ec i as.
Syn ax-Based MT
Son una subca ego ´ıa de las S a is ical MT pe o lle an a cabo aducciones de unidades
sin ´ac icas en luga de palab as.
Na u al Language Gene a ion
Es un p oceso que pe mi e ans o ma da os en ex os comp ensibles po los se es huma-
nos. Dis inguimos las siguien es e apas.
Con en De e mina ion: Se p io iza qu´e pa e del con enido es el que se a u iliza .
10

CAP´
ITULO 3. MARCO TE´
ORICO Y ESTADO DEL ARTE
Da a in e p e a ion: Se lle a a cabo una in e p e aci´on, con el in de econoce los
da os que se quie en mos a .
Documen planning: Los da os se o ganizan pa a pode c ea una es uc u a na a i a
aco de al ´ambi o en el que se a a u iliza el algo i mo.
Sen ence Agg ega ion: Se ag egan aquellas ases que engan cie a cohesi´on con ex-
ual en e ellas.
G amma icaliza ion: Se e isa la g am´a ica, o og a ´ıa y los signos de pun uaci´on.
Language Implemen a ion: Finalmen e, se mues a el ex o en los o ma os adecuados
dependiendo de los usua ios a los que a des inado.
Tokeniza ion, Lema izaci´on y S emming
Debido a la iqueza usual en los lenguajes como las dis in as pa es de una o aci´on ( e bos,
sus an i os, ad e bios, adje i os), la exis encia de g´ene os o incluso los dis in os iempo e -
bales, es necesa io el p ocesamien o de las palab as pa a pode educi las a un o ma o com´un
m´as sencillo [45, 88].
La Tokenizaci´on es un p oceso median e el cual las palab as de una sen encia se di iden
en espacios indi iduales, de es a o ma se pueden ob ene las palab as que con o man una
ase o po ci´on de ex o.
La Lema izaci´on educe una palab a a su lema, que es la o ma en que esa palab a es ´a
ep esen ada en el dicciona io. Pa a pode lle a a cabo es e p oceso se emplean dicciona ios
en di e en es lenguas y an´alisis mo ol´ogicos sob e es as palab as, con el in de encon a su
simili ud con las palab as del dicciona io.
El S emming elimina los su ijos de las palab as, pe o no se debe con undi con la Le-
ma izaci´on, pues o que es e p oceso ex ae el su ijo de las palab as a endiendo a una lis a
con su ijos y p e ijos com´unmen e usados y aplicando sob e las palab as an´alisis mo ol´ogico.
Obse amos que no siemp e unciona co ec amen e en odas las ocasiones, ya que puede
de ec a como su ijo o p e ijo un conjun o de le as que pueden o ma pa e de la a´ız de la
palab a.
Jun o con es os p ocesos exis en o os que pe mi en elimina palab as de los ex os que
puedan en o pece la clasi icaci´on de los mismos. Uno de los m´as amosos es el S opwo d e-
mo al. El S opwo d Remo al [118] es un p oceso en el que se eliminan un se ie de palab as
sin signi icado alguno den o de una o aci´on, las palab as ac´ıas o s opwo ds. Son palab as
ampliamen e usadas que no con ienen un signi icado mayo a da le un sen ido de cons ucci´on
de las ases, son eliminadas a in de educi el ama˜no del ex o a analiza (lo que implica
meno p ocesamien o). Una g an can idad de biblio ecas NLP emplean es os p ocedimien os
casi de mane a in isible pa a el usua io.
11
CAP´
ITULO 3. MARCO TE´
ORICO Y ESTADO DEL ARTE
En la igu a 3.1 ilus amos un ejemplo de aplicaci´on de algunos de es os p ocesos.
Figu a 3.1: Compa aci´on en e Lemma iza ion y S emming
E aluaci´on de clasi icaci´on de ex os
Pa a pode e alua el desempe˜no de un sis ema de clasi icaci´on de ex os se emplean ma-
ices de con usi´on [45]. La ma iz de con usi´on es una abla que ep esen a los alo es
ob enidos en e a los alo es eales. En en a lo que el sis ema ha clasi icado en e a lo que
ealmen e es.
Como se puede e en la igu a 3.2, es un ma iz 2×2en la que las ilas ep esen an
los alo es p edichos po el algo i mo y las columnas los alo es eales de la clasi icaci´on (es
deci , los alo es que debe ´ıa p edeci ). Los alo es num´e icos que se si ua an en la ma iz
ep esen a ´ıan el n´ume o de mues as que han sido p edichas de una mane a en e a lo que
ealmen e son dependiendo de la posici´on en la que se si uase.
Poniendo como ejemplo de sis ema de clasi icaci´on de ex os el nues o, en el que se busca
econoce si un ex o es una denuncia o no, los alo es ep esen ados se ´ıan los siguien es:
Esquina supe io izquie da:
N´ume o de e dade os posi i os (VP), es deci , n´ume o de mues as que han sido p e-
dichas como denuncias y ealmen e lo e an.
Esquina supe io de echa:
N´ume o de alsos posi i os (FP), es deci , n´ume o de mues as que han sido p edichas
como denuncias e ´oneamen e.
12
CAP´
ITULO 3. MARCO TE´
ORICO Y ESTADO DEL ARTE
Figu a 3.2: Ma iz de Con usi´on
Esquina in e io izquie da:
N´ume o de alsos nega i os (FN), es deci , n´ume o de mues as que han sido p edichas
como no denuncias e ´oneamen e.
Esquina in e io de echa:
N´ume o de e dade os nega i os (VN), es deci , n´ume o de mues as que han sido
p edichas como no denuncias y han ace ado.
Cuan o mayo es sean los alo es de los e dade os posi i os y nega i os y meno es los de
los alsos posi i os y nega i os mejo es es ad´ıs icas posee ´a nues o algo i mo. A con inuaci´on
de alla emos cu´ales son las p incipales m´e icas, que se ob ienen a pa i de la ma iz de
con usi´on, pa a de e mina el desempe˜no de los sis emas de clasi icaci´on de ex o.
Exac i ud (accu acy)
Accu acy mide el po cen aje de mues as que ue on iden i icadas co ec amen e, es
deci e dade os posi i os y nega i os, en e odas las clasi icaciones.
Accu acy =V P +V N
V P +V N +F P +F N (3.1)
Es a m´e ica puede pa ece undamen al pe o no se usa en clasi icaci´on de ex os. La
az´on es que no es adecuada si el n´ume o de clases p edichas es muy dis in o en e si.
Po ejemplo, si nues o algo i mo p edije a un n´ume o de denuncias mucho meno que
13
CAP´
ITULO 3. MARCO TE´
ORICO Y ESTADO DEL ARTE
los que p edice como no denuncias el accu acy se ´ıa muy al o, pe o eso no signi ica ´ıa
que nues o algo i mo ue a capaz de econoce cu´ales son denuncias.
P ecisi´on (p ecision)
P ecision mide el po cen aje de mues as que el sis ema p edijo como posi i o y ue on
ealmen e posi i o, lo que se ´ıa el po cen aje de e dade os posi i os en e odos los
posi i os.
P ecision =V P
V P +FP (3.2)
Exhaus i idad ( ecall)
Recall mide el po cen aje de mues as que ue on co ec amen e iden i icadas po el
sis ema, es deci e dade os posi i os y nega i os.
Recall =V P
V P +FN (3.3)
Se ob iene di idiendo los e dade os posi i os en e la suma de e dade os posi i os
y alsos nega i os. De es a mane a cuan os m´as alsos nega i os haya meno se ´a la
m´e ica, lo que indica ´a que no es capaz de econoce qu´e no es una denuncia.
Medida F (F-measu e)
Ambos P ecision yRecall ep esen an la capacidad que iene el algo i mo pa a econoce
qu´e es una denuncia y qu´e no, al con a io que Accu acy. Sin emba go man ene ambos
alo es al os no es algo sencillo, pues o que cambia el algo i mo pa a aumen a la
P ecision implica que el Recall se esien a.
Su ´o mula iene dada po la siguien e exp esi´on:
Fβ=(β2+ 1)P·R
β2P+R(3.4)
Donde el pa ´ame o β ep esen a cu´al de ambas m´e icas pesa m´as en la alo aci´on.
Valo es mayo es a 1 a o ecen al Recall, mien as que los meno es a la P ecision. Po
ello F1es la m´as equilib ada y la m´as usada. Es a o mula se ob iene a pa i de una
media a m´onica en e el Recall y la P ecision. La az´on de usa la a m´onica en ez de
la a i m´e ica se debe a que la media a m´onica halla alo es m´as ce canos al m´ınimo de
los alo es sob e los que se halla que la a i m´e ica.
3.1.2.2. Web sc aping
Pa a u iliza las ´ecnicas de p ocesamien o de lenguaje na u al comen adas p e iamen e,
es necesa io dispone de g an can idad de da os. En muchas in es igaciones, es os da os se
ob ienen de dis in as edes sociales, ya que muchas de ellas p opo cionan una API pa a a-
cili a la in e acci´on con la in o maci´on de es as edes. Sin emba go, cuando los da os no se
14
CAP´
ITULO 3. MARCO TE´
ORICO Y ESTADO DEL ARTE
El uso de es a ´ecnica a o ece que muchas denuncias puedan hace se sin miedo a que
puedan se censu adas, eliminadas o epo adas pos e io men e. Las aplicaciones y p oyec os
desa ollados pa a el bien social, buscan un cambio sis ´emico hacia hacia una dis ibuci´on m´as
equi a i a de la oma de decisiones y bene icios ue a de la cadena de bloques. Adem´as, la
mayo ´ıa de las ecnolog´ıas blockchain son de c´odigo lib e, de es a mane a muchos m´as usua ios
pueden comp oba , audi a y comp ende odo el con enido del c´odigo y de los p o ocolos.
Es o es c ucial pa a explo a es a ecnolog´ıa, ya que es undamen al pa a el bene icio social,
comp oba la calidad de lo que es ´a codi icado, las a qui ec u as que se adop an y po ´ul imo
la segu idad que ienen. O o de los bene icios que iene po se open sou ce es que muchos
usua ios pueden cons ui y desa olla a pa i de abajos exis en es, y as´ı pe mi i a ances
en la democ a izaci´on de p oyec os blockchain.
Adem´as, hay o o incon enien e muy com´un hoy en d´ıa, es el ema de la p i acidad de
los da os. Cada ez m´as, di e en es emp esas cen alizadas almacenan nues os da os, pa a su
uso o en a. Po lo an o, o o de los obje i os de la blockchain, es ecupe a los con oles
democ ´a icos en la p oducci´on y uso de da os den o de las edes sociales. Es o se consigue
g acias a las ´ecnicas de c ip og a ´ıa, que o ecen ´unicamen e la in o maci´on necesa ia pa a
una de e minada in e acci´on digi al. La inalidad de odo es o es democ a iza cada ez m´as
odo con el paso de los a˜nos ap o echando es a ecnolog´ıa.
21

CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
Cap´ı ulo 4
Me odolog´ıa y ecnolog´ıas
4.1. Me odolog´ıa
An es de comenza el p oyec o, se c e´o el plan de abajo que se iba a segui du an e su
desa ollo. De es a o ma, pudimos de e mina c´omo se iba a ealiza la ges i´on de los ecu sos,
a ni el de iempo, humanos y ecnol´ogicos. Pa a ello esul ´o esencial es ablece la me odolog´ıas
que se iban a u iliza .
Dedicamos es a secci´on, po lo an o, a mos a las me odolog´ıas de dise˜no y so wa e
empleadas, haciendo especial hincapi´e en el uso de so wa e lib e. Adem´as, mos amos el plan
de abajo seguido y las con ibuciones al p oyec o de cada miemb o del equipo.
4.1.1. Me odolog´ıa de dise˜no y so wa e
El obje i o de de ini una me odolog´ıa e a el de pode es ablece un ma co de abajo
que nos pe mi iese es uc u a , plani ica y con ola odo el p oceso de dise˜no y desa ollo de
nues o p oyec o.
Elegimos segui un modelo de dise˜no inspi ado an o en el dise˜no cen ado en ac i idad
(DCA) como en el dise˜no cen ado en usua ios (DCU) [119]. Ambos o man pa e del dise˜no
cen ado en humanos [17], que iene como obje i o hace que los sis emas in e ac i os sean
usables y ´u iles pa a las pe sonas. Su di e encia eside en que el p ime o se cen a en la ac i-
idad que los usua ios pod ´an desa olla con la ecnolog´ıa, mien as que la segunda se cen a
en el usua io y sus necesidades. El dise˜no DCA basa sus undamen os e´o icos en la Teo ´ıa de
la Ac i idad [8], cuya es uc u a consis e en de ec a un mo i o, ealiza una in es igaci´on,
ejecu a un plan de abajo con olado y inaliza con una co ecci´on del mismo. Ac ualmen e,
aunque es un campo muy es udiado a ni el e´o ico, no se ha desa ollado un p oceso que pe -
mi a su implemen aci´on, po lo que suele u iliza se a ni el de modelo y no an o de desa ollo.
A di e encia del an e io , DCU s´ı que es ´a muy ex endido en dise˜no de aplicaciones. Es po
ello que exis e un p oceso cla amen e de inido que pe mi e su implemen aci´on; in es igaci´on,
ecogida de equisi os, dise˜no y e aluaci´on.
22
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
Nues o p oyec o, pa iendo de una mo i aci´on inicial (cap´ı ulo 1), buscaba implemen a
una se ie de a eas lle adas a cabo po un usua io gene al. Decidimos segui la es uc u a
del dise˜no DCU, pe o ocalizando la pa icipaci´on del usua io al inal del desa ollo. De es a
mane a, las ases iniciales pudie on cen a se en es udia el con ex o y las ac i idades que
que ´ıamos implemen a pa a cumpli con nues os obje i os. El p oceso, po lo an o, consis e
en cua o ases que se an i e ando has a ob ene el esul ado inal. Obse amos que no
necesa iamen e ienen que hace se odas las ases en cada i e aci´on, depende ´a del momen o
del p oyec o en el que se es ´e y los esul ados ob enidos has a en onces.
In es igaci´on: En ende el con ex o y las ca ac e ´ıs icas del usua io.
Requisi os: Es ablece equisi os que debe cumpli la aplicaci´on y modeliza la.
Dise˜no eimplemen aci´on: Dise˜na e implemen a las soluciones.
E aluaci´on: E alua las soluciones desa olladas.
Po o o lado, la me odolog´ıa so wa e u ilizada ha sido i e a i a einc emen al de o -
ma que, pa iendo de un m´ınimo p oduc o iable, pudi´esemos i a˜nadiendo uncionalidades.
De en e odas las me odolog´ıas ´agiles, noso os op amos po segui un modelo simpli icado
de sc um [104]. ´
Es e se ca ac e iza po ene i e aciones que du an 2-4 semanas (sp in s)
y euniones an o al p incipio como al inal de la misma. Cada i e aci´on, comienza con una
de inici´on de equisi os y obje i os, y e mina con una e aluaci´on de esul ados. De es a o ma,
se con ola, de o ma colabo a i a, la can idad y calidad de abajo que se a ealizando. Como
se e ´a m´as adelan e en el plan de abajo 4.1.3, comenzamos ealizando un sp in inicial que
pe mi i´o p epa a el p oyec o. El es o de sp in s con a on con euniones de seguimien o en las
que se comenzaba epasando y e aluando los obje i os del sp in an e io , y pos e io men e se
es ablec´ıan los del siguien e.
4.1.2. Me odolog´ıa de so wa e lib e
El p oyec o se ha desa ollado in en ando omen a el uso y c eaci´on de so wa e lib e. Es
po ello que no s´olo hemos in en ado u iliza ecnolog´ıas lib es, sino que ambi´en hemos esco-
gido licencias pa a el p oyec o que lo uesen. De es a mane a, nues o c´odigo es ´a disponible
pa a oda la comunidad open sou ce, pe mi iendo que an o du an e el p og eso del p oyec o
como al inal del mismo, cualquie pe sona sea lib e de usa , modi ica , dis ibui y publica
e siones modi icadas y mejo adas. El obje i o es consegui un c´odigo m´as segu o y man enible
a lo la go del iempo [69].
En nues o caso, hemos u ilizado Gi Hub pa a publica el c´odigo uen e y pa a pode a-
baja de o ma colabo a i a. El c´odigo es ´a bajo la licencia GNU Gene al Public License
3.0 [51]. Tomamos es a decisi´on po el ca ´ac e ´ı ico que posee, el cu´al ue za a que cual-
quie modi icaci´on del c´odigo enga que se dis ibuida con la misma licencia, omen ando y
expandiendo el uso de so wa e lib e.
23
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
El c´odigo uen e del p oyec o se puede encon a en el siguien e eposi o io de Gi hub:
h ps://gi hub.com/injus wee - g
De la misma mane a, pa a la dis ibuci´on de la memo ia y del con enido c eado en la
aplicaci´on web, hemos escogido una licencia C ea i e Commons A ibu ion 4.0 In e na-
ional [50], que pe mi e copia y dis ibui la ob a u ilizando la misma licencia (incluido el uso
come cial).
La aplicaci´on web del p oyec o se puede encon a en el siguien e enlace:
h ps://dashboa d- wi e .he okuapp.com/dashboa d
4.1.3. Plan de abajo
La plani icaci´on y o ganizaci´on del p oyec o se lle ´o a cabo u ilizando un diag ama de Gan .
Debido a la magni ud del p oyec o, es o nos pe mi i´o lle a un seguimien o de las a eas que
se iban ealizando y las dependencias exis en es en e ellas. Se puede obse a en la Figu a 4.1.
Figu a 4.1: Diag ama de Gan de la plani icaci´on
En p ime luga , se es ableci´o un pe iodo de abajo conjun o en e los 6 miemb os del
g upo. Es e pe iodo si i´o pa a ap ende algunas de las p incipales ecnolog´ıas que se iban
a u iliza ; Reac , Solidi y y la API de Twi e . Realizamos peque˜nos p oyec os que pusimos
en com´un y si ie on pa a a ianza concep os. Es o ga an iz´o que odo el equipo u iese los
conocimien os necesa ios pa a en ende pa es del p oyec o en las que no uese a abaja
24
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
di ec amen e.
A con inuaci´on, se lle ´o a cabo una ase de in es igaci´on y ecogida de equisi os,
que pe mi i´o de ini mejo el p oblema que que ´ıamos abo da con nues o TFG ( isibiliza si-
uaciones de p eca iedad labo al en luga es hispanohablan es) y c´omo´ıbamos a lle a lo a cabo.
Pos e io men e, di idimos el p oyec o en es bloques que abaja on en pa alelo en el
dise˜no y la implemen aci´on de la aplicaci´on. A pa i de es e momen o, u imos euniones
pe i´odicas en las cu´ales mos ´abamos nues o p og eso y ga an iz´abamos que los es bloques
uesen cohe en es. G acias a ellas pudimos ealiza un seguimien o ce cano y colabo a i o de
los obje i os que se iban cumpliendo. Inicialmen e, u ie on luga cada 2-4 semanas labo ables,
y al inal del p oyec o, cada 1-2. Explicamos, a g andes asgos, en qu´e consis i´o cada uno:
Bloque 1 (Recoge da os): Pablo I.F y Raquel P.G
Se enca g´o de la ecogida de da os, ob enidos a a ´es de la API de Twi e , y del
ca ego izaci´on de los mismos, pa a ga an iza que uesen denuncias labo ales.
Bloque 2 (Gua da da os): Robe o A.L y Juli´an M.B
Se enca g´o de ecoge los da os p opo cionados po el bloque an e io y almacena los en
la blockchain. Tambi´en se enca g´o de hac´e selos llega al siguien e bloque.
Bloque 3 (Mos a da os): Ja ie M.M y ´
Angela R.R
Se enca g´o de mos a los da os ob enidos en un dashboa d. Adem´as, ges ion´o los accesos
a la blockchain y c´omo alimen a a la p´agina web.
Finalmen e, se es ableci´o un pe iodo que si i´o pa a uni ica el p oyec o y alcanza un
m´ınimo p oduc o iable. A pa i de es e momen o, se ealiza on mejo as sob e el mismo.
El p oyec o e min´o con una e aluaci´on de esul ados que si i´o pa a plan ea los posibles
abajos u u os. Adem´as, du an e los ´ul imos meses, se documen ´o el p oyec o.
4.1.4. Con ibuciones al p oyec o
Finalmen e, u ilizamos es a secci´on pa a mos a el abajo ealizado po cada miemb o
del g upo. Comenzamos iendo c´omo se ha o ganizado y edac ado la memo ia.
Es uc u a de la memo ia, desc ipciones de las secciones y e isi´on inal: ´
Angela y Ja ie
0.Resumen y abs ac : ´
Angela y Robe o
1. In oducci´on: ´
Angela
2. In oduc ion: ´
Angela
3. Ma co e´o ico y es ado del a e
3.1 Ma co e´o ico
25
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
3.1.1 Redes sociales y o ganizaci´on social: Ja ie
3.1.2 An´alisis de lenguaje na u al: Pablo
3.1.3 Web Sc aping: Raquel
3.1.4 Blockchain como ecnolog´ıa descen alizada: Robe o
3.2 Es ado del a e: Ja ie yRobe o
4. Me odolog´ıa y ecnolog´ıas
4.1 Me odolog´ıa
4.1.1 Me odolog´ıa de dise˜no y so wa e: ´
Angela
4.1.2 So wa e lib e: Ja ie
4.1.3 Plan abajo: ´
Angela
4.1.4 Con ibuciones: Todos
4.2 Tecnolog´ıas: Todos
5. T abajo p e io: ´
Angela y Ja ie
6. In es igaci´on y ecogida de equisi os: ´
Angela y Ja ie
7. Dise˜no e implemen aci´on
8.1 Bloque 1: Pablo y Raquel
8.2 Bloque 2: Juli´an y Robe o
8.3 Bloque 3: ´
Angela y Ja ie
8. A qui ec u a
9.1 Bloque 1: Pablo y Raquel
9.2 Bloque 2: Robe o y Juli´an
9.3 Bloque 3: ´
Angela y Ja ie
9. E aluaci´on
10.1 E aluaci´on usua ios: ´
Angela y Ja ie
10.2 E aluaci´on an´alisis lenguaje na u al: Pablo y Raquel
10. Conclusiones y abajo a u u o:
11.1 Conclusiones: ´
Angela y Robe o
11.2 T abajo a u u o: Todos
11. Conclusions and u u e wo k: ´
Angela
A con inuaci´on, cada miemb o del equipo desa olla en p o undidad su apo aci´on al p o-
yec o y el abajo que ha ealizado.
26

CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
Robe o Asunci´on L´opez
Al inicio del p oyec o, comenc´e a indaga sob e la ecnolog´ıa blockchain, ya que desde el
momen o en que eleg´ı ealiza es e abajo me pa eci´o un campo muy inno ado y con mucha
p oyecci´on de ca a al u u o. Pos e io men e, ech´e un is azo a algunas edes sociales como
Twi e e Ins ag am, pa a e c´omo es aba la si uaci´on sob e injus icias en el en o no labo al.
De es a mane a me hice una lige a idea de como pod´ıamos da le isibilidad a es e p oblema.
Despu´es de la p ime a euni´on pac amos ealiza es peque˜nas p ´ac icas, una pa a ap ende
Reac , o a pa a Solidi y y po ´ul imo, una pa a la API de Twi e . Aco damos es o pa a que
cada miemb o pudie a e que pa e le gus aba m´as o con cu´al en´ıa un mejo desempe˜no. La
p ime a p ´ac ica que ealic´e ue la de Solidi y, la cual consis ´ıa en hace un peque˜no so eo
de lo e ´ıa. Adem´as hice un peque˜no cu so en la p´agina web ”Udemy”, pa a ap ende es e
lenguaje. Pos e io men e hice la pa e de Reac , cuyo obje i o e a hace una lis a de a eas.
´
Es a a ea me cos ´o mucho ya que no me adap aba a Reac y lo no aba muy con uso, adem´as
me lle ´o bas an e iempo y no pude ealiza la ´ul ima p ´ac ica. La pa e que m´as me gus ´o y
la que mejo se me daba ue sin duda la de Solidi y.
A con inuaci´on de que odos e min´asemos las p ´ac icas nos di idimos el p oyec o en es
g upos de dos pe sonas cada uno. Los dos p ime os g upos, se cen aban en el back-end de
la aplicaci´on y el ´ul imo, se ocupaba del on -end. El p ime g upo in eg ado po mis com-
pa˜ne os Pablo y Raquel, se some i´o a abaja con la API de Twi e y as´ı ob ene denuncias.
El segundo g upo, el cual pa icip´e jun o con mi compa˜ne o Juli´an, se enca gaba de ecoge
los da os que la pa e de Twi e ecog´ıa, y los almacenaba en la blockchain in e ac uando
median e un con a o in eligen e. Po ´ul imo, la pa e de Reac , in eg ada po ´
Angela y Ja ie ,
se ocup´o de ob ene las denuncias de la blockchain y mos a las a a ´es de una p´agina web
median e es ad´ıs icas, g ´a icas, wo dclouds, e c.
Una ez u imos la euni´on donde nos di idimos las pa es. Juli´an y yo comenzamos a
desa olla un sma con ac muy simple, que almacenaba (ge ) y de ol ´ıa una a iable (se )
y as´ı pode p oba las unciones del con a o desde ue a de es e. Una ez en´ıamos el con a o
nos su gi´o la duda de c´omo pod´ıamos desplega lo en edes de p ueba, ya que c e´ıamos que
desde Remix no se pod´ıa. Empezamos a usa la he amien a T u le pa a desplega el con a o
e in e ac ua con ´el. Debido a la can idad de p oblemas que nos daba u iliza es a he amien a,
pensamos en o as al e na i as. Finalmen e op ´e po u iliza el mismo Remix, ya que descub ´ı
que daba la posibilidad de desplega lo en a ias edes de p ueba. Me enca gu´e de c ea una
cuen a de Me amask asociada al p oyec o y de in oduci e he s de p ueba pa a ope a en
la ed de Rops en. Adem´as de es o u ilic´e In u a como in aes uc u a pa a las llamadas al
con a o. Median e Remix u ilizaba el ABI gene ado al compila el sma con ac , pa a c ea
un a chi o JSON y a˜nadi lo al p oyec o. A con inuaci´on de es o me ocup´e de documen a me
bien sob e la biblio eca ”web3” pa a in e ac ua con el con a o e ins ancia lo. Tu e bas an-
es p oblemas a la ho a de llama a las unciones del con a o ya que dependiendo de c´omo
es u ie a p og amado, se llamaban de una mane a o de o a. Pa a las unciones que ue an
” iew” en´ıa que a˜nadi ‘call‘ y pa a las que no lo ue an, en´ıa que a˜nadi ‘send‘ jun o con
un pa ´ame o ‘ om‘ con la di ecci´on de la bille e a de me amask que u iliz´abamos pa a el
27
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
aspaso de e he s. Finalmen e log ´e ealiza la conexi´on con el con a o y llama as´ı a sus
unciones de o ma co ec a.
A con inuaci´on despu´es de o a euni´on con nues os u o es, nos dimos cuen a de que
necesi ´abamos una pla a o ma pa a almacena las denuncias. Gua da an as denuncias en un
sma con ac e a in iable. Despu´es de in es iga di e en es opciones op amos po u iliza
IPFS pa a gua da la in o maci´on de los wee s.
El siguien e paso a ealiza ue el desa ollo de una API pa a que nues os compa˜ne os
pudie an in e ac ua con noso os m´as ´acilmen e. Op amos po usa “Exp ess“ y ealic´e dos
peque˜nos m´e odos GET y POST. El m´e odo GET de ol ´ıa un a ay simple con es wee s de
p ueba que cog´ı de ejemplo. El m´e odo POST simplemen e a˜nad´ıa un ‘hola mundo‘ a la API.
Despu´es enlac´e el c´odigo de la API con la pa e que in e ac uaba con el con a o (“Web3“) y
uncionaba de o ma co ec a sin p oblemas de dependencias. El p oblema su gi´o cuando enlac´e
la API con la pa e de IPFS que mi compa˜ne o Juli´an ealiz´o. Apa ecie on nume osos e o es
muy con usos que nos imped´ıan p og esa en el p oyec o. Me lle ´o mucho iempo in es iga
de donde en´ıan es os p oblemas y inalmen e descub ´ı que e an po emas de dependencias
y e siones de las lib e ´ıas. Despu´es de una euni´on con uno de nues os u o es, a egl´e el
p oblema ac ualizando odas las lib e ´ıas y bo ando la cach´e de npm (NodePackageManage)
y del p oyec o. Resol e es e p oblema ue c ucial ya que es u imos muchos d´ıas in en ando
soluciona lo y nos alen iz´o mucho las a eas.
Una ez en´ıamos la API enlazada con “Web3“ y con IPFS empec´e a mejo a el sma
con ac po mi cuen a pa a que u ie a las unciones que ealmen e necesi ´abamos. A˜nad´ı
es uc u as pa a almacena los hashes de uel os po IPFS y pa a almacena los iden i icado es
de los wee s. Adem´as ag egu´e unciones adicionales pa a inse a hashes e iden i icado es,
y o a pa a de ol e los. Aunque inalmen e u ilizamos el con a o que mi compa˜ne o Juli´an
implemen ´o. P obamos pa a comp oba su co ec o uncionamien o.
Despu´es de que u i´e amos el con a o modi icamos los m´e odos POST y GET de la API
pa a que u ie an el compo amien o eal. El m´e odo GET ue modi icado pa a que de ol ie-
se los hashes de los iche os almacenados en el con a o y con cada uno de ellos ob ene la
in o maci´on de las denuncias de IPFS. M´as a de mi compa˜ne o se enca g´o de comp oba que
es u ie an ac ualizados. Si no es aban ac ualizados se enca gaba de hace lo. Po o o lado el
m´e odo POST lo modi icamos pa a que subie a el con enido de las denuncias a la API y a
IPFS, adem´as almacenaba el hash de uel o po es e ´ul imo en el con a o.
Pos e io men e nos su gi´o o o p oblema. La API que desa ollamos es aba ges ionada de
o ma local en nues o o denado . Nues os u o es nos aconseja on que u iliz´asemos una pla-
a o ma pa a man ene lo, ya que en local no e a iable. Nos pusimos manos a la ob a. Pens´e en
nume osas opciones ales como “Amazon Web Se ices (AWS)“, “Google Cloud“, “He oku“,
e c. Finalmen e, nos ecomenda on “he oku“ y me pus´e a implemen a lo con nues o p oyec o.
Me c e´e una cuen a de he oku y despu´es de a ias gu´ıas de ins alaci´on log ´e enlaza lo con
28
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
nues a aplicaci´on. Asimismo su gie on e o es a la ho a de subi nues o c´odigo a “He oku“,
ya que no unciona de la misma mane a que ene la aplicaci´on en local. Ins al´e algunas de-
pendencias m´as que la aplicaci´on eque ´ıa y pude soluciona es os e o es. Una ez hecho es o,
Juli´an y yo pod´ıamos subi nues a aplicaci´on al se ido de “He oku“ e ´ıbamos ac ualiz´andolo
seg´un co eg´ıamos y a˜nad´ıamos uncionalidades.
Los ´ul imos d´ıas, conside ando que ya en´ıamos el p oyec o casi e minado nos p eocupa-
mos de obse a y soluciona e o es que su g´ıan cuando enlaz´abamos odas las pa es de la
aplicaci´on. Tu imos algunos p oblemas debido a que algunos wee s no se sub´ıan a la API de
la o ma co ec a. Pe o, buscamos soluciones y Julian los sol en ´o. Tambi´en u imos el incon-
enien e de que nos es ´abamos quedando sin e he s de p ueba, debido a que la ed de Rops en
inc emen ´o el cos e en gas. Tu e que a e igua qu´e p´aginas suminis aban es os okens, ya
que muchas de las p´aginas que usamos al p incipio ya no es aban ope a i as. Po ´ul imo me
cen ´e bas an e en edac a mis pa es de la memo ia, pa es gene ales y la g an mayo ´ıa de
las pa es de blockchain, as´ı como de man ene muchas euniones con el es o de compa˜ne os
pa a asegu a nos de que odo iba po buen camino. Tu imos un p oblema de ´ul ima ho a,
ya que la ed de Rops en empez´o a ene can idades deso bi adas de gas pa a ejecu a las
ansacciones. Me ocup´e de cambia la ed a Rinkeby y desplega el con a o en ´es a jun o
con mi compa˜ne o Juli´an.
Pablo Imbe Fe n´andez
Una ez con i mamos nues a pa icipaci´on en es e p oyec o decid´ı in es iga de los len-
guajes que ´ıbamos a u iliza , ya que me in e esaba p og ama en un lenguaje nue o que ue a
ampliamen e u ilizado. Habi´endonos asignado una se ie de p ´ac icas pa a pode ene una
isi´on m´as global del p oyec o, ealic´e la p ´ac ica de Blockchain y de Reac , la p ´ac ica de
Twi e no pude ealiza la po al a de iempo. Inicialmen e es aba m´as in e esado en la pa e
de Reac , a pesa de habe encon ado di icul ades sab´ıa que e a un amewo k bas an e usado,
o la pa e de Blockchain, que ue la que p ime amen e me a ajo al p oyec o. Sin emba go,
al habe u ilizado an e io men e Py hon conjun amen e con la API de Twi e en una asig-
na u a del g ado, Raquel y yo decidimos enca ga nos de la pa e de ecolecci´on de da os, ya
que pensamos que as´ı aho a ´ıamos iempo y pod ´ıamos ayuda al es o de bloques. Tiempo
despu´es descub imos que no pod ´ıamos ayuda en o as pa es del p oyec o, dada la longi ud
de nues o bloque.
Inicialmen e desa ollamos un peque˜no p o o ipo con el que pode u iliza las unciona-
lidades de la API de Twi e , empleamos dis in as ecnolog´ıas ecu en es en el campo de
NLP ( okeniza ion, lemma iza ion, sen imen analysis). La c eaci´on del dicciona io a pa i de
publicaciones de Ins ag am usando la API de Ins ag am, as´ı como la ob enci´on de sus es ad´ıs i-
cas ue on ealizadas en su mayo ´ıa po mi compa˜ne a Raquel, debido a que po p oblemas
de lib e ´ıas no ui capaz de ejecu a el c´odigo, po lo que mi pa icipaci´on es u o suje a a
que Raquel pudie a compa i pan alla y ayuda la en lo posible. Sin emba go las decisiones o-
madas sob e las palab as que con o ma on el dicciona io inal ue on ealizadas conjun amen e.
29
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
T as ene cie os p oblemas con la e elaci´on de okens de Twi e y cuen as y con a-
se˜nas de Ins ag am en Gi hub inco po ´e una se ie de modi icaciones al c´odigo, con el obje i o
de man ene los a sal o. Pa a ello ag eg´e un sis ema de manejo de okens basado en a chi os
.en , los cuales no son subidos a Gi hub g acias a la c eaci´on de un a chi o .gi igno e (que
pe mi e igno a cie os a chi os). En el caso de la cuen a de Ins ag am ag eg´e un manejo de
cla es que empleaba el key ing del sis ema Linux (lla e o).
Una ez el dicciona io ue e minado, e omamos el desa ollo de la in e acci´on con el
API de Twi e . T as de ec a cie os p oblemas pa a ecoge el his ´o ico de da os, decidimos
emplea la lib e ´ıa de weepy pa a ecoge los wee s a iempo eal. En mi caso dediqu´e una
g an can idad de iempo a la pues a en ma cha del Lis ene , as´ı como consegui que ob u ie a
los campos necesa ios de cada wee . Pa a pode hace que unciona a co ec amen e oda la
l´ogica del p og ama, ue necesa ia la inco po aci´on de una Base de da os de Mongo, as´ı como
su conexi´on desde el c´odigo. Es a pa e ue desa ollada po mi, p ime amen e en local y m´as
a de con un se ido en la nube.
T as desca a u iliza la API de Twi e pa a la ecolecci´on de da os con cie a an ig¨uedad,
nues o codi ec o nos sugi i´o emplea un Sc ape Web,snsc ape. El c´odigo de es a nue a mo-
dalidad ue desa ollado a pa i del exis en e po mi compa˜ne a.
Pa alelamen e a ´e de subi nues os c´odigos a los se ido es de He oku. Sin emba go,
y as muchos in en os, no conseguimos inco po a el c´odigo al se ido . Se nos ocu i´o la
idea de u iliza los amosos se ido es de Amazon Web Se ices, po lo que c e´e una cuen a
s uden pa a pode u iliza las ins ancias EC2, desde la que pode ejecu a nues o c´odigo.
La pues a en uncionamien o supuso una g an can idad de iempo, debido a las di icul ades
que p esen aban la ins alaci´on de la e si´on de Py hon con la que hab´ıamos desa ollado odo
el p oyec o y la can idad de e o es de lo m´as a iopin os po la ins alaci´on de lib e ´ıas y sus
dependencias. Tambi´en ue necesa io modi ica las eglas de conexiones HTTP, HTTPS ySSH
pa a ob ene los da os del API de Twi e y , pos e io men e, la BDD. Debido a los ecu sos
limi ados de las ins ancias que u ilizamos, pensamos en deja de usa una base de da os local,
po lo que lle ´e a cabo la mig aci´on de MongoDB aMongoDB A las, cuyo se ido ambi´en
es p opo cionado po AWS. Todo es o supuso cambia la di ecci´on de la BDD a la que se co-
nec aba el c´odigo, jun o a la c eaci´on de usua ios, habili aci´on de IP´s y dem´as. Es necesa io
menciona que con ´e con la ayuda de mi compa˜ne a du an e odo es e p oceso.
El m´e odo de ejecuci´on de la API, p opo cionada po el equipo de Blockchain, desde Py hon
ue desa ollada conjun amen e con mis compa˜ne os Raquel y Juli´an. La pues a en unciona-
mien o en los se ido es ue ealizada p incipalmen e en e Juli´an y yo.
Tambi´en ha habido a ias modi icaciones y soluciones de e o es en el c´odigo que han sido
ealizadas an o po Raquel, como po m´ı, pe o su poca impo ancia en el uncionamien o
gene al del p og ama implica su no menci´on en es a secci´on de la memo ia.
30
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
pues as simila es con peque˜nas modi icaciones que decid´ı ealiza pa a pone a p ueba mis
conocimien os.
La siguien e ecnolog´ıa que aba qu´e ue la aplicaci´on pa a c ea y elimina lis as de Reac .
Ya que es a ecnolog´ıa es ´a en auge, decid´ı dedica le el mayo iempo, in es igando dis in as
o mas de ealiza la, leyendo una ex ensa bibliog a ´ıa y isualizando a ios u o iales.
Finalmen e, como p epa aci´on pa a la pa e de la API de Twi e , conside ´e lo m´as impo -
an e en ende qu´e ipo de denuncias se pod ´ıan encon a en es a ed social. Pa a ello, ealic´e
una b´usqueda exhaus i a sob e hash ags con denuncias, como po ejemplo sob e denuncias en
el sec o a ´ıs ico d´onde les hab´ıan obado sus dise˜nos. De es a pa e saqu´e en cla o que ipo
de ocabula io e ´ıamos m´as adelan e du an e el desa ollo.
Una ez adqui idos unos conocimien os que conside amos base, ealizamos la di isi´on del
abajo. Pablo y yo nos enca ga ´ıamos de la pa e de ecolecci´on de da os, pues ya hab´ıamos
abajado con an e io idad con la API de Twi e y c e´ıamos que es ´a amilia idad nos ayuda ´ıa
a ealiza lo de mane a m´as e ec i a y nos pe mi i ´ıa ayuda al es o de compa˜ne os con o as
pa es del p oyec o.
M´as adelan e nos dimos cuen a que al a a se es ´a pa e del mo o del abajo, eque i ´ıa
una can idad de abajo que no pudimos p e e . Es o se debe a que, si el algo i mo pa a ecoge
denuncias no e a e icien e o si an o el con enido como la o ma en la que lo que almacen´aba-
mos c eaba cualquie disco dancia, a ec a ´ıa di ec amen e a la iabilidad del p oduc o inal.
Po eso, lo p ime o que hice ue in es iga sob e dashboa ds ywo dclouds. Es o iene im-
po ancia po que al se una ecnolog´ıa que sab´ıa que mis compa˜ne os del on -end iban a usa ,
que ´ıa conoce que ipo de in o maci´on pod ´ıan necesi a y en que o ma o pa a que Pablo
y yo pudi´e amos p og ama de o ma e icien e. De es e modo, p e end´ıamos e i a cambios
mayo es una ez u i´e amos el algo i mo ya a anzado.
Tan o Pablo como yo hemos ealizado el abajo p ´ac icamen e de o ma conjun a, pues
siemp e que e a posible qued´abamos pa a ayuda nos ya ue a con la esoluci´on de bugs o pa a
compa i nues os a ances. Sin emba go, s´ı hay algunas dis inciones sob e qu´e hizo cada uno.
Nues o p ime abajo ue la b´usqueda de un co pus de denuncias en Twi e . Como
hab´ıamos acla ado con nues o codi ec o ´ıbamos a usa una cuen a de Twi e llamada mie -
daJobs pa a ex ae los wee s, ealiza el an´alisis de sen imien os y c ea el dicciona io.
El p ime p oblema con el que nos encon amos ue e que la mayo ´ıa de usua ios u iliza-
ban im´agenes pa a compa i con e saciones u o o ipo de con enido mul imedia que e´ıan
ele an es. Nues a p ime a idea pa a soluciona lo ue, median e el uso de lib e ´ıas de eco-
nocimien o de ex o en im´agenes, lee las con e saciones de las o os pa a despu´es ealiza
el sen imen analysis del ex o en e o. Es a pa e la ealic´e p incipalmen e yo con el apoyo
37

CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
con inuo de mi compa˜ne o, pues po p oblemas ´ecnicos de dependencias en e lib e ´ıas que
e an necesa ias, a ´el le esul aba imposible ejecu a el c´odigo en su po ´a il. Nues a o ma de
abaja consis ´ıa en compa i mi pan alla mien as ´el me iba comen ando posibles mejo as o
e o es en el c´odigo.
Nos dimos cuen a p on o de la in iabilidad de hace es o, pues el ex o del wee sol´ıa
se i ´onico y po que las con e saciones con en´ıan ca ac e es que no e minaban de econoce
bien. Po es o, hablando con nues o codi ec o , llegamos a la conclusi´on de pasa a la API de
Ins ag am pues encon amos una cuen a con denuncias eales de m´ul iples usua ios sob e dis-
in as emp esas. De es a pa e ambi´en me enca gu´e yo p incipalmen e po los mo i os ci ados
an e io men e. Aqu´ı hubo una cu a de ap endizaje pa a en ende como uncionaba la API de
Ins ag am, pe o una ez hecho es e abajo, ex ajimos un g an n´ume o de publicaciones y
c eamos el dicciona io a pa i de la ecuencia con la que se usaba cada palab a en cada ex o.
Como que ´ıamos que el dicciona io ue a lo m´as iel a la ealidad, limpiamos los ex os de
ca ac e es especiales, hicimos s emming ylemma iza ion adem´as de limpia nomb es p opios
de emp esas. Despu´es ambos limpiamos bien el dicciona io, ealizando de o ma conjun a las
es i e aciones pa a e cual se ´ıa nues o dicciona io inal. Una ez nues o codi ec o nos dio
el is o bueno, comenzamos a calcula si ´es e e a o no e icaz. Po eso, busqu´e a ios co pus
de ama˜nos simila es a las publicaciones que no hab´ıamos llegado a ex ae y saqu´e la ma iz
de con usi´on adem´as de a ias m´e icas que nos hicie on e que el algo i mo uncionaba.
Una ez ealizado es e abajo, ol imos a Twi e . Lo p ime o que in en ´e lle a a cabo
ue on consul as a la API, pe o es as de ol ´ıan un peque˜no n´ume o de denuncias y de una
an ig¨uedad m´axima de una semana. Po eso, mi compa˜ne o Pablo decidi´o cen a se en in es-
iga como uncionaban los Lis ene s pa a pode ecoge wee s en S eaming.
En es a pa e se cen o p incipalmen e ´el, pues yo es aba eniendo p oblemas con mi acceso
a la API de Twi e as ealiza demasiadas pe iciones con el p ime m´e odo. Tambi´en se en-
ca g´o ´el de conec a el algo i mo a MongoDB, p ime o de o ma local, que me ense˜no adem´as
a m´ı a u iliza , pa a que pudi´e amos ejecu a los dos el c´odigo con dis in as echas y ecoge as´ı
m´as denuncias. Es o mismo lo ealiz´o luego en MongoDB A las, que ges ion´o ´el con sus cla es.
Yo en es ´a pa e se ´ı p incipalmen e de apoyo pa a la esoluci´on de e o es que iban apa-
eciendo a cada paso. Una ez mon amos es o, imos que ecog´ıamos muy pocas denuncias,
po lo que hablando con el codi ec o decidimos hace uso de sc ape s pa a ecoge el his ´o ico
de wee s, ya que median e la API de Twi e no en´ıamos acceso al mismo.
De es a pa e me enca gu´e p incipalmen e yo, pues mi compa˜ne o es aba empezando a
es udia c´omo pod ´ıamos subi lo a un se ido de o ma g a ui a. El mayo p oblema que
se nos p esen aba e a que muchas de las e siones de p ueba solo pe mi en el uso de un
hilo y, po el dise˜no del s eaming, ya se usaban dos. De odas o mas, mi compa˜ne o es u-
o ayud´andome siemp e que le necesi ´e pa a esol e dudas, ya ue an de concep o o de c´odigo.
38
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
Finalmen e u ilizamos AWS. Pa a subi lo aqu´ı, mi compa˜ne o dedic´o una g an can idad
de iempo, pues al u iliza una ins ancia con una e si´on an igua de Debian hubo muchos
p oblemas de incompa ibilidades ya ue a con Py hon o con dis in as conexiones. ´
El u o que
ealiza un g an abajo de in es igaci´on pa a que unciona ´a.
Ya que en´ıamos que u iliza una misma cuen a y pa a AWS se u ilizan los da os banca ios,
c e´ımos que e a mejo si solo uno usaba la cuen a. Po eso, yo en es a pa e me dediqu´e a
obse a y ayuda a mi compa˜ne o cada ez que encon aba alg´un allo que lle aba mucho
iempo. Adem´as, hubo muchos p oblemas con el se ido pa a la habili aci´on de pue os y
de IPs. En es os allos pude ayuda m´as a mi compa˜ne o, pues po emas de abajo es aba
amilia izada con es e ipo de e o es.
Lo ´ul imo que hemos enido que ealiza ue la API pa a conec a nos con el g upo de
Blockchain. Juli´an nos paso el c´odigo a Pablo y a m´ı y hemos enido que in es iga como
implemen a lo. Hemos pasado mucho iempo los es in en ando soluciona cada e o que iba
su giendo y iendo como pod´ıamos conec a la con Py hon. Adem´as, ha lle ado mucho iempo
en ende po que uncionaba en local y no en el se ido , o po que uncionaba al ealiza la
llamada a la API desde la e minal pe o no desde el c´odigo. Es a ul ima pa e nos ha lle ado
incon ables ho as a cada uno, yo in en ado a e igua como hace que unciona a en local,
Pablo in en ´andolo en el se ido , y Juli´an es udiando los logs que de ol ´ıa pa a e que pod´ıa
es a allando y debuggea as´ı el c´odigo.
Cabe menciona ambi´en el g an abajo de in es igaci´on pa a cada una de las ecnolog´ıas
que usamos adem´as del iempo dedicado a la esoluci´on de e o es o de incompa ibilidades
en e las dis in as lib e ´ıas y m´odulos. Es o ue ealizado po los dos po igual.
´
Angela Ruiz Ribe a
Comenc´e de iniendo, jun o con el es o de mis compa˜ne os, el obje i o que iba a pe segui
nues o TFG, y c´omo ´ıbamos a lle a lo a cabo. Pa a ello, busqu´e in o maci´on sob e inicia i as
que a asen emas de injus icia labo al (Sma ,#Figh Fo 15...), y pa icip´e ac i amen e en la
plani icaci´on ealizada. En pa icula , du an e el desa ollo del p oyec o, me enca gu´e de lle a
ac a de las euniones que en´ıan luga y o ganiza las sesiones pa a que se a asen odos los
emas y se ijasen obje i os.
A con inuaci´on, dediqu´e un pe iodo de iempo a ap ende sob e los es campos en los
que´ıbamos a abaja ; desa ollo web, blockchain y an´alisis de lenguaje na u al. Desa oll´e una
aplicaci´on en Reac que pe mi ´ıa c ea y elimina lis as de a eas. Es o me pe mi i´o amilia-
iza me con ja asc ip ,CSS yHTML. Adem´as, ap end´ı los dos pa adigmas de p og amaci´on
en Reac ; los componen es clase usados an iguamen e y los uncionales, in oducidos en la
e si´on 16.8. Po o o lado, implemen ´e un Sma Con ac usando Solidi y yRemix que
imi aba una lo e ´ıa. Nunca an es hab´ıa usado dicha ecnolog´ıa, po lo que dediqu´e la mayo
39
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
pa e del iempo a documen a me. Finalmen e, le´ı e hice un epaso de concep os elacionados
con an´alisis de lenguaje na u al. Todo ello lo puse en com´un con mis compa˜ne os con el in
de a ianza concep os. G acias a es e abajo, c eamos una base de conocimien o que nos
pe mi i´o en ende pa es del p oyec o en las que no ´ıbamos a abaja de o ma di ec a.
Llegados a es e pun o, decidimos dis ibui nos el abajo en unci´on de los es campos que
he mencionado con an e io idad. Un g upo se enca g´o de la ecogida de da os con an´alisis de
lenguaje na u al, o o del almacenaje de los mismos usando ecnolog´ıas dis ibuidas y, inalmen-
e, un ´ul imo en dise˜na y cons ui el on end de la aplicaci´on. Po lo an o, a pa i de es e
momen o, abaj´e jun o con Ja ie Mule o Ma ´ın en el desa ollo del on end de la aplicaci´on.
Dediqu´e una ase de abajo a in es iga y de ini equisi os, ya con el obje i o del TFG
de e minado (implemen a una p´agina web que mos ase da os sob e si uaciones de p eca ie-
dad labo al, sin censu a y en o ma de dashboa d). Es o me pe mi i´o en ende mejo al usua io
obje i o, as´ı como el ipo de da os que que ´ıamos mos a y las ca ac e ´ıs icas que deb´ıa ene
nues a aplicaci´on.
Pos e io men e, comenzamos con las ases de dise˜no e implemen aci´on, que ocupa on la
mayo pa e del p oyec o. Dise˜namos boce os que ue on inc emen ando su g ado de idelidad
(en papel y Balsamiq), a la ez que ap end´ıamos sob e desa ollo web. C ee un p oyec o en
Reac en el que u´ı p obando dis in as lib e ´ıas de isualizaci´on g ´a ica ( echa s, isx oni o)
y dise˜no web (Boo s ap,Ma e ial UI...). Adem´as, haciendo uso de plan illas y bibliog a ´ıa,
p o undic´e mis conocimien os sob e en u amien o den o de una p´agina, componen es uncio-
nales y uso de Hooks. Todo ello lo puse en com´un con Ja ie , qui´en compa i´o conmigo las
p uebas que hab´ıa ealizado ´el.
Una ez es ablecido el dise˜no inicial, y omando como e e encia una plan illa, ealizamos
la p ime a implemen aci´on del dashboa d. Cabe des aca que la mayo pa e del desa ollo que
hicimos a pa i de es e momen o ue conjun o, haciendo uso de la he amien a Li eSha e de
Visual S udio Code, que nos pe mi ´ıa abaja en el mismo p oyec o en iempo eal.
El p ime p oduc o que c eamos con aba con los siguien es componen es; 4 a je as pa a
mos a o ales, 1 wo dcloud, 2 a je as pa a mos a ankings, 1 isualizado de wee s, 1
g ´a ica empo al y 1 l´ınea de iempo de doble eje. La es uc u a del p oyec o, y los 4 compo-
nen es de o ales, los implemen amos jun os. El es o, los epa imos equi a i amen e. Yo me
enca gu´e del wo dcloud, un anking y la l´ınea de iempo. Pa a comp oba su uncionamien o,
u ilizamos un iche o de da os de p ueba. Pos e io men e, dichos componen es su ie on mo-
di icaciones en las que pa icipamos an o Ja ie como yo.
El siguien e paso, ue e c´omo ob ene los da os que es aba almacenando o o g upo en
IPFS. En ese momen o, nos dimos cuen a de que dichos accesos pod´ıan esul a muy cos osos,
po lo que decidimos cons ui una base de da os que uncionase como una ”memo ia cach´e”.
Es deci , es a BBDD se ac ualiza ´ıa cada dos d´ıas con da os de IPFS y se ´ıa la enca gada de
40
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
p opo ciona in o maci´on a la p´agina web. Po lo an o, a pa i de es e momen o, comenzamos
a desa olla es p oyec os en pa alelo; la p´agina web (dashboa d- wi e ), uno enca gado de
hace consul as a la BBDD (cache- wi e ) y un ´ul imo enca gado de ac ualiza la con da os
de IPFS (upda e-cache- wi e ).
La BBDD decidimos ene la en MongoDB A las. Implemen amos el p oyec o (cache-
wi e ) pa a que, haciendo uso de exp ess.js, pudiese conec a se con ella y ealiza consul as.
Dediqu´e un pe iodo de iempo a ap ende y amilia iza me con dichas ecnolog´ıas, pa a lo cu´al
ue on de especial u ilidad los manuales de MongoDB. En es e momen o, dimos uncionalidad
a un nue o componen e en el dashboa d; los il os po echa. Ap end´ı c´omo ealiza e imple-
men ´e consul as il adas a la BBDD, as´ı como pe iciones HTTP que pe mi iesen conec a los
p oyec os. Adem´as, p o undic´e mi conocimien o en el Hook UseCon ex , lo cu´al me pe mi i´o
u iliza lo pa a da uncionalidad a los il os que a ec aban a odos los componen es de la
p´agina web.
Po o o lado, implemen amos el sc ip (upda e-cache- wi e ) pa a que llamase a la un-
ci´on ge de la API c eada po el o o g upo, y ob ene as´ı los da os de IPFS. Es e sc ip se
enca ga de acia la ”memo ia cach´e” y me e los da os ac ualizados. Po lo an o, en ese
momen o, implemen ´e las llamadas HTTP al p oyec o cache- wi e y a˜nad´ı las consul as
necesa ias en ´el pa a modi ica la BBDD.
Desplegamos los es p oyec os en He oku, de o ma que es u iesen en se ido es y no en
local. En es e momen o, odos uncionaban pe ec amen e y ya es ´abamos mos ando da os
de IPFS. A pa i de es e momen o, decidimos aumen a uncionalidades en el dashboa d y
ealiza cambios de es ilo.
Me enca gu´e de inclui un componen e que pe mi iese isualiza co elaciones a lo la go
del iempo de las palab as m´as u ilizadas en denuncias. Adem´as, a˜nadimos un buscado al
componen e enca gado de isualiza los wee s. ´
Es e ´ul imo pe mi ´ıa b´usquedas po usua io y
po palab as den o de los wee s, y eque ´ıa que los da os le llegasen o denados. Po lo an o,
implemen ´e las consul as necesa ias sob e la BBDD, haciendo uso de exp esiones egula es
pa a el a amien o del ex o. O as a eas que se lle a on a cabo ue on; ealiza la p´agina
de in o maci´on de la inicia i a, a egla implemen aciones ealizadas que pod´ıan mejo a se con
los nue os conocimien os adqui idos, inco po a uncionalidades en las g ´a icas (zoom, enla-
ces a Twi e , pe sonalizaci´on del con enido...), ealiza un es ilo amigable de la p´agina web e c.
Una ez ob u imos el p oduc o inal, lle amos a cabo un pe iodo de e aluaci´on con usua ios
obje i o. C eamos un plan de e aluaci´on y ealizamos en e is as. Los esul ados ob enidos,
si ie on pa a plan ea posibles abajos u u os. Adem´as, du an e es a ´ul ima pa e del p o-
yec o, se lle ´o a cabo la edacci´on de la memo ia. Fo m´e pa e, no s´olo de su edacci´on, sino
ambi´en de su o ganizaci´on y e isi´on.
41
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
4.2. Tecnolog´ıas
Dedicamos es a secci´on a expone en de alle los ecu sos u ilizados du an e el desa ollo del
p oyec o, y cu´al ha sido su inalidad. En la abla 4.1 encon amos un esumen de las mismas,
o ganizadas po la uncionalidad que les dimos, jun o con su bibliog a ´ıa.
Obje i o Tecnolog´ıa Acceso documen o A e igua m´as
Diag amas de Gan 4.2.1.1 [98]
Edici´on O e lea 4.2.1.2 [70]
y con ol Gi Hub 4.2.1.3 [30]
de e siones PyCha m 4.2.1.4 [73]
Visual S udio Code 4.2.1.5 [14]
Balsamiq Wi e ames 4.2.2.1 [120]
Dise˜no GIMP 4.2.2.2 [29]
diag ams.ne 4.2.2.3 [20]
API de Twi e 4.2.3.1 [106]
Twi e o Websi es 4.2.3.2 [107]
API de Ins ag am 4.2.3.3 [41]
Py hon y paque es 4.2.3.4 [76]
Desa ollo Me amask 4.2.3.6 [55]
In u a y E he scan 4.2.3.7 [39]
Remix (Solidi y) 4.2.3.5 [83, 92]
Ja asc ip y paque es 4.2.3.8 [19]
Reac 4.2.3.9 [79]
Node.js y npm 4.2.3.10 [66, 68]
Almacenaje IPFS 4.2.4.1 [42]
de da os MongoDB A las 4.2.4.2 [57]
He oku 4.2.5.1 [36]
Despliegue AWS 4.2.5.2 [3]
Rops en y Rinkeby 4.2.5.3 [86, 84]
Comunicaci´on HTTP 4.2.6.1 [37]
Cuad o 4.1: Tecnolog´ıas
4.2.1. Edici´on y con ol de e siones
4.2.1.1. Diag amas de Gan
Es una he amien a g ´a ica que nos ha pe mi ido o ganiza el iempo de dedicaci´on p e is o
pa a cada una de las a eas que en´ıamos que ealiza . Adem´as, ambi´en nos ha se ido pa a
isualiza la elaci´on exis en e en e ellas y pode mejo a la plani icaci´on.
42

CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
4.2.1.2. O e lea
El desa ollo de la memo ia se ha ealizado u ilizando el lenguaje L
A
T
EX[48]. La edici´on y
con ol de e siones se ha ges ionado, colabo a i amen e, usando O e lea .
4.2.1.3. Gi Hub
Gi Hub es un se icio basado en la nube que hemos u ilizado pa a abaja de o ma
conjun a en el p oyec o. Nos ha pe mi ido, no solo gua da el c´odigo y los cambios que se
p oduc´ıan en ´el, sino ambi´en pode ealiza un seguimien o y con ol de e siones.
4.2.1.4. PyCha m
PyCha m es un IDE de Py hon que nos ha pe mi ido in eg a el se icio de Gi Hub pa a
subi y ac ualiza de o ma e icien e los cambios. Cabe des aca la acilidad con la que se
pueden desca ga los paque es de Py hon sin necesidad de comandos.
4.2.1.5. Visual S udio Code
Como edi o de c´odigo, hemos u ilizado ambi´en Visual S udio Code. En pa icula , ha
esul ado se muy c´omoda la uncionalidad Li e Sha e, que nos ha pe mi ido edi a c´odigo
colabo a i amen e, y en iempo eal, desde a ios disposi i os.
4.2.2. Dise˜no de la aplicaci´on
4.2.2.1. Balsamiq Wi e ames
Balsamiq Wi e ames es una he amien a desplegada en la web que hemos u ilizado pa a
dise˜na los wi e ames que componen la in e az de nues a p´agina web. Nos ha pe mi ido
c ea p o o ipos de baja idelidad.
4.2.2.2. GIMP
GIMP es un edi o de im´agenes que nos ha pe mi ido aumen a la idelidad de los boce os
de nues a aplicaci´on.
4.2.2.3. diag ams.ne
Pa a el dise˜no de la a qui ec u a, su es uc u a y uncionamien o hemos hecho uso de
diag amas.ne , una aplicaci´on web.
4.2.3. Desa ollo de la aplicaci´on
4.2.3.1. Twi e API
La API de Twi e consis e en una se ie endpoin s de p og amaci´on que pueden se usados
pa a en ende o c ea con e saciones en Twi e . Es a se u iliza pa a ecoge , in e ac ua y
43
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
analiza da os de Twi e . Algunos de es os son los wee s, usua ios, mensajes di ec os, lis as
y ends. Pa a pode accede a ella, es necesa io ene una cuen a de Twi e de elope , pos-
e io men e hay que egis a una aplicaci´on y solici a los okens ykeys co espondien es.
Pa a hace uso de la API en Py hon hemos usado Tweepy, una lib e ´ıa que cuen a con
nume osas o mas de in e ac ua con la API (s eam,API,Clien ...). Noso os hemos u iliza-
do la p ime a, pa a pode ob ene wee s en iempo eal il ados po nues as necesidades.
Obse amos que, al no posee una cuen a Resea ch, no se ha podido u iliza es a lib e ´ıa pa a
accede al his ´o ico de wee s.
O a o ma que hemos u ilizado pa a accede a es a API, ha sido haciendo uso del m´odulo
wi e -api- 2 [108] de Ja aSc ip , pa a pode ac ualiza los me ada os de los wee s ( e wee s,
likes y espues as).
4.2.3.2. Twi e o Websi es
Twi e o Websi es p opo ciona una se ie de he amien as pa a inclui con enido de Twi -
e en p´aginas web. Po ejemplo, Web In en s p opo ciona un di eccionamien o pa a in e ac ua
con wee s y usua ios conc e os desde nues a p´agina web.
4.2.3.3. Ins ag am API
Al igual que la API de Twi e , nos pe mi e ecoge y analiza da os, aunque es a ez de
Ins ag am. Pa a accede a ella, hemos hecho uso de Ins ag api [41], una lib e ´ıa de Py hon
que, adem´as de acili a nos el acceso, nos pe mi e na ega an o con API web p´ublica, an´oni-
mamen e, como m´o il p i ada. G acias a ella, hemos podido ob ene la secci´on “desc ipci´on”
de las publicaciones.
4.2.3.4. Py hon
Py hon es un lenguaje de al o ni el de p og amaci´on in e p e ado. Debido a su popula idad,
cuen a con g an can idad de lib e ´ıas. En es e p oyec o, hemos hecho uso de las siguien es:
Snsc ape [91]
Pe mi e sc apea de edes sociales dis in os da os. En el caso de Twi e , es posible
ob ene usua ios, pe iles, hash ags, b´usquedas, wee s o endencias. Es a es la al e na-
i a pa a accede al his ´o ico de wee s, al no ene acceso a la cuen a de Resea ch de
Twi e , y es usada en el p og ama sc ape.py jun o con una que y o mada po algunas
palab as del dicciona io que pe mi e busca palab as cla e.
Pymongo [74]
G acias a ella podemos abaja con la base de da os MongoDB desde Py hon. Nos ha
pe mi ido, po ejemplo, soluciona p oblemas de concu encia sob e a chi os.
44
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
S anza [94]
Es un paque e de Py hon de p ocesamien o del lenguaje na u al (NLP) en nume osos
idiomas. En es e abajo se u iliza pa a okeniza y lemma iza el ex o.
Pandas [71]
Es una amosa lib e ´ıa de Py hon, muy u ilizada en el campo de an´alisis de da os, que
pe mi e el ´acil manejo de da os a a ´es de es uc u as de da os, como pueden se
los da a ames o las se ies. Nos pe mi e ca ga da os de dis in os o ma os y pode
manipula los. En nues o caso ha sido empleado an o pa a c ea el dicciona io a pa i
de un da a ame de 2 columnas sob e cada palab a ex a´ıda del dicciona io median e la
unci´on o cs , como pa a pode ca ga los da os del dicciona io, con la unci´on ead cs ,
cada ez que son eque idos po los p og amas.
Do en [77]
Facili a el manejo de a iables de en o no, usadas pa a a a con okens de acceso
de mane a segu a. Ca ga las a iables de en o no de a chi os .en al p opio p oceso,
sepa ando dichas a iables del c´odigo. Es o lo consigue haciendo uso de las unciones
ind do en yload do en . En es e p oyec o es usado combinado con un .gi igno e pa a
no e ela los Tokens de acceso de la cuen a de Twi e De elope , que nos pe mi e
u iliza la API de Twi e .
Key ing [46]
Pe mi e accede al anillo de cla es del sis ema desde aquellas aplicaciones que equie en
un almacenamien o segu o de con ase˜nas. Es necesa io c ea un usua io y una con a-
se˜na a a ´es de la unci´on se passwo d pa a, pos e io men e, usa los con la unci´on
ge passwo d. Fue usado pa a el manejo segu o de la con ase˜na de la cuen a de Ins a-
g am u ilizada pa a la API de Ins ag am.
Emoji [23]
Pe mi e u iliza emo iconos en ex os a pa i de los c´odigos CLDR que los ep esen an.
Noso os lo hemos u ilizado, po ejemplo, pa a limpia el ex o de los wee s pa a su
clasi icaci´on.
S a is ics [95]
Pe mi e halla es ad´ıs icas ma em´a icas de da os nume ables. Fue empleado cuando
busc´abamos un co pus pa a pode halla las m´e icas del dicciona io, ya que necesi ´aba-
mos calcula el ama˜no medio de los ex os dado un co pus, pues e a esencial que u ie a
el ama˜no y longi ud m´as pa ecido al que ´ıbamos a usa de denuncias.
Ce i i [12]
P opo ciona la colecci´on de ce i icados a´ız de Mozilla pa a pode alida la con ianza
en el ce i icado SSL mien as se e i ica la iden idad de los hos s TLS.
45
CAP´
ITULO 4. METODOLOG´
IA Y TECNOLOG´
IAS
Spacy [93]
Pe mi e el p ocesamien o de lenguaje na u al. Lo hemos u ilizado pa a okeniza .
Codecs [15]
De ine las clases base de codi icaci´on en Py hon y da acceso a su egis o in e no de
codi icaciones, lo que acili a el manejo de e o es. Pa a es e abajo se usa pa a maneja
el iche o donde se esc iben las denuncias.
Subp ocess [97]
Pe mi e c ea nue os p ocesos, conec a a sus co espondien es ube ´ıas de en ada/-
salida/e o y ob ene sus alo es de e o no. Es e m´odulo se usa no malmen e pa a
eemplaza m´ul iples m´odulos y unciones an iguas.
Th eading [100]
M´odulo que pe mi e el manejo de dis in os hilos de ejecuci´on. Es u ilizado en el c´odigo
sc ape pa a ob ene los wee s en un hilo dis in o al que los clasi ica, con el obje i o de
inc emen a la elocidad del p og ama.
Time [102]
M´odulo con unciones de manejo de iempos. Es u ilizado pa a pode c ea un e a -
do en la elocidad de ecolecci´on de wee s del c´odigo sc ape, debido a la acumulaci´on
de wee s en la base de da os al se inse ados a mayo elocidad de lo que son bo ados.
4.2.3.5. Remix y Solidi y
Remix es un en o no de desa ollo de E he eum que nos o ece la posibilidad de compila y
desplega con a os in eligen es, conocidos en ingl´es como sma con ac s. Adem´as ambi´en
se puede usa pa a p oba las unciones de los con a os, g acias a su maquina i ual de p ueba.
La p og amaci´on de los con a os in eligen es se ha lle ado a cabo usando un lenguaje
o ien ado a obje os conocido como Solidi y.
4.2.3.6. Me amask
Me amask es una ex ensi´on pa a na egado es, o m´o il, que ac ´ua como una bille e a
(walle ) de c ip omonedas. U ilizamos es a ex ensi´on pa a ene un medio de pago con el que
e ec ua las ansacciones.
4.2.3.7. In u a y E he scan
In u a es una pla a o ma que p opo ciona un conjun o de he amien as e in aes uc u as
que pe mi en a los desa ollado es lle a , ´acilmen e, su aplicaci´on blockchain de la p ueba, a
la implemen aci´on a escala, con un acceso simple y con iable a E he eum. La u ilizamos como
46
CAP´
ITULO 5. TRABAJO PREVIO
5.2. Lo e ´ıa - Blockchain y Solidi y
El obje i o de es e p oyec o e a ap ende a usa el lenguaje de p og amaci´on Solidi y, ges-
iona el en ´ıo y la ecepci´on de c ip omonedas (e he ) y en ende el uncionamien o de la
blockchain. Pa a desplega lo, u ilizamos Remix.
Es e p oyec o consis i´o en cons ui un con a o in eligen e (sma con ac ) que pe mi-
iese ealiza un so eo de lo e ´ıa. El con a o unciona de o ma que, qui´en quie a pa icipa ,
paga una can idad de dine o al con a o. Una ez elegido un ganado al aza , el con a o le
en ia ´a a ´el odo el dine o acumulado.
Ejemplo de un p oyec o: h ps://gi hub.com/ang ui02/lo e y.gi .
5.3. API de Twi e y an´alisis de lenguaje na u al
Es e eje cicio en´ıa como obje i o ecolec a publicaciones de Twi e elacionadas con
el ema de la p eca iedad labo al en Espa˜na, y haciendo uso de la API de Twi e . Adem´as
de eco da algunos concep os elacionados con el p ocesamien o y an´alisis del lenguaje na u al.
Comenzamos d´andonos de al a en su pla a o ma de desa ollado es. In en amos consegui
una cuen a ni el Academic Resea ch, que nos p opo cionaba el acceso al a chi o comple o de
Twi e . Sin emba go, s´olo conseguimos Ele a ed, que pe mi e ob ene menos wee s al mes
y no pe mi e el acceso al a chi o comple o.
A con inuaci´on, elabo amos un ocabula io con algunas palab as cla es elacionadas con
el ema de la p eca iedad labo al. Es o nos pe mi i´o ex ae un conjun o de wee s en espa˜nol,
sob e los cu´ales ob u imos su pola idad (la mayo ´ıa en´ıan nega i a o neu a). Visualizamos
las palab as que m´as se epe ´ıan, as una limpieza del ex o en la que se elimina on s´ımbolos,
enlaces, palab as ac´ıas e c.
Figu a 5.2: Wo dcloud con las palab as m´as ecuen es de los wee s ob enidos
53

CAP´
ITULO 6. INVESTIGACI´
ON Y RECOGIDA DE REQUISITOS
Cap´ı ulo 6
In es igaci´on y ecogida de equisi os
En es e momen o, comienza el desa ollo de nues o p oyec o p opiamen e dicho. Comenz´o
con una ase de in es igaci´on, seguida del es ablecimien o de los equisi os que deb´ıa cumpli
la p´agina web. Mos amos ambos en es a secci´on.
6.1. In es igaci´on
Es u o o ien ada al obje i o que p e end´ıamos alcanza con nues a aplicaci´on; cons ui
una p´agina web que mues e da os sob e si uaciones de p eca iedad labo al, sin censu a y en
o ma de dashboa d. La in es igaci´on consis i´o en de e mina las ca ac e ´ıs icas y obje i os
del usua io, as´ı como la si uaci´on del me cado al que p e end´ıamos en a . Es po ello que
ealizamos un an´alisis de la compe encia, an o o al como pa cial, que nos pe mi i´o en ende
mejo c´omo dise˜na nues o p oduc o.
Ca ac e ´ıs icas del usua io
En p ime luga , de e minamos que el usua io que a a hace uso de nues a aplicaci´on
puede p esen a ca ac e ´ıs icas muy di e sas. Las m´as ele an es:
Pe sona que abaja en un sec o /emp esa, o a a empeza a abaja en ´el, y quie e
conoce qu´e si uaciones de injus icia se dan, le es ´en pasando o no a ella.
Pe sona que p esen a una p edisposici´on a si uaciones de injus icia, sea po su campo
p o esional, o po sus ca ac e ´ıs icas ´ısicas/psicol´ogicas.
Pe sona de au o idad que quie e conoce las si uaciones que se dan en un sec o /emp esa.
Puede se con el obje i o de soluciona la injus icia o in en a silencia la.
An´alisis de la compe encia
Po o o lado, el an´alisis de la compe encia se cen ´o en es udia qu´e p oduc os exis ´ıan
en el me cado. Es udiamos dashboa ds exis en es, es u iesen o no elacionados con Twi e ,
54
CAP´
ITULO 6. INVESTIGACI´
ON Y RECOGIDA DE REQUISITOS
y buscamos o ganizaciones que lle asen a cabo p oyec os con un obje i o simila al nues o.
A con inuaci´on, indicamos las p incipales he amien as que encon amos y que conside amos
m´as esal ables pa a nues o desa ollo.
Twee Viz [96]
He amien a web donde se mues an da os de wee s elacionados con una palab a (o pa-
lab as). Busca wee s que con engan dichas palab as y ealiza un an´alisis del sen imien o
de los wee s. Adem´as, mues a dis in as g ´a icas, emas elacionados, wo dclouds... Los
di e en es da os apa ecen en di e en es pes a˜nas, y odas ellas se en a ec adas po ese
an´alisis del sen imien o. En la zona in e io de los g ´a icos, mues a in o maci´on gene al
ace ca del uso de la web.
Twi e Analy ics Dashboa d [4]
Es una uncionalidad p opo cionada po Twi e pa a e la in o maci´on ace ca de la
cuen a pe sonal de cada usua io. El obje i o es hace un seguimien o de los wee s y
la in e acci´on del usua io, con el in de e c´omo epe cu e en la audiencia. Mues a
in o maci´on como las imp esiones de los wee s, isi as al pe il y es´umenes mensuales
del uso de la cuen a, en e o os.
Po wi u e [72]
P opo ciona una ejilla con im´agenes ob enidas de Flick que coinciden con palab as m´as
usadas del con enido m´as ecien e de un usua io dado.
T ackMyHash ag [103]
El uso de hash ags en Twi e ayuda a encon a wee s elacionados con una em´a ica.
La he amien a T ackMyHash ag hace un seguimien o de un hash ag p opo cionado y
mues a es ad´ıs icas ace ca de ´el, como las con ibuciones al hash ag, imp esiones o
in o maci´on ace ca del lenguaje de los wee s.
Cuen as en edes sociales
En las p opias edes sociales exis en cuen as dedicadas a isibiliza denuncias. Po ejem-
plo, en Twi e es ´a la cuen a @Jobsmie da [111], que se dedicaba a da isibilidad a
si uaciones labo ales p eca ias con un ono de humo . En Ins ag am encon amos @T a-
bajos uine os [40], que publica las denuncias que le en ´ıan sus seguido es jun o con el
nomb e de la emp esa d´onde ha enido luga el inciden e.
Aplicaci´on jobs ice [43]
Es una aplicaci´on, desa ollada pa a el´e onos m´o iles, que pe mi e denuncia de o ma
an´onima abusos labo ales.
6.2. Requisi os
En es a ase, haciendo uso de la in o maci´on ecogida du an e la in es igaci´on, de e mi-
namos los equisi os que deb´ıamos cumpli con nues o dashboa d. Fue un paso esencial pa a
55
CAP´
ITULO 6. INVESTIGACI´
ON Y RECOGIDA DE REQUISITOS
pode es ablece las uncionalidades que deb´ıa p opo ciona la aplicaci´on y ealiza un dise˜no
que se ajus ase a ellas.
Comenzamos lle ando a cabo un b ains o ming, o llu ia de ideas, en e odos los in eg an es
del g upo. El obje i o e a compa i las ideas p econcebidas que en´ıamos y, u ilizando los
esul ados ob enidos en la ase de in es igaci´on, es ablece unos equisi os comunes en los que
pudi´esemos basa nos.
Requisi os uncionales
En p ime luga , se es ablecie on los siguien es equisi os uncionales que de e minan las
in e acciones que el usua io pod ´a ealiza con nues a aplicaci´on:
1. Visualiza in o maci´on sob e si uaciones de p eca iedad labo al.
a) Con enido de las denuncias.
b) Can idad de denuncias.
c) Ca ac e ´ıs icas de las denuncias; ipo (ho as abajadas, impago...), localizaci´on...
d) Pe sonas que ealizan las denuncias.
e) Can idad de pe sonas que ealizan denuncias.
) Ca ac e ´ıs icas de las pe sonas que ealizan denuncias (edad, g´ene o, p o esi´on...)
g) Reacci´on que eciben las denuncias po pa e de la gen e.
h) Tendencias en las denuncias; a lo la go de los a˜nos, en unci´on de la ´epoca del a˜no,
del ema...
2. Accede a la uen e o iginal de la in o maci´on pa a pode in e acciona con ella.
3. O dena la in o maci´on en unci´on de a ias m´e icas ( iempo, can idad de denuncias,
denuncias que mayo eacci´on gene an...).
4. Fil a la in o maci´on que se mues a ( ipo de in o maci´on, iempo, edad, g´ene o, loca-
lizaci´on...).
5. Desca ga la in o maci´on que se mues a.
6. Realiza b´usquedas sob e la in o maci´on (usua ios, emas...).
7. Pode pone denuncias.
Requisi os no uncionales
Po o o lado, se es ablecie on los siguien es equisi os no uncionales:
1. Ga an iza que no haya censu a. Es deci , aunque el con enido o iginal sea eliminado, la
p´agina web debe segui mos ´andolo.
56
CAP´
ITULO 6. INVESTIGACI´
ON Y RECOGIDA DE REQUISITOS
2. Mos a con enido signi ica i o.
3. Realiza un dise˜no isual, simple y ´acil de usa po un usua io gene al.
4. C ea un sen imien o de comunidad y apoyo.
Pa a e e i nos a es os equisi os, de aqu´ı en adelan e, u ilizamos las ab e iaciones RF
( equisi o uncional) y RNF ( equisi o no uncional). Los c´odigos que acompa˜nan a dichas no-
mencla u as se co esponden con la enume aci´on p esen ada. Po ejemplo, RF7 indica “Pode
pone denuncias”.
57
CAP´
ITULO 7. DISE˜
NO E IMPLEMENTACI´
ON
Cap´ı ulo 7
Dise˜no e implemen aci´on
El siguien e paso, consis i´o en u iliza los equisi os de la ase an e io pa a ealiza el di-
se˜no y la implemen aci´on de la aplicaci´on. En es a secci´on, ecogemos los esul ados ob enidos
as las sucesi as i e aciones que ealizamos en es a ase de abajo. Adem´as, explicamos el
desa ollo que nos condujo a la a qui ec u a y esul ados inales de la aplicaci´on.
Comenzamos iendo qu´e equisi os conseguimos cumpli y cu´ales no en el siguien e cuad o
7.1. En el p ime caso, mos amos c´omo se implemen a on y una b e e explicaci´on del mismo.
En el cuad o 7.2, p o undizamos en los equisi os que no pudie on se cumplidos y el mo i o de
que es o ocu iese. Adem´as, comen amos aquellos cumplidos pe o que pod ´ıan se ampliados.
A con inuaci´on, exponemos c´omo se lle ´o a cabo el desa ollo de es a ase y qu´e p oceso
se sigui´o. Debido a la magni ud del p oyec o, y la complejidad de cada una de sus pa es, lo
explicamos siguiendo la di isi´on en es bloques mencionada en el cap´ı ulo 4. Cada uno de
ellos, expone el p oceso en o den c onol´ogico. La a qui ec u a inal ob enida as es e p oceso,
se puede encon a en el cap´ı ulo 8.
7.1. Bloque 1: Recoge da os
7.1.1. Fase inicial
La idea pa ´ıa de u iliza la API de Twi e pa a la ob enci´on de wee s y lle a a cabo
un p oceso de an´alisis del sen imien o (sen imen analysis) pa a de e mina si e an denuncias
labo ales. Comenzamos u ilizando ex blob [99] y google ans [32] pa a aduci las publica-
ciones y calcula el sen imien o del ex o aducido. Sin emba go, ealiza an as consul as a
la API de Google T aduc o esul aba ine icien e, adem´as de que al no aduci el ex o de
o ma li e al, se pe d´ıan ma ices que a ec aban al ono del wee . Po ello, op amos po usa
a inn [1], una lib e ´ıa de Py hon que nos pe mi ´ıa calcula el sen imien o en espa˜nol.
El p ime p oyec o ob en´ıa denuncias de cuen as y mi aba si su sen imien o e a nega i o.
Desa ollamos un p o o ipo inicial que ecog´ıa wee s de la cuen a @JobsMie da [111], que
denunciaba en base a cap u as de pan alla de con e saciones de Wha sapp,e-mails u o e as
58

CAP´
ITULO 7. DISE˜
NO E IMPLEMENTACI´
ON
Requisi os
uncionales Implemen aci´on Explicaci´on
RF1a AppTwee s Twee s que mues an el con enido de las denuncias
RF1b AppTo alTwee s To al de denuncias ealizas
RF1c No cumplido -
RF1d AppTwee s Twee s que mues an qui´en los edac ´o
RF1e AppTo alUse s To al de usua ios que ealiza on denuncias
RF1 No cumplido -
RF1g AppTwee s Twee s que mues an la eacci´on
(comen a ios, likes y e wee s) que ecibie on
AppTo alFAV To al de likes que ecibie on las denuncias
AppTo alRT To al de e wee s que ecibie on las denuncias
RF1h AppWo dsTime P og esi´on y co elaci´on de
emas denunciados en el iempo
AppWo dcloud Temas m´as denunciados
AppHea map Can idad de denuncias en unci´on de la ´epoca del a˜no
AppTimeline Can idad de denuncias y eacci´on en el iempo
AppTopHash ags Temas m´as u ilizados
AppTopUse s Usua ios m´as ac i os
RF2 AppTwee s Enlace pa a esc ibi un wee
usando el hash ag #Injus wee
AppTopHash ags Enlace pa a esc ibi un wee usando el hash ag
AppTopUse s Enlace al usua io
RF3 AppTwee s O dena denuncias ( echa ascenden e/descenden e
o en unci´on de la can idad de likes/ e wee s)
RF4 Fil e Sideba Fil o empo al
RF5 AppWo dcloud Pe mi e desca ga in o maci´on
RF6 AppTwee s B´usqueda de emas denunciados o usua ios
RF7 AppTwee s Acceso di ec o a Twi e pa a denuncia
AppTopHash ags Acceso di ec o a Twi e pa a denuncia
AppTopUse s Con ac o di ec o al Twi e del usua io
Requisi os
no uncionales
RNF1 Uso de la blockchain Gua da da os descen alizados
RNF2 Uso de Twi e Pla a o ma con mucha ac i idad y da os
RNF3 Es ilos y dise˜no Usando la plan illa y Ma e ial UI, basado en Ma e ial Design
AppIn o In o maci´on sob e el p oyec o
Tex o explica i o Desc ipci´on del p incipal uso del dashboa d
RNF4
Inicia i a y uso
de un hash ag
com´un: #Injus wee
Incen i a la denuncia de si uaciones
p eca ias mo i adas po el dashboa d
Cuad o 7.1: Requisi os cumplidos y c´omo se han implemen ado
de abajo con condiciones ex emadamen e p eca ias.
De esos wee s, mucha de la in o maci´on ele an e de la denuncia es aba en la imagen.
U ilizamos los paque es py esse ac [75] y easyoc [22] pa a cap u a el ex o de con en´ıan las
59
CAP´
ITULO 7. DISE˜
NO E IMPLEMENTACI´
ON
Requisi os Mo i o
RF1c Al no dispone de un co pus de documen os clasi icados, no pudimos c ea un modelo
pa a en ena lo, po lo que el ipo de las denuncias no apa ece ecogido.
La localizaci´on no es ´a disponible en odos los wee s. Adem´as, los wee s se pueden
publica desde cualquie luga , sin ene ga an ´ıas de que ese sea el luga o igen de la
denuncia.
RF1 Se de ini´o como equisi o no p io i a io pa a u u as implemen aciones.
RF1h Se pod ´ıa amplia la in o maci´on sob e endencias usando ´ecnicas de machine lea ning
RF3 Se pod ´ıa amplia usando m´e icas como las ca ac e ´ıs icas de la denuncia o del usua io
RF4 Se pod ´ıa amplia usando m´e icas como las ca ac e ´ıs icas de la denuncia o del usua io
RF5 Se pod ´ıa amplia con una opci´on de desca ga pa a cada g ´a ica
Cuad o 7.2: Requisi os no cumplidos o que se pueden amplia y mo i o del po qu´e
im´agenes. Ambos nos plan ea on los mismos p oblemas; iconos como el doble ick o la ho a
del mensaje o maban pa e del ex o. Es o no s´olo hac´ıa ilegible el mensaje, sino que adem´as
hac´ıa que el ex o no ue a ´alido pa a halla su sen imien o. Adem´as, las con e saciones les
daba es uc u adas como si se a ase de una sola l´ınea. Es o omp´ıa el sen ido de la misma
al no sabe cu´al de las dos pa es dijo qu´e.
Encon amos ambi´en o os p oblemas. Nume osas publicaciones de es a cuen a no e an ni
siquie a denuncias labo ales y busca en hilos ampoco augu a ´ıa un mejo esul ado. Adem´as,
aunque el ex o de la imagen ue a una denuncia, muchas eces el comen a io que la acom-
pa˜naba en´ıa un ono i ´onico o sa c´as ico, lo que esul aba en un sen imen posi i o. Es o
ambi´en ocu ´ıa al analiza con e saciones, pues o que muchos mensajes no en´ıan conno a-
ciones nega i as, como los saludos po que las condiciones labo ales p eca ias edac adas como
una o e a de empleo end´ıan a ene un sen imien o neu o.
Decidimos, po lo an o, que un p oceso de an´alisis del sen imien o no e a lo adecuado pa a
encon a denuncias. Fue en onces cuando su gi´o la idea de c ea un dicciona io de palab as
ecogidas de denuncias p eseleccionadas. De o ma que pudi´esemos usa las pa a ponde a y
de e mina si un ex o es una denuncia labo al.
7.1.2. Dicciona io
Ins ag am
La cuen a de Ins ag am @ abajos uine os [40] con iene con enido que es, casi exclusi a-
men e, denuncias labo ales. ´
Es e es edac ado po usua ios y a acompa˜nado de una imagen
con el nomb e de la emp esa denunciada. Decidimos u iliza lo pa a c ea el co pus y o ma el
dicciona io ya que, al es a esc i as po dis in as pe sonas, p opo cionaban di e sidad an o en
la edacci´on como en el con enido.
60
CAP´
ITULO 7. DISE˜
NO E IMPLEMENTACI´
ON
U ilizamos la lib e ´ıa Ins ag api de Py hon pa a pode in e ac ua con el API de Ins ag am,
con el in de ex ae odas las palab as de las publicaciones que s´ı ue an denuncias labo ales,
siendo casi 800. De ´es as, u ilizamos ce ca de 650 publicaciones, ese ´andonos 150 pa a pode
o ma un co pus con el que, m´as adelan e, p oba ´ıamos el endimien o de nues o algo i mo.
C eaci´on del dicciona io
Una ez ecogidas publicaciones de la cuen a, u ilizamos ´ecnicas de NLP pa a queda nos
con la in o maci´on de la palab a que nos in e esaba. Inicialmen e, aplicamos p ocesos de lem-
ma iza ion, s emming y okeniza ion a las publicaciones. Sin emba go, decidimos p escindi de
la ´ecnica s emming po la poca explicabilidad del dicciona io. Es o se deb´ıa a que en cie as
ocasiones las a´ıces de las palab as no pe mi ´ıan deduci de qu´e palab a de i ada hab´ıa su gido.
Una ez ecogidas odas las palab as, lle amos a cabo un p oceso de limpieza.
Inicialmen e omamos las palab as con mayo ecuencia, ya que deb´ıan se las m´as usadas
pa a ealiza denuncias. Sin emba go, es o lle ´o a un dicciona io de ce ca de 8000 palab as,
en d´onde las que m´as se epe ´ıan e an e bos y palab as de uso com´un, que pod´ıan usa se
en cualquie con ex o. Es po es o que, la p ime a i e aci´on, consis i´o en deshace nos de ellas,
quedando un dicciona io de 200 palab as.
En la siguien e i e aci´on imos que hab´ıa palab as que es aban di ec amen e elacionadas
con emas labo ales, pe o que pod´ıan usa se en muchos m´as con ex os. Decidimos queda nos
con las palab as m´as espec´ı icas, po lo que el dicciona io se edujo a 75 palab as. Obse amos
el mismo en las igu as 7.1a y7.1b.
Finalmen e, ealizamos una ´ul ima i e aci´on, d´onde nos quedamos con las palab as que
conside ´abamos necesa ias en una denuncia labo al. El dicciona io ob enido de 25 palab as se
obse a en la igu a 7.1c.´
Es e an s´olo lo usamos pa a ealiza consul as a la API de Twi e
y al Sc ape Web, con los wee s que nos de uel e, e aluamos con el dicciona io de la segunda
i e aci´on si son denuncias o no. Es as consul as son necesa ias pa a disminui los iempos de
ob enci´on de posibles denuncias labo ales, pues o que es echan el abanico de esul ados.
M´e odo de e aluaci´on del dicciona io
T as e mina el dicciona io buscamos un m´e odo de e aluaci´on pa a el algo i mo. Pa imos
con la idea de ponde a las palab as usando un anking in e so; las palab as en una posici´on
mayo se ´ıan las que m´as ponde a an. Decidimos ope a sob e el po cen aje de ex o que es-
aba ecogido en el dicciona io pa a que no penaliza a los ex os m´as co os. Sin emba go, el
m´e odo plan eaba un p oblema. Si el ex o e a lo su icien emen e co o se pod ´ıan da muchos
alsos posi i os.
61
CAP´
ITULO 7. DISE˜
NO E IMPLEMENTACI´
ON
(a) 2ªi e aci´on, pa e 1 (b) 2ªi e aci´on, pa e 2) (c) 3ªI e aci´on
Figu a 7.1: Algunos de los dicciona ios ob enidos
Decidimos, po lo an o, no ene en cuen a el po cen aje del ex o que es ´a en el diccio-
na io, sino el po cen aje del dicciona io que es aba con enido en el ex o, lo que nos lle ´o a
abaja con un n´ume o de palab as absolu o. Cie amen e es a soluci´on s´ı que penaliza ´ıa el
ama˜no de los ex os, pe o s´olo has a un pun o l´ogico siemp e que el n´ume o de palab as ue a
alcanzable (los ex os muy co os se e ´ıan m´as penalizados, pe o en pa e se ´ıa de mane a
62
CAP´
ITULO 7. DISE˜
NO E IMPLEMENTACI´
ON
de llamadas que se hacen jun o con el n´ume o de wee s que hay almacenados y sabiendo el
n´ume o de wee s que se ac ualizan po llamada. Una ez odos los wee s es ´an ac ualizados
se pa a, y deja pasa un iempo es ablecido an es de ol e a unciona . Obse amos que un
incon enien e que plan ea es a decisi´on; la in o maci´on se a a subi a IPFS a ias eces pa-
a ene lo odo bien ac ualizado, po que dicho con enido no puede se eliminado y eemplazado.
´
Ul imos con a iempos
El p oyec o ya es aba uncionando, pe o su gie on algunos con a iempos a los que u imos
que hace en e:
Tu imos que co egi el o ma o y ipo de los da os que se en iaban a la API.
Hubo un ago amien o en la can idad de e he s de p ueba que en´ıamos pa a desplega
con a os o ejecu a sus unciones. Tu imos que busca nue as p´aginas web que nos
en iasen okens.
Las cuen as que conseguimos pa a u iliza la API de Twi e es ´an muy limi adas,lo que
di icul ´o la ac ualizaci´on de los da os
7.3. Bloque 3: Mos a da os
7.3.1. Dise˜no
Las dis in as i e aciones de la ase de dise˜no, p oduje on una se ie de boce os que ue on
aumen ando en su g ado de idelidad p og esi amen e.
Comenzamos elabo ando una g an can idad de boce os de baja idelidad a papel, eniendo
en cuen a los equisi os que hab´ıamos ob enido en la ase an e io . A con inuaci´on, ealizamos
una usi´on de las ca ac e ´ıs icas que m´as nos gus aban de cada uno, ob eniendo as´ı el boce o
inicial. En la Figu a 7.4a podemos e lo.
Pos e io men e, g acias a los a ances ealizados en la ase de implemen aci´on, y a una
euni´on de e aluaci´on que u imos con el es o del equipo, decidimos ealiza cambios y me-
jo as. Pa a ello, dise˜namos un boce o de mayo idelidad con Balsamiq. Es a he amien a, a
a ´es de la c eaci´on de wi e ames, nos pe mi i´o en ende mejo c´omo aslada nues a idea
a la aplicaci´on. Se puede e en las Figu as 7.4b y7.4c.
A pa i de es e pun o, el es o de ases de dise˜no consis ie on en i ealizando cambios p o-
g esi os sob e la aplicaci´on. En las i e aciones que in oluc a on mayo ni el de cambios, como
in oducci´on de nue os componen es, u ilizamos GIMP pa a p oba dis in as eo ganizaciones
y ca ac e ´ıs icas. En la Figu a 7.5 podemos e algunos de los cambios que ue su iendo la
aplicaci´on.
69

CAP´
ITULO 7. DISE˜
NO E IMPLEMENTACI´
ON
(a) Boce o inicial en papel
(b) Boce o del dashboa d en
Balsamiq
(c) Boce o de la p´agina de in-
o maci´on en Balsamiq
Figu a 7.4: E oluci´on de los boce os
(a) P o o ipo sob e la aplicaci´on
(b) Redis ibuci´on de elemen os en
GIMP
Figu a 7.5: E oluci´on del dashboa d
El dise˜no inal ob enido pa a nues a p´agina web se encuen a en las igu as 7.6 y7.7.
Obse amos que du an e odas las i e aciones, que inalmen e nos han conducido a ´el, se han
enido en cuen a los 10 p incipios de dise˜no de Jakob Nielsen [62]. Comen amos algunos de
ellos a con inuaci´on:
Visibilidad del es ado del sis ema: La aplicaci´on in en a mos a al usua io en odo
momen o qu´e es ´a pasando y en qu´e pun o de la na egaci´on se encuen a. Po ejemplo,
se ha incluido un esquele o de p´agina web pa a que el usua io sepa que es ´a ca gando.
Adecuaci´on en e el sis ema y el mundo eal: El sis ema in en a habla con el mismo
lenguaje que los usua ios. Po ejemplo, se u iliza el s´ımbolo de calenda io pa a indica el
70
CAP´
ITULO 7. DISE˜
NO E IMPLEMENTACI´
ON
il o po echas.
Libe ad y con ol po el usua io: Se pe mi e que los usua ios puedan ol e ´acilmen e a
un es ado an e io . Po ejemplo, al ealiza una b´usqueda se pueden elimina ´acilmen e
los il os in oducidos.
Consis encia y es ´anda es: Repe imos pa ones pa a no con undi a los usua ios. Po
ejemplo, al se da os de Twi e , u ilizamos una em´a ica simila , asi como su lenguaje
(likes, hash ags...).
Es ´e ica y dise˜no minimalis a: Se ha in en ado simpli ica y elimina con enido i ele an e
pa a que el usua io s´olo se ije en lo ealmen e impo an e.
7.3.2. Implemen aci´on
T as el desa ollo de los p ime os boce os iniciales, nos plan eamos c´omo implemen a
dichas ideas. La p ime a decisi´on que se om´o ue hace uso de Reac . Las p incipales e e encias
que hemos u ilizado pa a u iliza Reac ue on la documen aci´on o icial de su web [79] y el
lib o Lea ning Reac [7].
7.3.2.1. Fase inicial
En p ime luga , dedicamos un pe iodo de iempo a amilia iza nos y busca ecnolog´ıas
que nos pe mi iesen inco po a en nues a p´agina web las ideas de e minadas en la ase de
dise˜no. Reco damos que nues o obje i o e a mos a da os en o ma de dashboa d.
Po un lado, in es igamos qu´e lib e ´ıas exis ´ıan compa ibles con Reac que nos pe mi ie-
sen implemen a g ´a icas y diag amas pa a isualiza da os. Encon amos una g an can idad
de ellas (como echa s [82], cha s.js [13], isx [2] o ni o [63]) con las que ealizamos un
p oyec o de p ueba.
En pa alelo, buscamos c´omo ealiza un dashboa d con dichas g ´a icas en Reac . Tu imos un
p ime ace camien o a Reac -Boo s ap [11], una biblio eca de c´odigo lib e con he amien as
HTML,CSS yja asc ip pa a c ea p´aginas y aplicaciones web. Es a lib e ´ıa nos apo aba
bas an e acilidad a la ho a de dise˜na la web, po que nos pe mi ´ıa no ene que c ea los
componen es b´asicos desde ce o. C eamos o o p oyec o bas´andonos en una plan illa [101]
pa a en ende su uncionamien o y que nos pe mi i´o ap ende sob e en u amien o en Reac , y
sob e el lenguaje de es ilos sass. Sin emba go, in es igando y haciendo p uebas con Boo s ap,
nos encon amos con Ma e ial UI, un amewo k pa a Reac basado en Ma e ial Design. Nos
decan amos po es e ´ul imo po se mucho m´as pe sonalizable y posee una documen aci´on
muy ex ensa.
71
CAP´
ITULO 7. DISE˜
NO E IMPLEMENTACI´
ON
Figu a 7.6: Dashboa d inal
72
CAP´
ITULO 7. DISE˜
NO E IMPLEMENTACI´
ON
Figu a 7.7: P´agina de in o maci´on inal
73
CAP´
ITULO 7. DISE˜
NO E IMPLEMENTACI´
ON
7.3.2.2. Desa ollo
C eaci´on del dashboa d
El esul ado de la ase an e io ue un peque˜no p oyec o que ecog´ıa algunos de los equi-
si os expues os. Sin emba go, con el in de cumpli odos los obje i os p opues os, decidimos
aumen a la elocidad de ap endizaje e implemen aci´on. Es po ello que omamos como e e-
encia una plan illa que limpiamos y modi icamos pa a que se ajus ase a nues os equisi os.
Escogimos una basada en Ma e ial UI, la plan illa de Minimal F ee [56], con licencia de uso
MIT. Obse amos que, g acias a ella, descub imos una nue a lib e ´ıa pa a isualiza da os en
o ma de g ´a icas, ApexCha s, que esul ´o se la que e minamos u ilizando.
C eamos un m´ınimo p oduc o iable que consis ´ıa en una p´agina web single page con dos
en anas en u adas din´amicamen e. Una enca gada de mos a el dashboa d y o a de mos a
in o maci´on sob e la aplicaci´on. Se implemen a on los siguien es componen es pa a mos a
da os;
−4 a je as pa a mos a o ales (can idad de usua ios, wee s, likes y e wee s).
−1 wo dcloud con las palab as m´as u ilizadas.
−2 a je as pa a mos a ankings (po usua ios y hash ags).
−1 isualizado de wee s pa a mos a las denuncias.
−1 g ´a ica empo al pa a ep esen a las endencias anuales en la can idad de wee s.
−1 l´ınea de iempo de doble eje pa a ep esen a la p og esi´on en la can idad de wee s,
likes y e wee s a lo la go del iempo.
Base de da os
La idea inicial e a alimen a a la p´agina web con los da os de IPFS. Sin emba go, los ac-
cesos pa a ecoge da os de la blockchain pueden llega a se muy cos osos. Adem´as, en IPFS
no pueden c ea se ´ındices pa a mejo a la e iciencia y ampoco cuen a con g an a iedad de
consul as. Es po odo ello que se om´o la decisi´on de c ea una “memo ia cach´e” que si iese
pa a alimen a a la p´agina web. La idea es que es a BBDD uese ac ualizada cada dos d´ıas
con los da os de la blockchain. Decidimos u iliza MongoDB A las, pa a lo cu´al esul a on de
especial u ilidad sus a ´ıculos y manuales [58, 57].
A pa i de es e pun o, comenzamos a desa olla es p oyec os en pa alelo; uno enca ga-
do de c ea la p´agina web (dashboa d- wi e ), o o de ges iona las consul as con la BBDD
(cache- wi e ) y un e ce o que se enca gase de ac ualiza la cada dos d´ıas (upda e-cache-
wi e ).
74

CAP´
ITULO 7. DISE˜
NO E IMPLEMENTACI´
ON
Desa ollo en pa alelo
Du an e las sucesi as i e aciones de la ase de implemen aci´on, se ue on a˜nadiendo cambios
en los es p oyec os. Los mencionamos de o ma supe icial, po que se explica ´an en de alle
en la soluci´on inal (cap´ı ulo 8).
dashboa d- wi e : Se a˜nadie on uncionalidades y cambios de es ilo con el obje i o
de cumpli odos los equisi os que se hab´ıan es ablecido. Los componen es b´asicos que
en´ıa el p oduc o m´ınimo iable se hicie on m´as complejos, aumen ando las opciones
que o ec´ıan (pe mi i desca gas, hace zoom en las g ´a icas, elegi qu´e da os e ...).
Adem´as, se a˜nadie on nue os componen es y uncionalidades (b´usquedas, il os, g ´a ica
de co elaci´on en e palab as...). Finalmen e, u o luga una ase en la que se hicie on
los es ilos m´as amigables y se a˜nadie on de alles de dise˜no que mejo aban la expe iencia
de usua io (esquele o de p´agina web, pie de p´agina...).
cache- wi e yBBDD: Se aumen ´o la a iedad de las consul as que se pueden ealiza
y se mejo ´o la e iciencia de la BBDD a la ho a de esol e las.
Inicialmen e, las consul as s´olo pod´ıan il a se po echa. A medida que aumen ´o la
complejidad de los componen es, ambi´en lo hicie on las consul as. Pe mi imos il a
po usua io, ealiza b´usquedas en el ex o de las denuncias o de ol e las consul as
o denadas. Pa a pode ealiza es as ope aciones de mane a e icien e, ecu imos al uso
de ´ındices en la BBDD. A con inuaci´on, mos amos los que se c ea on: da e,use ,
e wee s ylikes.
upda e-cache- wi e : Se c e´o un sc ip que ac ualizase la BBDD de la o ma m´as
e icien e posible y c eando un ni el de p o ecci´on que e i ase co ompe la BBDD. En
un p ime luga , ambi´en iba a enca ga se de man ene ac ualizados los me ada os de los
wee s (in o maci´on sob e e wee s, likes y espues as) en es a pa e de la aplicaci´on. Sin
emba go, decidimos en equipo que la ac ualizaci´on se hicie a desde la pa e del backend
de la aplicaci´on, ac ualizando y gua dando es a in o maci´on ambi´en en IPFS.
Despliegue
Pa a que los es p oyec os pudiesen in e ac ua en e s´ı, y no es u iesen en local, se
desplega on en un se ido cloud. Decidimos u iliza He oku, lo que acili ´o el in e cambio de
in o maci´on a a ´es de llamadas HTTP.
75
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
Cap´ı ulo 8
A qui ec u a de la soluci´on
U ilizamos es a secci´on pa a explica , en de alle, la a qui ec u a inal de Injus wee , la
aplicaci´on que hemos c eado. Podemos e en la igu a 8.1 el esquema gene al de la misma,
di idido en los es g andes bloques; ecogida de da os, almacenaje de da os y isibilizaci´on de
da os. A con inuaci´on, explicamos cada uno de ellos en de alle.
8.1. Bloque 1: Recoge da os
Comenzamos es udiando la pa e de la a qui ec u a des inada a la ecolecci´on de da os
( wee s). Es deci , el p ime bloque que se obse a en la igu a 8.1. Lo p ime o que obse amos
es que se ob ienen de dos uen es dis in as.
API Twi e De elope : A a ´es de su se icio s eaming, los ob iene en iempo eal.
Sc ape de edes sociales: Pe mi e accede al his ´o ico de wee s de Twi e .
8.1.1. S eam.py
Comenzamos iendo la a qui ec u a del p og ama s eam.py, en la igu a 8.2, que ob iene
wee s en iempo eal. Como se puede e en la igu a 8.3, el c´odigo pa e de un hilo p incipal
desde el que se c ea un hilo demonio (g acias al pa ´ame o h eaded) que ejecu a un lis ene .
Pa a ello es necesa io p opo ciona los okens de la cuen a de Twi e De elope . Es e lis ene
emplea el m´e odo s eam p opo cionado po la lib e ´ıa weepy, que a su ez u iliza el p o ocolo
S eaming HTTP pa a da da os a a ´es de una conexi´on abie o en s eaming con la API de
Twi e . Sob e es e lis ene , se usa una unci´on il e , pe mi iendo il a an o el lenguaje del
wee , como las palab as cla e que debe con ene el ex o (siendo ´es as las que con o man la
e ce a i e aci´on del dicciona io).
76
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
Figu a 8.1: A qui ec u a de la aplicaci´on
77
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
Figu a 8.2: Ob enci´on de wee s en iempo eal
1que y =pd. ead_cs (" ../../../ dic / que y_dic .cs ")
2 eq_dic =pd. ead_cs (" ../../../ dic / FREQUENCIES_DIC . cs ")
3load_do en ( ind_do en (" en / Twi e Tokens .en "))
5 weepy_s eam =SimpleLis ene (
6os.ge en ('API_KEY'),
7os.ge en ('API_KEY_SECRET'),
8os.ge en ('ACCESS_TOKEN'),
9os.ge en ('ACCESS_TOKEN_SECRET'),daemon=T ue)
11 weepy_s eam . il e (languages =['es '], h eaded=T ue,
12 ack =[
13 que y ["WORD"][0], que y [" WORD"][1], que y [" WORD"][2],
14 que y ["WORD"][3], que y [" WORD"][4], que y [" WORD"][5],
15 que y ["WORD"][6], que y [" WORD"][7], que y [" WORD"][8],
16 que y ["WORD"][9], que y [" WORD"][10], que y [" WORD"][11],
17 que y ["WORD"][12], que y [" WORD"][13], que y [" WORD"][14],
18 que y ["WORD"][15], que y [" WORD"][16], que y [" WORD"][17],
19 que y ["WORD"][18], que y [" WORD"][19], que y [" WORD"][20],
20 que y ["WORD"][21], que y [" WORD"][22], que y [" WORD"][23],
21 que y ["WORD"][24]])
Figu a 8.3: C eaci´on del lis ene
Cuando el lis ene eciba un wee la unci´on on s a us se ´a in ocada. En es a unci´on
ecogemos los da os p e iamen e mencionados en el o ma o del JSON pa a subi los a la base
de da os, al y como se e en la igu a 8.4.
78
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
el an e io c´odigo, igu a 8.2, con la sal edad de u iliza un sc ape web en ez de un lis ene
y el API de Twi e .
La es uc u a del p og ama emplea igualmen e 2 hilos, uno con el que ob iene los da os
median e snsc ape y p ´ac icamen e igual al del s eam que ealiza el an´alisis y los sube a la
blockchain. Tal y como se e en la igu a 8.16, se c ea desde el hilo p incipal un nue o hilo
que ejecu a la unci´on que se enca ga ´a de ecoge los wee s con snsc ape. El hilo p incipal
es exac amen e igual al desc i o an e io men e, ecoge ex os de la base de da os, llama a las
unciones pa a clasi ica el ex o y, a pa i de un cie o n´ume o de denuncias, sube el a chi o
a la blockchain. Tambi´en cuen a con las mismas medidas de segu idad del o ma o del a chi o.
1de main():
2new_ h ead 1=Th ead( a ge = h ead_ unc ion)
3new_ h ead 1.s a ()
Figu a 8.16: C eaci´on del hilo secunda io en Sc ape
Cen ´andonos en la unci´on que ob iene los wee s, ep esen ada en la igu a 8.17, el sc ape
no necesi a u iliza los okens de la cuen a de elope de Twi e , ya que es independien e al
API de Twi e . En nues o caso empleamos la e si´on de lib e ´ıa de Py hon, pe o pod ´ıamos
usa la e si´on CLI u ilizando el m´odulo os de Py hon pa a llama al comando desde Py hon
como si ue a una e minal. La consul a es muy pa ecida a la usada en el c´odigo an e io ,
con la sal edad de pode especi ica el ango de echas de los wee s con los campos since
yun il. M´as all´a de es os su iles pe o impo an es cambios, no se di e encia del an e io c´odigo.
1de h ead_ unc ion():
2 o i, wee in enume a e (sn wi e .Twi e Sea chSc ape (
3que y ["WORD"][0]+" OR " +que y [" WORD "][0]+" OR " +que y
["WORD"][0]+" OR " +que y ["WORD "][3]+" OR " +que y ["
WORD"][4]+" OR " +que y ["WORD "][5]+" OR " +que y ["
WORD"][6]+" OR " +que y ["WORD "][7]+" OR " +que y ["
WORD"][8]+" OR " +que y ["WORD "][9]+" OR " +que y ["
WORD"][10]+" OR " +que y ["WORD "][11]+" OR " +que y ["
WORD"][12]+" OR " +que y ["WORD "][13]+" OR " +que y ["
WORD"][14]+" OR " +que y ["WORD "][15]+" OR " +que y ["
WORD"][16]+" OR " +que y ["WORD "][17]+" OR " +que y ["
WORD"][18]+" OR " +que y ["WORD "][19]+" OR " +que y ["
WORD"][20]+" OR " +que y ["WORD "][21]+" OR " +que y ["
WORD"][22]+" OR " +que y ["WORD "][23]+" OR " +que y ["
WORD"][24]+" lang :es -is: e wee since :2022 -05 -01 un il
:2022 -05 -09 " ). ge _i ems ()):
Figu a 8.17: Ob enci´on de da os con snsc ape
85

CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
8.2. Bloque 2: Gua da da os
Nos cen amos aho a en la pa e de la a qui ec u a des inada al almacenaje de da os. Es
deci , el segundo bloque que se obse a en la igu a 8.1. El obje i o de es e bloque es almacena
los da os ob enidos en un sis ema descen alizado, pa a e i a que sean censu ados. En pa -
icula , amos a hace uso de IPFS, al cu´al accede emos g acias a un con a o en la blockchain.
La API, al desplega se, con igu a con Web3 la conexi´on con E he eum y con la cuen a de
c ip omonedas, u ilizando el m´odulo u le-hdwalle -p o ide . Pa a ello se u ilizan dos cla es;
la de la cuen a de la que se sacan los ondos pa a ejecu a los m´e odos del con a o y la
del p o eedo de In u a que nos conec a con la ed de p ueba de Rinkeby, en la que es ´a
desplegado el con a o. El manejo de es as cla es se hace con do en .con ig() y el a chi o de
con igu aci´on .en .
T as con igu a es as conexiones con la blockchain, se con igu a el c´odigo de la API usan-
do exp ess. A con inuaci´on, se c ea la conexi´on con IPFS usando como pue a de enlace la
API de In u a. Finalmen e, pa a e mina la con igu aci´on, se le p opo ciona a Web3 an o la
di ecci´on del con a o como el ABI, lo que de uel e una a iable que pe mi e in e ac ua con
los m´e odos de ´es e.
Obse amos que pa a modi ica el es ado de la blockchain se necesi a dine o (e he ). Po lo
an o, llama a los m´e odos de un con a o in eligen e puede se ca o. Aunque en nues o caso
abajamos con la ed de p ueba de Rinkeby, el con a o es ´a desa ollado y pensado de o ma
que enga un consumo de gas educido pa a que sea e icien e. A con inuaci´on, mos amos los
m´e odos que p opo ciona la API, desa ollada en exp ess, y su uncionamien o.
Recogida de da os: Recibe los wee s ob enidos median e los p ocesos de sc ape y
s eam del Bloque 1. Hace uso del m´e odo POST de la API que se puede obse a en
la igu a 8.18.
El m´e odo ecibe un a chi o JSON con un a ay que con iene la in o maci´on del wee que
se desea almacena . T as pa sea la pe ici´on, po cada obje o se ob iene el iden i icado
del wee , que se almacena en un a ay. Se gua da el cue po del pos en IPFS y ob enemos
el hash asociado al iche o subido, pa a pode accede a ´el m´as adelan e. Es e hash, jun o
con el a ay de iden i icado es, se manda al con a o usando la unci´on se File(). Se puede
obse a en la igu a 8.19.
La unci´on c ea una es uc u a con es os da os y la amacena en el a ay p incipal del
con a o. Tambi´en se eco e los wee s gua dando los IDs en un mapa como cla e
y asign´andoles como alo la posici´on en la que se encuen a el hash del iche o que
con iene esos wee s del a ay p incipal. Po ´ul imo, se cie a la conexi´on con el clien e.
En la igu a 8.20 podemos comp oba el uncionamien o de es a pa e median e un
diag ama de secuencia.
Pa a ecibi en la API la in o maci´on con los wee s, se hace uso de un c´odigo en
Ja asc ip que se enca ga de almacena en la a iable pos Body un JSONA ay con los
86
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
1app.pos ('/ se ',async ( eq, es)=> {
2le idA ay =[];
3 eq.body. o Each(obj => {// Collec s he wee ID 's
4idA ay.push(obj["id"]. oS ing ());
5});
6// S o e he wee s in IPFS and ge s he IPFS hash
7cons added =awai clien .add (JSON.s ingi y( eq.body));
8// Sends he ile IPFS hash wi h he wee ID 's i con ains o de
sma con ac
9awai con ac .me hods.se File(added.pa h ,idA ay).send ({
10 om:'0 x0 e2273 4754 494d3 e0C6D8cB5aE83 2b64bF9 '});
11 es.json({});// Close he connec ion
12 });
Figu a 8.18: C´odigo del m´e odo POST de la API
1 unc ion se File(s ing memo y hash,s ing[] memo y wee sID)
ex e nal {
2Twee sFile memo y =Twee sFile (hash, wee sID);
3 wee sFiles.push( );
4 o (uin i=0;i< wee sID.leng h;i++){
5s o edTwee s[ wee sID [i]] = wee sFiles.leng h -1;
6}
7}
Figu a 8.19: Funci´on se File() del sma con ac
da os de los wee s, y con la unci´on e ch se conec a a la API en iando el a chi o en
el campo “body”de la pe ici´on. Es e c´odigo iene m´as de allado en la igu a 8.13 en el
apa ado an e io , jun o con su explicaci´on.
En ´ıo de da os: P opo ciona los wee s almacenados en IPFS al on end de la aplica-
ci´on. Hace uso de un m´e odo GET de la API.
En es e caso, p ime o se accede desde el c´odigo en Ja asc ip a la unci´on del con a o
en Solidi y ge Files que de uel e el a ay p incipal del con a o en la blockchain. Ve la
igu a 8.21. Es a unci´on es de ipo iew dado que no modi ica el es ado de la block-
chain, po lo que no consume nada al se llamada.
1 unc ion ge Files()ex e nal iew e u ns (Twee sFile [] memo y){
2 e u n wee sFiles;
3}
Figu a 8.21: Funci´on ge Files() del sma con ac
87
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
Figu a 8.20: Diag ama de secuencia del m´e odo POST de la API
Usando el a ay con los hashes y los IDs asociados a cada hash, se eco en odos los
elemen os, desca gando el con enido de IPFS con los hashes. La desca ga se ealiza po
ozos o chunks, y una ez desca gados se les da un o ma o JSON, el que en´ıan an es
de se subidos, y se eco en los wee s comp obando que su ID se encuen a en la lis a
de IDs asociados al iche o. En caso de no encon a se, signi ica que ese wee ha sido
ac ualizado y que su in o maci´on m´as ecien e es ´a en o o iche o, po lo que se elimina
de la espues a.
Cuando un iche o no con enga ning´un wee ´alido, se elimina su “hueco ac´ıo”que
deja en la espues a y se pasa a comp oba el siguien e hash.
A con inuaci´on, se limpia la espues a de co che es, y se a˜naden comas en e los dis in os
JSONA ay pa a almacena los de o ma conjun a y con inua y que la espues a sea un
´unico JSONA ay con la in o maci´on de cada wee . Po ´ul imo, se en ´ıa la espues a
como ipo s ing. En la igu a 8.22 podemos comp oba el uncionamien o de es a pa e
median e un diag ama de secuencia.
Ac ualizaci´on de da os: Ac ualiza los me ada os de los wee s almacenados en IPFS.
Hace uso de un m´e odo GET de la API. Pa a ealiza la ac ualizaci´on au om´a ica de
los da os, se llama a es e m´e odo pa a indica que ha de comenza sin ene que en ia
ning´un o o da o.
Al igual que en el en ´ıo de da os, p ime o se accede desde el c´odigo en Ja asc ip a
la unci´on del con a o en Solidi y ge Files. Tambi´en se eco en odos los elemen os
desca gando el con enido de IPFS y se le da o ma o al con enido desca gado, pe o
en es e caso, si se alcanza la can idad de wee s que se pueden mi a , pa a de hace
comp obaciones. Una ez se ha ecompues o la in o maci´on de IPFS, y se ha comp obado
que el ID del wee es ´a en la lis a de IDs asociados, se llama a la API de Twi e pa a
Ja asc ip a la que se le pasa el ID del wee . Es e m´e odo nos de uel e la in o maci´on
que iene Twi e sob e ese wee en conc e o y comp obamos que las m´e icas que
88
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
Figu a 8.22: Diag ama de secuencia del m´e odo GET de la API
pueden habe a iado con el iempo y nos in e esa mos a en la web, es deci , los
e wee s, los likes y las espues as, no sean di e en es a las que enemos almacenadas.
En caso de se di e en es, ´es as se modi ican y se almacena la in o maci´on del wee en
un a ay con odos los que se an a ac ualiza y el ID en o o a ay. Una ez se han
p obado odos los wee s, se sube a IPFS un nue o iche o con odos los ac ualizados
y el hash de es e a chi o se le pasa al con a o jun o con la lis a de IDs que hemos
subido a IPFS llamando a la unci´on upda eTwee s. Es a unci´on se enca ga de a˜nadi
el nue o iche o al a ay p incipal como si de un a chi o con wee s nue os se a ase
y modi ica el mapa de cla e ID, alo posici´on del a ay del hash del iche o en el que
se almacena sus i uyendo la posici´on po la del nue o iche o, ambi´en elimina el ID de
la lis a de asociados a su hash an e io . Pa a ello eco e la lis a de IDs asociados al
iche o y comp obando que dos iden i icado es son iguales, al se ipo s ing no se puede
hace la compa aci´on con “==”, sino que se debe usa keccack pa a calcula el hash
y comp oba que los by es sean iguales, una ez encon ado se qui a del a ay usando
la unci´on pop(). En caso de que el a ay quede ac´ıo se elimina, pe o no el hash del
iche o po mo i os de inmu abilidad e in eg idad.
La ac ualizaci´on se ealiza g acias a un c´odigo que se enca ga de llama pe i´odicamen e
a es e m´e odo. Es e c´odigo que es ´a apa e es un c on que u iliza los m´odulos node-
e ch pa a en ia pe iciones a la API y node-schedule pa a ac ua de c on. Tambi´en
almacena el n´ume o de wee s que lle a ac ualizados y una a iable booleana que se
enca ga de limi a la llamada a la ac ualizaci´on de los da os pa a que no ac ualiza m´as
eces de las que se pillan los da os y e i a consumo de memo ia del con a o innecesa ia.
Es e c´odigo p ime o ob iene el n´ume o de wee s ac ualmen e ´alidos que hay con una
llamada al m´e odo ge de la API. Con la longi ud de la espues a, sabe el n´ume o de
wee s que iene y lo almacena. Despu´es hay dos unciones que se llaman de o ma
pe i´odica. La p ime a, como se puede e en la igu a 8.24 es un abajo que se llama
cada 2 minu os, iempo su icien e pa a que la API haya podido ac ualiza una anda de
89
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
1 unc ion upda eTwee s(s ing memo y hash,s ing[] memo y
wee sID) ex e nal {
2 o (uin j=0;j< wee sID.leng h;j++){
3uin pos =s o edTwee s[ wee sID [j]];
4 o (uin i=0;i< wee sFiles[pos]. wee ID.leng h;i++){
5i (keccak256(abi.encodePacked( wee sFiles[pos ].
wee ID[i])) == keccak256(abi.encodePacked(
wee sID[j]))){
6 wee sFiles[pos]. wee ID[i]= wee sFiles[pos ].
wee ID[ wee sFiles[pos ]. wee ID.leng h-1];
7 wee sFiles[pos]. wee ID . pop();
8}
9}
10 i ( wee sFiles[pos ]. wee ID.leng h == 0){
11 dele e wee sFiles[pos ]. wee ID;
12 }
13 }
14 Twee sFile memo y =Twee sFile (hash, wee sID);
15 wee sFiles.push( );
16 o (uin i=0;i< wee sID.leng h;i++){
17 s o edTwee s[ wee sID [i]] = wee sFiles.leng h -1;
18 }
19 }
Figu a 8.23: Funci´on upda eTwee s del sma con ac
wee s. Es a unci´on, si el booleano de con ol es e dade o, llama al m´e odo upda e de
la API e inc emen a la a iable que almacena el n´ume o de wee s ac ualizados, si se han
e minado de ac ualiza odos, pone el booleano a also pa a que no se puedan segui
haciendo llamadas. La segunda unci´on se ejecu a cada m´as iempo, en es e caso d´ıas.
Se enca ga de que una ez ha pasado su icien e iempo, ponga la a iable de con ol a
e dade o pa a que se pueda ol e a ejecu a la ac ualizaci´on de los da os y ob iene
el n´ume o de wee s con o a llamada al ge de la API, po que la can idad de wee s a
ac ualiza puede habe cambiado.
8.3. Bloque 3: Mos a da os
Finalmen e, es udiamos la pa e de la a qui ec u a des inada a mos a y ep esen a da os.
Es deci , el e ce bloque que se obse a en la igu a 8.1. Como hemos mencionado con
an e io idad, es ´a cons i uido po es p oyec os que se ejecu an de o ma independien e.
P oyec o cache- wi e : desa ollado en node.js, y haciendo uso de exp ess, es el se ido
que se enca ga de ecibi y ges iona pe iciones sob e la base de da os de MongoDB.
Es a base de da os ac ´ua como una “memo ia cach´e”. Como mencionamos en desa ollo,
se om´o es a decisi´on po que los accesos a IPFS son cos osos en iempo. Po lo an o,
90

CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
1schedule.scheduleJob('*/2 * * * *',async unc ion(){
2i (ok){
3awai e ch ('h ps :// p eca iedapp 2.he okuapp.com / upda e ',{
me hod:"GET"});
4numUpda ed+=20;
5i (numUpda ed>=numTwee s ){
6ok= alse ;
7numUpda ed =0;
8}
9}
10 });
Figu a 8.24: C´odigo de ayuda pa a ac ualiza la API
educimos la can idad de ellos a cada dos d´ıas. Esos accesos si en pa a ac ualiza la
BBDD que se enca ga de p opo ciona da os a la aplicaci´on web.
P oyec o dashboa d- wi e : desa ollado en Reac , ep esen a el on end de la apli-
caci´on. Mues a los da os ecogidos en la BBDD que hemos cons uido. Obse amos
que los da os mos ados no es ´an ac ualizados en iempo eal.
P oyec o upda e-cache- wi e : desa ollado en node.js, ecoge da os de IPFS cada
dos d´ıas pa a ac ualiza la “memo ia cach´e”.
Obse amos que se ha seguido la a qui ec u a ull-s ack conocida como MERN (MongoDB,
exp ess.js,Reac .js yNode.js). Es udiemos en de alle el uncionamien o de cada uno po
sepa ado.
8.3.1. cache- wi e
C eamos un se ido que se queda a la escucha de pe iciones ealizadas an o po la p´agi-
na web (dashboa d- wi e ), como po el sc ip enca gado de ac ualiza la “memo ia cach´e”
(upda e-cache- wi e ). Una ez acep ada la pe ici´on HTTP, el se ido u iliza un clien e de
la base de da os que hemos c eado pa a conec a se con ella y ealiza la acci´on que se haya
solici ado. Con amos con un iche o .en que hace de capa de segu idad al accede a la BBDD
de MongoDB A las. Podemos e en el diag ama de secuencia 8.25 las in e acciones que se
lle an a cabo.
Obse amos el ipo de pe iciones que ealizan la p´agina web y el sc ip a la BBDD:
P´agina web:´
Unicamen e hace las consul as necesa ias pa a mos a da os en el dash-
boa d, no puede modi ica el con enido de la BBDD. Es as consul as se il an y o denan
seg´un los c i e ios que es ipule la p´agina web, pa a lo cu´al se ha heho uso de las uncio-
nes db.collec ion. ind() ydb.collec ion.so (). Obse amos que, con el in de aumen a
la e iciencia de la BBDD pa a ges iona es as pe iciones, se han implemen ado ´ındices
91
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
Figu a 8.25: Diag ama de secuencia de cache- wi e
en los campos da e,use , e wee s ylikes.
Po un lado, exis e una consul a que ob iene odos los da os il ados po una echa de
inicio y inal ( igu a 8.26). Po o o lado, exis e o a consul a que adem´as de lo an e io ,
de uel e los wee s o denados de 4 posibles mane as ( echa ascenden e/descenden e,
can idad de likes y can idad de e wee s) y iene la opci´on de il a o no los wee s de
acue do al nomb e de usua io o po palab as en el ex o del wee ( igu a 8.27).
1 ou e . ou e("/").ge ( unc ion ( eq , es){
2le db_connec =dbo.ge Db (" wi e ");
3le da e_s a =pa seIn ( eq.que y.da eS a );
4le da e_end =pa seIn ( eq.que y.da eEnd);
5db_connec
6.collec ion(" wee s_ip s")
7. ind ({da e:{$g :da e_s a ,$l :da e_end } })
8. oA ay( unc ion (e , esul ){
9i (e ) h ow e ;
10 es.json( esul );
11 });
12 });
Figu a 8.26: Llamada ealizada po la p´agina web: da os il ados po echa
92
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
1 ou e . ou e("/ wo ds ").ge ( unc ion ( eq , es ){
2le db_connec =dbo.ge Db (" wi e ");
4le wo d = eq.que y.wo d;
5le da e_s a =pa seIn ( eq.que y.da eS a );
6le da e_end =pa seIn ( eq.que y.da eEnd);
7le o de =pa seIn ( eq.que y.o de );
9le ex use =wo d[0]== "@" ?" use " :" ex "
10 le nameVa iable =(o de == 0|| o de == 1)?" da e" :(( o de ==
2)?" e wee s " :" likes ");
11 le ascdesc =(o de == 1)?1: -1;
12 alue =wo d[0]== "@" ?wo d.slice (1):{$ egex:wo d };
14 a que y ={}
15 que y ['da e']={$g :da e_s a ,$l :da e_end };
16 que y [ ex use ]= alue ;
18 a que y_so ={};
19 que y_so [nameVa iable]=ascdesc;
21 db_connec
22 .collec ion(" wee s_ip s")
23 . ind (que y )
24 .so (que y_so )
25 . oA ay( unc ion (e , esul ){
26 i (e ) h ow e ;
27 es.json( esul );
28 });
29 });
Figu a 8.27: Llamada ealizada po la p´agina web: da os il ados po echa y/o nomb e
de usua io y/o palab a en el ex o, y o denados ( echa ascenden e/descenden e o can idad
de likes/ e wee s)
Sc ip : Enca gado de ges iona la BBDD, ealiza ope aciones pa a elimina odos los
elemen os de la BBDD y a˜nadi elemen os dado un a ay ( igu a 8.28). Pa a ello, se ha
hecho uso de las unciones db.collec ion.dele eMany() ydb.collec ion.inse Many().
93
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
1// To add a lis o wee s o he da a base
2 ou e . ou e("/add").pos ( unc ion ( eq , esponse){
3le db_connec =dbo.ge Db (" wi e ");
4db_connec .collec ion(" wee s_ip s").inse Many( eq.body , unc ion
(e , es){
5i (e ) h ow e ;
6console.log(" Twee s added success ully ");
7 esponse.json ( es);
8});
9});
11 // To dele e all wee s om he da a base
12 ou e . ou e("/dele e").dele e(( eq, esponse)=> {
13 le db_connec =dbo.ge Db (" wi e ");
14 db_connec .collec ion(" wee s_ip s").dele eMany({}, unc ion (e ,
obj){
15 i (e ) h ow e ;
16 console.log(" All documen dele ed ");
17 esponse.json (obj);
18 });
19 });
Figu a 8.28: Llamadas ealizadas po el sc ip
8.3.2. upda e-cache- wi e
Es ´a cons i uido po un sc ip que, de o ma au om´a ica, accede cada dos d´ıas a los da os
almacenados en IPFS. Pa a ello, u iliza el m´e odo ge p opo cionado po la API del Bloque 2.
Pos e io men e, elimina el con enido de la BBDD y uelca los nue os da os ac ualizados sob e
ella, u ilizando las unciones dele e yadd explicadas en el p oyec o an e io . Mos amos en la
igu a 8.29 dichas llamadas.
Obse amos que se ha hecho uso del paque e node-schedule de npm pa a implemen a la
pe iodicidad del sc ip (una ez cada dos d´ıas) y de node- e ch pa a ges iona las llamadas
HTTP. Adem´as, des acamos que se ha implemen ado una es uc u a de con ol de e o es de
o ma que si no se ob ienen bien los da os de IPFS, la BBDD pe manece inal e ada. De la
misma mane a, no se a˜nadi ´an wee s si la eliminaci´on p e ia ha allado.
94
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
Figu a 8.36: Componen e AppTwee s
101

CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
Figu a 8.37: Componen e AppWo dcloud
Figu a 8.38: Componen e AppWo dsTime
al anum´e icos.
El componen e ob iene los da os in ocando la unci´on ge Da aWo dcloud, que de uel e
las palab as jun o a su can idad de apa iciones.
AppWo dsTime: Figu a 8.38.
Muy elacionado con el componen e an e io , AppWo dsTime oma las es palab as m´as
u ilizadas en denuncias a d´ıa de hoy y mues a cu´al ha sido su p og esi´on y co elaci´on
a lo la go del iempo. Pa a ello, calcula, u ilizando exp esiones egula es, el n´ume o de
apa iciones de dicha palab a, o de i adas de ella, en los wee s que se publica on cada d´ıa.
La g ´a ica pe mi e elegi qu´e palab as isualiza , as´ı como hace zoom sob e un pe iodo
de iempo en pa icula .
El componen e ob iene los da os in ocando la unci´on ge Da aWo dsTime, que p opo -
ciona las palab as m´as u ilizadas y sus apa iciones a lo la go del iempo.
102
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
Figu a 8.39: Componen e AppHea map
AppHea map: Figu a 8.39.
AppHea map desglosa la can idad de wee s po d´ıa de la semana y mes del a˜no, pa a
da una isi´on de cu´ales son los momen os del a˜no en los que m´as denuncias se han pu-
blicado. De es a o ma, se pueden analiza endencias anuales en los p oblemas labo ales
exis en es.
El componen e ob iene los da os in ocando la unci´on ge Da aHea map, que p opo ciona
la can idad de wee s po d´ıa y mes.
AppTimeline: Figu a 8.40.
Es e componen e con iene una g ´a ica en la que podemos isualiza la a iaci´on, a lo
la go del iempo, en la can idad de wee s, likes y e wee s. Se om´o la decisi´on de usa
un doble eje e ical po que es as a iables u ilizaban escalas muy dis in as. Incluimos
la posibilidad de elegi cu´ales de es as a iables que emos isualiza y pode hace zoom
sob e un pe iodo de iempo en pa icula .
El componen e ob iene los da os in ocando la unci´on ge Da aTimeline, que de uel e
la can idad de wee s, likes y e wee s a lo la go del iempo.
103
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
Figu a 8.40: Componen e AppTimeline
8.3.3.3. Es ilos
A la ho a de es iliza nues a aplicaci´on, hace uso de la plan illa de Minimal nos apo ´o
algunas acilidades pa a pe sonaliza el p oyec o a nues o gus o. ´
Es a nos p opo cionaba una
es uc u a sob e la que abaja y escoge los emas que que ´ıamos usa , basada en la cus o-
mizaci´on que p opo ciona Ma e ial UI.
La con igu aci´on de es ilos que p opo ciona Ma e ial UI hace uso del componen e Theme-
P o ide . Se basa en el uso del hook useCon ex pa a pasa la in o maci´on elacionada con
es ilos a a ´es del ´a bol de componen es, sin ene que en ia las p opiedades manualmen e
en cada ni el. En nues o caso, den o de la ca pe a hemes, encon amos el iche o index.js
que de ine el con ex o median e el componen e ThemeCon ig. Adem´as, hace el uso del hook
useMemo pa a solo calcula el alo memo izado que con iene los es ilos cuando se ende iza,
e i ando as´ı c´alculos de m´as en cada ende izaci´on y op imizando la e iciencia de la aplicaci´on.
La p incipal o ma en la que hemos lle ado a cabo la modi icaci´on de emas ha sido u ili-
zando las a iables que de ine Ma e ial UI, como pale e, ypog aphy ocomponen s. Pe mi en,
espec i amen e, de ini una pale a de colo es, la ipog a ´ıa u ilizada y sob eesc ibi los com-
ponen es po de ec o. Comen amos, a con inuaci´on, algunas de las modi icaciones lle adas a
cabo.
En e e encia a la pale a de colo es usada, seguimos con la l´ınea de Ma e ial UI que p opone
escoge onalidades dis in as pa a di e en es si uaciones:
Colo p ima io (p ima y): es el colo m´as ecuen e en la aplicaci´on y se encuen a en
los elemen os p incipales de la misma.
104
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
Colo secunda io (seconda y): si e pa a acen ua y di e encia algunos elemen os de la
aplicaci´on.
Colo de e o (e o ): p esen e en los elemen os que el usua io debe conoce .
Colo de a iso (wa ning): usado pa a ep esen a a isos impo an es.
Colo de in o maci´on (in o): se u iliza pa a mos a in o maci´on neu al.
Colo de ´exi o (success): indica acciones comple adas de o ma co ec a.
Obse amos que es os colo es ambi´en se emplean en el uso de isualizaci´on de da os a
la ho a de dibuja las g ´a icas, man eniendo as´ı la conco dancia de colo es en oda la aplicaci´on.
Como nues o p oyec o es ´a elacionado con Twi e , decidimos emplea una pale a de
colo es elacionada con la ed social. Es a pale a se mues a en la Figu a 8.41. Vemos que
u iliza como colo p ima io y de in o maci´on el azul de “La y”, el ic´onico p´aja o del logo de
Twi e . Como colo secunda io y de e o u iliza el ojo asociado al like de un wee . El e de
del e wee se u iliza como colo de ´exi o. Y po ´ul imo, el ama illo del an iguo bo ´on de a
(sus i uido po el like) se u iliza como colo de a iso.
Figu a 8.41: Pale a de colo es. G adien es ob enidos de la he amien a online Coolo s.
La pale a se encuen a en el a chi o pale e.js, donde se decla a la a iable que a a se
expo ada pa a es ablece se como la pale a empleada po Ma e ial UI en nues o p oyec o.
Obse amos que en ella ambi´en se de inen dis in as onalidades pa a las g ´a icas, una amplia
a iedad de onos g ises o los colo es del ex o y de los ondos, en e o os.
Po o o lado, las dis in as opciones pa a la con igu aci´on de la ipog a ´ıa se encuen an en
el iche o ypog aphy.js, donde se puede con igu a el ama˜no de cada ipo de le a y la uen e
empleada. En nues o caso, hemos seleccionado Hel ´e ica Neue, ya que es muy u ilizada en
105
CAP´
ITULO 8. ARQUITECTURA DE LA SOLUCI´
ON
dise˜no web, y en pa icula es la uen e que u iliza Twi e Web[105].
O a unci´on que pe mi e Ma e ial UI, como hemos comen ado, es sob eesc ibi compo-
nen es. En nues o caso, u ilizamos los componen es sob eesc i os Bu on,IconBu on,Ca d,
Inpu ,Lis , y Typog aphy. Se pueden encon a den o de la ca pe a o e ides.
Po ´ul imo, des acamos el uso de la u ilidad de s yled(), que u ilizan odos los componen es
de Ma e ial UI, y que nos ha pe mi ido modi ica algunos que es ´an incluidos en el con ex o
de los emas pa a aplica lo de mane a dis in a en cada uno de ellos.
106

CAP´
ITULO 9. EVALUACIONES
Cap´ı ulo 9
E aluaciones
Una ez lle ada a cabo la implemen aci´on, es necesa io ealiza una e aluaci´on de esul ados
pa a comp oba qu´e obje i os se han cumplido, cu´ales no, y qu´e modi icaciones lle a a cabo.
Obse amos que e aluamos el uncionamien o de la aplicaci´on omando dos pun os de is a;
in e az de usua io y an´alisis de lenguaje na u al.
9.1. E aluaci´on: In e az de usua io
Du an e el anscu so del p oyec o, se ealiza on a ias sesiones de seguimien o y e alua-
ci´on con los u o es del TFG que esul a on en m´ul iples mejo as del p oyec o. Sin emba go,
una ez inalizado, decidimos lle a a cabo una e aluaci´on con usua ios inales con el obje i o
de ob ene in o maci´on de allada y iel a las necesidades del p´ublico inal de la in e az.
Obse amos que los 10 p incipios de dise˜no de Jakob Nielsen se han enido en cuen a en
el dise˜no de la in e az. Sin emba go, al se una in e az simple y habe con ado con el apoyo
de expe os du an e su desa ollo, hemos op ado po no ealiza una e aluaci´on heu ´ıs ica y
cen a nos en los usua ios inales.
9.1.1. Plan de e aluaci´on
Iden i icaci´on del p op´osi o y los obje i os de la e aluaci´on
El p ime paso de la e aluaci´on con usua ios es es ablece el p op´osi o y los obje i os de
´es a. Buscamos iden i ica qu´e aspec os de la in e az uncionan bien, cu´ales no, y po qu´e
mo i o. Es o nos se i ´ıa pa a es ablece el posible abajo a u u o y las mejo as que se pueden
implemen a . Ex aemos los siguien es obje i os de al o ni el:
De e mina si la in e az esul a ´acil de en ende y u iliza po los usua ios inales.
Iden i ica aquellos elemen os de la in e az que di icul an al usua io la ealizaci´on de sus
a eas po esul a poco in ui i os o po p opicia que el usua io come a e o es.
Iden i ica aquellos elemen os que, po el con a io, el usua io echa en al a.
107
CAP´
ITULO 9. EVALUACIONES
Encon a la mejo o ma de soluciona cada uno de los p oblemas del pun o an e io ,
sin deg ada la usabilidad de o as pa es de la in e az.
De ec a qu´e elemen os gus an y esul an in ui i os al usua io.
Iden i ica los equisi os que deben cumpli los pa icipan es
Buscamos pa icipan es que posean las ca ac e ´ıs icas de ec adas en la ase de in es igaci´on
(cap´ı ulo 6). Al a a se de un pe il muy a iado, amos a in en a euni a un g upo de usua ios
inales que ep esen en su icien e di e sidad en cuan o a ango de edad, p o esi´on, o ganismo
en el cu´al se desempe˜na dicha p o esi´on, si han su ido si uaciones de injus icia labo al o si
ienen alg´un in e ´es en elimina las ac i amen e.
Desc ipci´on del dise˜no expe imen al
A cada pa icipan e, se le a a explica en qu´e consis e la e aluaci´on y se le a a pedi
ealiza un cues iona io inicial. El obje i o de es e ´ul imo es conoce sus ca ac e ´ıs icas, as´ı
como el ni el de conocimien o que poseen elacionado con nues a aplicaci´on. De es a mane-
a, podemos en ende y analiza mejo los esul ados ob enidos, y e si las ca ac e ´ıs icas del
usua io pueden es a a ec ando a su in e acci´on con la in e az.
Pos e io men e, un mode ado le pedi ´a al pa icipan e que in e ac ´ue con la p´agina web,
esol iendo una se ie de a eas. Adem´as, se le en ia ´a un cues iona io an´onimo pa a que pueda
da su opini´on sin es a condicionado, lo que nos pe mi i ´a conoce su pun o de is a.
El obje i o es ecoge da os cuali a i os (elemen os que gus an/disgus an, que son ´aci-
les/di ´ıciles de usa , ni el de sa is acci´on/ us aci´on del usua io...). No obs an e, ambi´en se
end ´an en cuen a algunos cuan i a i os (nºde a eas bien ealizadas, nºde a eas pa a las
que se necesi a ayuda, iempo de espues a...).
Concluimos indicando las m´e icas u ilizadas pa a e alua las a eas:
Tiempo de espues a: R´apido (meno a 5sec), Medio (en e 5y15sec) o Len o (m´as
de 15sec).
Necesidad de ayuda: (ninguna ayuda), (ha necesi ado gu´ıa) o 7(no ha sabido).
9.1.2. Ma e iales necesa ios pa a la e aluaci´on
An es de ealiza la p ueba de e aluaci´on, hicimos las siguien es p epa aciones:
Gui´on pa a la o ien aci´on p e ia: Anexo A.1.
Cues iona io p e io: Anexo A.2.
Ta eas y escena ios
108
CAP´
ITULO 9. EVALUACIONES
1. Dime el o al de denuncias
2. Dime la can idad de pe sonas que han pues o denuncias
3. ¿Puedes lee me una denuncia?
4. ¿Qu´e denuncias ha pues o el usua io X?
5. Busca una denuncia elacionada con “ acaciones”
6. ¿Qu´e denuncia ha ecibido la mayo can idad de likes?
7. Si quisieses pone una denuncia desde el dashboa d, ¿c´omo lo ha ´ıas?
8. Fil a po echas pa a e da os co espondien es ´unicamen e al ´ul imo mes
9. Ind´ıcame el pe il del usua io que m´as denuncias ha pues o
10. Visi a su pe il
11. ¿Cu´al es el hash ag m´as u ilizado?
12. ¿Cu´al es la palab a m´as u ilizada en denuncias?
13. ¿C´omo e oluciona dicha palab a a lo la go del iempo?
14. ¿C´omo a ´ıa la can idad de denuncias con el iempo?
15. Haz que en el g ´a ico solo apa ezca la can idad de e wee s en el iempo
16. ¿En qu´e momen o del a˜no hay mayo n´ume o de denuncias?
17. Si quie o sabe m´as sob e la inicia i a, ¿d´onde me me o pa a a e igua lo?
Cues iona io inal: Anexo A.3.
9.1.3. Resul ados de la e aluaci´on
Dedicamos es a secci´on a mos a los esul ados ob enidos du an e el p oceso de e aluaci´on.
En p ime luga , el cuad o 9.1 mues a las m´e icas esul an es y la acumulaci´on de las
obse aciones ealizadas du an e las e aluaciones. Pa a calcula las m´e icas, hemos seguido
las siguien es eglas:
−Resoluci´on: Si m´as de un e cio de los usua ios necesi an ayuda, en onces conside amos
que se necesi a ayuda. Si m´as de un cua o no saben ealiza una a ea, en onces no
se sabe ealiza la a ea. El mo i o de es as decisiones es que, pa a que la aplicaci´on
sea in ui i a, las pe sonas que necesi en ayuda o no sepan ealiza a eas deben se una
mino ´ıa.
−Tiempo de espues a: Al a a se de un da o cuan i a i o, hemos op ado po ealiza la
media de los iempos.
Si se quie e e en de alle, de o ma indi idualizada, la in o maci´on, accede a:
Sesi´on 1:
109
CAP´
ITULO 9. EVALUACIONES
−Cues iona io p e io: Anexo A.4.
−Ta eas y obse aciones: Anexo A.1.
Sesi´on 2:
−Cues iona io p e io: Anexo A.4.
−Ta eas y obse aciones: Anexo A.2.
Sesi´on 3:
−Cues iona io p e io: Anexo A.4.
−Ta eas y obse aciones: Anexo A.3.
Sesi´on 4:
−Cues iona io p e io: Anexo A.4.
−Ta eas y obse aciones: Anexo A.4.
Sesi´on 5:
−Cues iona io p e io: Anexo A.4.
−Ta eas y obse aciones: Anexo A.5.
Po o o lado, la in o maci´on ecogida du an e los cues iona ios inales an´onimos ue an o
cuan i a i a como cuali a i a. En el cuad o 9.2 se obse a la p ime a y, a con inuaci´on, la
segunda:
La inicia i a ha enido muy buena acogida y ha pa ecido o iginal. Los en e is ados han
exp esado su in e ´es en ene un luga donde se pueda da isibilidad a si uaciones de
injus icia labo al, especialmen e con la impo ancia que es ´a cob ando a ni el social.
Adem´as, hacen hincapi´e en que se alimen e desde un luga de lib e acceso po los
abajado es, como es la ed social Twi e .
La p eocupaci´on m´as epe ida ha sido la elacionada con la iabilidad de los da os.
Conside an que al se ex a´ıdos de Twi e , debe ´ıa exis i alg´un medio po el cu´al se
e i iquen.
Mues an su in e ´es en que la inicia i a pueda gene aliza se a o o ipo de denuncias.
Lo que m´as ha llamado la a enci´on del dashboa d ha sido su cla idad y a ac i o isual.
Conside an que es in ui i o.
Conside an que ellos mismos le da ´ıan uso a la aplicaci´on en caso de es a buscando
abajo o i i una si uaci´on de injus icia. Tambi´en des acan el uso que pueden da le
o ganismos sociales y labo ales.
Algunas uncionalidades que p oponen a˜nadi son: di e encia sec o es labo ales, g´ene o,
edad o localizaci´on.
110
CAP´
ITULO 10. CONCLUSIONES Y TRABAJO A FUTURO
Emplea consul as m´as complejas a la ho a de ob ene wee s, es o acele a ´ıa eno me-
men e el n´ume o de denuncias ob enidas.
Se pod ´ıan emplea mejo es se ido es pa a ejecu a el c´odigo, ya que debido a los
ecu sos de los que disponen la ecolecci´on de da os es m´as len a que en un equipo de
uso con encional.
Un sis ema de de ecci´on de denuncias alsas pod ´ıa se una buena inco po aci´on al
p oyec o, aunque pod ´ıa p esen a muchos allos, dejando ue a denuncias que pudie an
se cie as.
10.2.2. Sob e el uso de la blockchain
Mos amos es ´ıas que pod ´ıan segui se pa a mejo a la in eg aci´on de es e p oyec o con
un uso m´as e icien e de ecnolog´ıas basadas en blockchain.
Redise˜na el sis ema de acceso a la memo ia del con a o que ealiza el c´odigo en
ja asc ip e i ando usa APIs de o os sis emas. Los con a os in eligen es son p´ublicos
y la in o maci´on que es os manejan ambi´en. Plan eamos que sea el p opio c´odigo de la
API que hemos c eado el que acceda de o ma di ec a a la memo ia del con a o. De es a
o ma, ob iene los da os minimizando las unciones en la blockchain que inc emen an el
gas o y educe el c´odigo usado en Solidi y.
U iliza c´odigo de bajo ni el EVM pa a educi el n´ume o de ins ucciones m´aquina que
gene a el compilado , de o ma que se op imice el consumo de gas del con a o.
Quiz´a hay o as o mas de ob ene la in o maci´on necesa ia pa a ealiza la ac ualizaci´on
de in o maci´on que es ´en menos limi adas en cuan o a lujo de ejecuci´on, lo que mejo-
a ´ıa signi ica i amen e el iempo empleado en es as unciones y ha ´ıa es a pa e m´as
escalable.
10.2.3. Sob e la in e az de usua io
Po un lado, as las e aluaciones ealizadas con usua ios inales, p oponemos ealiza
cambios en el dise˜no de la aplicaci´on que mejo en la expe iencia de usua io.
Des aca elemen os impo an es como el bo ´on pa a il a po echa, o dena o publica
la denuncia en Twi e .
Mejo a la b´usqueda den o de las denuncias (ma ca la palab a buscada en el ex o o
no exigi el uso de la @).
Valo a la in eg aci´on de la in e acci´on con Twi e den o de la aplicaci´on, y pe mi i
que el usua io ealice las acciones s´olo desde nues a web.
Po o o lado, plan eamos aumen a las uncionalidades ac uales del dashboa d haciendo
uso de los equisi os no implemen ados y p oponiendo nue as ideas.
117

CAP´
ITULO 10. CONCLUSIONES Y TRABAJO A FUTURO
Aumen a las opciones de il o y pe sonalizaci´on en unci´on de dis in os pa ´ame os:
g´ene o, edad, ipo de denuncia, sec o labo al al que pe enece e c. Es e cambio es
al amen e dependien e de la ecolecci´on de da os.
A pesa de que no odos los wee s incluyen la localizaci´on, se pod ´ıa alo a u iliza la
pa a mos a un mapa con los wee s disponibles o pa a ealiza un il ado sob e ellos.
Pe mi i compa a i as en base a los pa ´ame os an e io es, incluyendo alg´un ipo de
sis ema de epu aci´on.
Inclui un sis ema de ecogida de denuncias po pa e de aquellos usua ios que no engan
cuen a de Twi e . Pod ´ıa se an´onima o incluyendo un nomb e. Valo a la opci´on de
publica los desde una cuen a o icial de Injus wee .
118
CAP´
ITULO 11. CONCLUSIONS AND FUTURE WORK
Cap´ı ulo 11
Conclusions and u u e wo k
11.1. Conclusions
I can be concluded a his s age ha we ha e been able o de elop an applica ion ha
sa is ies he main goals es ablished a he beginning o he p ojec . They can be ound a
chap e 2. Fi s o all, Injus wee is a pla o m ha gi es isibili y o wo kplace denoun-
cemen s hanks o he use o g aphs and s a is ics. Acco ding o he esul s ob ained in he
e alua ion s age wi h use s, we ha e been able o implemen an in e ace wich is no only
in ui i e and a ac i e, bu also unc ional. I sa is ies mos o he equi emen s p oposed.
Besides ha , e en hough he e is a gigan ic amoun o da a in Twi e , we ha e been able
o ob ain only hose ela ed o wo kplace denouncemen s om Spanish-speaking use s.
Tha has been possible hanks o he use o na u al language p ocessing echniques (NLP).
As shown in he s age o e alua ion, he esul s ob ained om he analysis a e e y accu a e.
Finally, on ano he no e, we ha e also been able o mi iga e he p oblem o censo ship in
Twi e . I has been possible hanks o he use o dis ibu ed s o age, which gua an ees ha
e en i da a is dele ed om Twi e , we will s ill ha e a copy o i .
Howe e , in spi e o ob aining such good esul s and a inal p oduc ha makes us eel
p oud, we ha e o ake in o accoun ha i has i s limi a ions. The p ojec was e y ambi ious,
ha is why we had o d op some equi emen s a ea ly s ages. Mo eo e , we aced echnological
impedimen s. Below you can iew some examples.
As shown in chap e 6.2, some equi emen s we e conside ed non-p io i y and d opped.
The mos impo an one is ha we had o limi he numbe o cha ac e is ics ob ained
om he da a ( ype o complain , localiza ion, labo al sec o ...). To be able o implemen
i , we would ha e needed mo e da a and analy ical capabili y.
As we men ioned be o e, he use o dis ibu ed s o age has enable us o gua an ee ha
e en i da a is dele ed om Twi e , he e will always be a copy o i . Howe e , ha
could aise an issue. I ake da a is added o he blockchain, i will be kep o e e .
I is a his poin ha we would like o highligh ha we a e no only p oud o he esul s
jus shown, bu also o he p ocess ha led as o achie e hem. The de elopmen o his
119
CAP´
ITULO 11. CONCLUSIONS AND FUTURE WORK
p ojec has u ned ou o be e y en iching and has helped us lea n in di e en ways. On one
hand, we ha e used echnologies we had ne e wo ked wi h be o e. Fo example, we buil
he on end wi h Reac and he backend wi h blockchain. Tha is way, in spi e o ha ing a
pe iod o ime dedica ed o lea ning, we spen mos o he p ojec esea ching.
On he o he hand, we ha e pu in o p ac ice me hodologies ha we only knew om
a heo e ical app oach. The e o e, we ha e be e unde s ood how p ojec s a e managed and
ca ied ou . Especially aking in o accoun ha we we e a eam o six, and ha we had o
plan and coo dina e he p ojec om s a o inish. To gi e an example, one o he bigges
challenges we aced was he ime whe e we had o pu all he p ojec oge he . F om ha
poin on, communica ion was a key pa o i . E e y change made had o be discussed and
planned be o ehand.
Finally, we wan o emphasize ha due o he na u e o he ini ia i e we ha e lea ned how
o sol e a eal-wo ld p oblem and empa hize wi h he people who a e in oled in i . We we e
able o use ou echnological knowledge o de elop an applica ion by bea ing in mind ha
use s do no usually ha e i .
To conclude, we ha e c ea ed a p oduc ha e en wi h i ’s limi a ions, i is able o sa is y
he main goals es ablished. Mo eo e , hanks o he p ocess ollowed, we ha e acqui ed skills
ha will be e y use ul in u u e p ojec s.
11.2. Fu u e wo k
While de eloping ou p ojec , and hanks o he esul s ob ained in he s age o e alua ion,
we ha e been able o de ec some p oblems and changes ha could be made. We p opose
hem as u u e wo k and encou age anyone in e es ed o de elop hem by using ee so wa e.
11.2.1. Da a ecollec ion
We p opose he ollowing ways o imp o ing he way in which da a is ecollec ed and he
kind o da a ob ained.
To ob ain mo e quan i y and di e si y o da a (gende , age, localiza ion, ype o com-
plain ...).
To imp o e he algo i hm used. Fo example, by inc emen ing he size o he dic iona y
o using o he me hods o classi ica ion such as neu al ne wo ks.
To inc ease he complexi y o he que ies made so ha wee s could be ob ained a a
highe speed.
To conside using as e se e s. Righ know we ace some limi a ions.
To include a sys em which could help de ec ake complain s.
120
CAP´
ITULO 11. CONCLUSIONS AND FUTURE WORK
11.2.2. Blockchain
The e iciency o his p ojec could be imp o ed by making some changes in he backend.
We p opose he ollowing ideas ela ed o he use o he blockchain.
To change he sys em in which we access he da a o he sma con ac so ha we
a oid using APIs om o he sys ems. We p opose o implemen hose unc ions in ou
ja asc ip code o dec ease he cos s o he ansac ions.
To use code EVM o educe he numbe o machine ins uc ions. This could u he
dec ease he cos s o he ansac ions.
To conside ob aining he in o ma ion equi ed o upda e he da a om o he sou ces.
Righ now he API om Twi e is e y limi ed, so his change would make he p oyec
mo e scalable.
11.2.3. Use in e ace
On one hand, a e ha ing in e iewed many use s, we ha e ound some changes ha could
be made in o de o imp o e he use expe ience.
To gi e mo e isibili y o impo an ea u es such as he bu on used o il e , so and
publish a complain in Twi e .
To imp o e he way in which wee s a e sea ched o ( o highligh he wo d o o no
equi e he use o @).
To conside he possibili y o including all he in e ac ion wi h Twi e inside he dash-
boa d, so ha use s can make e e y possible ac ion wi hou lea ing he web page.
On he o he hand, we p opose o he unc ionali ies ha could be added.
To inc ease he il e op ions and he capaci y o gi ing a pe sonalized expe ience by
including mo e in o ma ion (gende , age, ype o complain , labo al sec o ...).
To include maps and in o ma ion ela ed o localiza ion.
To include diag ams ha compa e wee s acco ding o he opics men ioned be o e. I
could be a good idea o also include a epu a ion sys em.
To implemen a way o making complain s. I could be anonymous. Conside he possi-
bili y o publishing hem om an o icial Injus wee accoun .
121
Anexos
122

AP´
ENDICE A. ENTREVISTAS
Ap´endice A
En e is as
A.1. Gui´on inicial
“La sesi´on de hoy a a consis i en una e aluaci´on de nues a aplicaci´on, que es un dash-
boa d en el que se mues an g ´a icos e in o maci´on sob e denuncias labo ales. Yo oy a mode a
la sesi´on, y ´u se ´as el usua io de la aplicaci´on.
Vamos a plan ea e una se ie de a eas que end ´as que in en a esol e en la p´agina web.
Du an e es as a eas, me gus a ´ıa que dije as en oz al a odo lo que se e pase po la cabeza.
Po ejemplo, los p oblemas que encuen as, las cosas que e con unden o lo que m´as e gus e.
Yo no oy a in e eni mien as ´u espondes. Es p obable que haya momen os de silencio
o que e anime a que sigas esol i´endolo sin mi ayuda. Es o es po que que emos sabe c´omo
un usua io cualquie a u iliza ´ıa la aplicaci´on sin ayuda ex e na.
Cuando hayamos e minado, e ha emos una peque˜na en e is a pa a ecoge conclusiones.
Si ienes alguna duda sob e el p oceso o sob e lo que ienes que hace , puedes hace la aho a.”
A.2. Cues iona io p e io
−¿Cu´an os a˜nos ienes? (Respues a co a)
−¿Has su ido alguna si uaci´on de injus icia labo al? (S´ı/No)
−¿Has p esenciado alguna si uaci´on de injus icia labo al que no e haya pasado a i?
(S´ı/No)
−¿Alguna ez has denunciado si uaciones de injus icia labo al? (S´ı/No)
−Indica u si uaci´on p o esional (es udian e, ipo de abajo, pa o...) (Respues a co a)
−¿T abajas en el sec o p´ublico o p i ado? (P´ublico/P i ado/O o)
−¿Has u ilizado alguna ez un dashboa d? (U ilizo a dia io/He usado a ias eces/Me
suena habe is o alguno/Nunca)
123
AP´
ENDICE A. ENTREVISTAS
−¿Tienes expe iencia analizando g ´a icas? (S´ı, odo ipo de g ´a icas/S´ı, sal o que sean
muy complejas/S´ı, s´olo g ´a icas simples/Ninguna expe iencia)
−¿C´omo de c´omodo e sien es en endiendo el lenguaje de Twi e (hash ags, likes, e -
wee s, usua ios...)? (Soy expe o/a/Algunos concep os me allan/No s´e nada)
A.3. Cues iona io inal
−¿Qu´e e ha pa ecido la aplicaci´on y la inicia i a? (Respues a la ga)
−¿Qu´e es lo que m´as e ha llamado la a enci´on? ¿Po qu´e? (Respues a la ga)
−¿C ees que da ´ıas uso a la aplicaci´on? ¿Po qu´e s´ı/no? (Respues a la ga)
−¿Hay unciones que e hayan gus ado especialmen e? ¿Alguna que no? (Respues a la ga)
−¿Hay algo que no e haya quedado cla o con ella? (Respues a la ga)
−La aplicaci´on web me ha esul ado ´acil de usa . En caso con a io, ¿po qu´e? (1 o al
desacue do - 5 o al acue do)
−La in e az me esul a ag adable a la is a. En caso con a io, ¿po qu´e? (1-5)
−Me esul a ´u il la in o maci´on que mues an las g ´a icas. Indica si hay algo que no. (1-5)
−La in o maci´on que mues a la aplicaci´on me pa ece iable. Indica posibles p eocupacio-
nes. (1-5)
−Es sencillo accede a Twi e . (1-5)
−Es ´u il accede a Twi e . (1-5)
−(Comen a ios sob e la in e acci´on con Twi e )
−Es sencillo il a los da os. (1-5)
−Es ´u il il a los da os. (1-5)
−(Comen a ios sob e los il os)
−Es sencillo ealiza b´usquedas. (1-5)
−Es ´u il ealiza b´usquedas. (1-5)
−(Comen a ios sob e las b´usquedas)
124
AP´
ENDICE A. ENTREVISTAS
−Es sencillo e denuncias. (1-5)
−Es ´u il e denuncias. (1-5)
−(Comen a ios sob e las denuncias)
−Es sencillo en ende las g ´a icas. (1-5)
−Son ´u iles las g ´a icas. (1-5)
−(Comen a ios sob e las g ´a icas)
−¿Has echado en al a algo que conside as impo an e a la ho a de ob ene in o maci´on
sob e p eca iedad labo al? En caso a i ma i o, ¿el qu´e? (S´ı/No)
−¿Recomenda ´ıas la aplicaci´on a ...? (Respues a la ga)
−Si quie es a˜nadi ecomendaciones, opiniones, c ´ı icas o cualquie cosa que no haya
quedado e lejada an es, puedes hace lo. (Respues a la ga)
A.4. Desa ollo en e is as
Cues iona ios p e ios
Usua io 1
¿Cu´an os a˜nos ienes?: 51
¿Has su ido alguna si uaci´on de injus icia labo al?: S´ı
¿Has p esenciado alguna si uaci´on de injus icia labo al que no e haya pasado a i?: S´ı
¿Alguna ez has denunciado si uaciones de injus icia labo al?: S´ı
Si quie es desa olla dichas si uaciones de injus icia labo al, puedes hace lo aqu´ı: CON-
TRATACI´
ON EN CATEGOR´
IA INFERIOR, “CONTRATACI´
ON” SIN FORMALIZACI´
ON
DE CONTRATO, CONTRATACI´
ON MEDIA JORNADA TRABAJANDO M´
AS TIEM-
PO, BECARIO SIN COBRAR/FORMALIZACI´
ON DE BECA/REALIZANDO TRABAJO
SIN FORMACI´
ON, ACOSO LABORAL, DESPIDO IMPROCEDENTE...
Indica u si uaci´on p o esional (es udian e, ipo de abajo, pa o...): FUNCIONARIO
¿T abajas en el sec o p´ublico o p i ado?: P´ublico
¿Has u ilizado alguna ez un dashboa d?: He usado a ias eces
¿Tienes expe iencia analizando g ´a icas?: S´ı, sal o que sean muy complejas
125
AP´
ENDICE A. ENTREVISTAS
¿C´omo de c´omodo/a e sien es en endiendo el lenguaje de Twi e ? (Hash ags, likes,
e wee s, usua ios...): Algunos concep os me allan
Usua io 2
¿Cu´an os a˜nos ienes?: 22
¿Has su ido alguna si uaci´on de injus icia labo al?: S´ı
¿Has p esenciado alguna si uaci´on de injus icia labo al que no e haya pasado a i?: S´ı
¿Alguna ez has denunciado si uaciones de injus icia labo al?: No
Si quie es desa olla dichas si uaciones de injus icia labo al, puedes hace lo aqu´ı: p ´ac i-
cas sin emune a , explo aci´on labo al
Indica u si uaci´on p o esional (es udian e, ipo de abajo, pa o...): es udian e de m´as e
de la ama biosani a ia
¿T abajas en el sec o p´ublico o p i ado?: P´ublico
¿Has u ilizado alguna ez un dashboa d?: He usado a ias eces
¿Tienes expe iencia analizando g ´a icas?: S´ı, odo ipo de g ´a icas
¿C´omo de c´omodo/a e sien es en endiendo el lenguaje de Twi e ? (Hash ags, likes,
e wee s, usua ios...): Soy expe o/a
Usua io 3
¿Cu´an os a˜nos ienes? : 58
¿Has su ido alguna si uaci´on de injus icia labo al?: S´ı
¿Has p esenciado alguna si uaci´on de injus icia labo al que no e haya pasado a i?: S´ı
¿Alguna ez has denunciado si uaciones de injus icia labo al?: No
Si quie es desa olla dichas si uaciones de injus icia labo al, puedes hace lo aqu´ı: En mi
caso ue on hace a˜nos con una si uaci´on pe sonal di ´ıcil y los u e que asumi , hoy no
se dan y si se die an no lo acep a ´ıa. He p esenciado si uaciones injus as elacionadas
con el mal a o e bal y menosp ecio de las pe sonas que no denunci´e en su momen o
al p esencia las y me a epien o de no habe lo hecho.
Indica u si uaci´on p o esional (es udian e, ipo de abajo, pa o...): Soy p o esional en
una o ganizaci´on de IT y me dedico a la Ges i´on y seguimien o de los se icios que
p es amos a e ce os.
¿T abajas en el sec o p´ublico o p i ado?: P i ado
126
BIBLIOGRAF´
IA
Bibliog a ´ıa
[1] A inn,A inn. URL: h ps://gi hub.com/da en /a inn.
[2] Ai bnb,Visx. URL: h ps://ai bnb.io/ isx/.
[3] Amazon,Amazon Web Se ices. URL: h ps://aws.amazon.com/es/.
[4] T. Analy ics,Twi e analy ics. URL: h ps://analy ics. wi e .com/abou .
[5] D. G. W. And eas M. An onopoulos,Mas e ing E he eum: Building Sma
Con ac s and DApps, O’Reilly Media, Inc., 1s ed., 2018.
[6] ApexCha s,Apexcha s. URL: h ps://apexcha s.com/.
[7] A. Banks and E. Po cello,Lea ning Reac : Func ional Web De elopmen wi h
Reac and Redux, O’Reilly Media, Inc., 1s ed., 2017.
[8] O. W. Be elsen and S. Bødke ,Ac i i y heo y, HCI models, heo ies, and
amewo ks: Towa d a mul idisciplina y science, (2003), pp. 291–324.
[9] Black Li es Ma e ,Black Li es Ma e . URL: h ps://blackli esma e .c
om/.
[10] body pa se ,body pa se . URL: h ps://gi hub.com/exp essjs/body-pa se .
[11] Boo s ap,Boo s ap. URL: h ps://ge boo s ap.com/.
[12] Ce i i,Ce i i. URL: h ps://ce i iio. ead hedocs.io/en/la es /.
[13] Cha s.js,Cha s.js. URL: h ps://www.cha js.o g/docs/la es /.
[14] V. S. Code,Visual s udio code. URL: h ps://code. isuals udio.com/.
[15] codecs,codecs. URL: h ps://docs.py hon.o g/3/lib a y/codecs.h ml.
[16] E. Commission, J. R. Cen e, P. De Filippi, J. B ekke, E. Ma ´
ınez Vi-
cen e, G. Lop´
ez Mo ales, C. O gaz Alonso, B. Bod´
o, S. Meiklejohn,
S. Hassan, K. Beec o , A. Figue as Aguila , D. Rozas, and M. A zo-
i,Scanning he Eu opean ecosys em o dis ibu ed ledge echnologies o social and
public good : wha , why, whe e, how, and ways o mo e o wa d, Publica ions O ice,
2020.
133

BIBLIOGRAF´
IA
[17] M. Cooley,Human-cen e ed design, In o ma ion design, (2000), pp. 59–81.
[18] M. Dalili and M. Das ani,The ole o wi e du ing he co id-19 c isis: A sys e-
ma ic li e a u e e iew, Ac a In o ma ica P agensia, 9 (2020).
[19] M. De elope ,Ja asc ip . URL: h ps://de elope .mozilla.o g/es/docs/We
b/Ja aSc ip .
[20] diag ams.ne ,diag ams.ne . URL: h ps://www.diag ams.ne /.
[21] M. Do ash,Machine lea ning s. ule based sys ems in nlp. URL: h ps://medi
um.com/ iendly-da a/machine-lea ning- s- ule-based-sys ems-in-nlp-
5476de53c3b8.
[22] EasyOCR,Easyoc . URL: h ps://gi hub.com/JaidedAI/EasyOCR.
[23] emoji,emoji. URL: h ps://gi hub.com/ca pedm20/emoji/.
[24] E he eum,Solidi y gi hub. URL: h ps://gi hub.com/e he eum/solidi y.
[25] E he eum.o g,E he eum. URL: h ps://e he eum.o g/en/de elope s/docs/
apis/ja asc ip /.
[26] , E he eum Whi epape . URL: h ps://e he eum.o g/en/whi epape /.
[27] E he scan,E he scan. URL: h ps://e he scan.io/.
[28] exp ess,exp ess. URL: h ps://exp essjs.com/es/.
[29] GIMP,GIMP - image manipula ion. URL: h ps://www.gimp.o g/.
[30] Gi hub,Gi hub. URL: h ps://gi hub.com/.
[31] D. Glezos,E e y hing you need o know abou machine ansla ion. URL: h ps:
//es. ansi ex.com/blog/2015/machine- ansla ion-101/.
[32] Google ans,Google. URL: h ps://py-google ans. ead hedocs.io/en/la
es /.
[33] A. G uzd and P. . Mai,Co id-19 misin o ma ion po al – a apid esponse p ojec
om he ye son uni e si y social media lab.
[34] J. Hao, Y. Sun, and H. Luo,A sa e and e icien s o age scheme based on block-
chain and ip s o ag icul u al p oduc s acking, Jou nal o Compu e s, 29 (2018),
pp. 158–167.
[35] T. hdwalle p o ide ,T u le hdwalle -p o ide . URL: h ps://gi hub.com/
u lesui e/ u le/ ee/mas e /packages/hdwalle -p o ide .
[36] He oku,He oku. URL: h ps://id.he oku.com/.
134
BIBLIOGRAF´
IA
[37] HTTP,HTTP docs. URL: h ps://h pwg.o g/specs/ c7231.h ml.
[38] INE,INE g ´a icos. URL: h ps://www.ine.es/ss/Sa elli e?L=es ES&c=INESe
ccion C&cid=1259925463134&p=1254735110672&pagename=P oduc osYSe icio
s%2FPYSLayou .
[39] In u a,In u a. URL: h ps://docs.in u a.io/in u a.
[40] Ins ag am @ abajos uine os,Ins ag am @ abajos uine os. URL: h ps://ww
w.ins ag am.com/ abajos uine os/?hl=es.
[41] ins ag api,ins ag api. URL: h ps://adw0 d.gi hub.io/ins ag api/.
[42] IPFS,IPFS. URL: h ps://ip s.io/.
[43] Jobs ice,Jobs ice. URL: h ps:// wi e .com/jobs iceo icial.
[44] Js2Py,Js2Py. URL: h ps://gi hub.com/Pio Dabkowski/Js2Py.
[45] D. Ju a sky and J. H. Ma in,Speech and Language P ocessing.
[46] Key ing,Key ing. URL: h ps://gi hub.com/ja aco/key ing.
[47] R. Kuma i,4 ypes o machine ansla ion in nlp. URL: h ps://www.analy icss
eps.com/blogs/4- ypes-machine- ansla ion-nlp.
[48] LaTeX p ojec eam ,The La ex P ojec . URL: h ps://www.la ex-p ojec .
o g/.
[49] M. Lea n,Tex classi ica ion: Wha i is and why i ma e s. URL: h ps://monkey
lea n.com/ ex -classi ica ion/.
[50] Licencia c ea i e commons,C ea i e commons. URL: h ps://c ea i ecomm
ons.o g/licenses/by/4.0/.
[51] Licencia GNU,GNU. URL: h ps://www.gnu.o g/licenses/gpl-3.0.h ml.
[52] D. K. Mah o and L. Singh,A di e in o web sc ape wo ld, in 2016 3 d In e na io-
nal Con e ence on Compu ing o Sus ainable Global De elopmen (INDIACom), IEEE,
2016, pp. 689–693.
[53] A. Ma amo os-Fe n´
andez and J. Fa kas,Racism, ha e speech, and social
media: A sys ema ic e iew and c i ique, Tele ision & New Media, 22 (2021), pp. 205–
224.
[54] Me Too Mo emen ,Me Too Mo emen . URL: h ps://me oom m .o g/.
[55] Me amask. URL: h ps://me amask.io/.
[56] Minimal F ee,Minimal F ee Dashboa d. URL: h ps://gi hub.com/minimal-
ui-ki /ma e ial-ki - eac .
135
BIBLIOGRAF´
IA
[57] MongoDB,MongoDB A las. URL: h ps://www.mongodb.com/a las/da abase.
[58] , MongoDB Manual. URL: h ps://www.mongodb.com/docs/manual/.
[59] A. Z. Mus a eez,Tex classi ica ion in nlp. URL: h ps://www.educa i e.io/e
dp esso/ ex -classi ica ion-in-nlp.
[60] S. Nakamo o,Bi coin: A pee - o-pee elec onic cash sys em, 2009.
[61] R. T. Nandi a K ishnan, Jiayan Gu and L. C. Ab oms,Resea ch no e: Exa-
mining how a ious social media pla o ms ha e esponded o co id-19 misin o ma ion,
Ha a d Kennedy School (HKS) Misin o ma ion Re iew, (2021).
[62] J. Nielsen,Ten usabili y heu is ics, 2005.
[63] Ni o,Ni o. URL: h ps://ni o. ocks/.
[64] node e ch,node- e ch. URL: h ps://gi hub.com/node- e ch/node- e ch.
[65] node schedule,node-schedule. URL: h ps://gi hub.com/node-schedule/nod
e-schedule.
[66] Node.js,Node.js. URL: h ps://nodejs.o g/es/.
[67] npm,Abou npm. URL: h ps://docs.npmjs.com/abou -npm.
[68] , Paque es npm. URL: h ps://www.npmjs.com/.
[69] C. C. (O ganiza ion),Copyle : manual de uso, T a ican es de Sue˜nos, 2006.
[70] O e lea ,O e lea . URL: h ps://es.o e lea .com/.
[71] pandas,pandas. URL: h ps://gi hub.com/pandas-de /pandas/.
[72] Po wi u e,Po wi u e. URL: h p://po wi u e.com/.
[73] PyCha m,PyCha m. URL: h ps://www.je b ains.com/es-es/pycha m/.
[74] PyMongo,PyMongo. URL: h ps://gi hub.com/mongodb/mongo-py hon-
d i e .
[75] Py esse ac ,Py esse ac . URL: h ps://gi hub.com/madmaze/py esse ac .
[76] Py hon,Py hon. URL: h ps://www.py hon.o g/.
[77] py hon do en ,py hon-do en . URL: h ps://gi hub.com/ heskuma /py hon-
do en .
[78] D. Qiu and R. S ikan ,Modeling and pe o mance analysis o bi o en -like pee -
o-pee ne wo ks, SIGCOMM Compu . Commun. Re ., 34 (2004), p. 367–378.
[79] Reac ,Reac . URL: h ps://es. eac js.o g/.
136
BIBLIOGRAF´
IA
[80] , Reac De elope Tools. URL: h ps://es. eac js.o g/blog/2019/08/15/n
ew- eac -de ools.h ml.
[81] eac wo dcloud, eac -wo dcloud. URL: h ps:// eac -wo dcloud.ne li
y.app/.
[82] Recha s.js,Recha s.js. URL: h ps:// echa s.o g/en-US/api.
[83] emix, emix. URL: h ps:// emix-ide. ead hedocs.io/en/la es /.
[84] Rinkeby,Rinkeby. URL: h ps:// inkeby.e he scan.io/.
[85] R. Roge s,Debanalizing wi e : The ans o ma ion o an objec o s udy, in P o-
ceedings o he 5 h Annual ACM Web Science Con e ence, WebSci ’13, New Yo k, NY,
USA, 2013, Associa ion o Compu ing Machine y, p. 356–365.
[86] Rops en,Rops en. URL: h ps:// ops en.e he scan.io/.
[87] S. S,S a is ical s ule based machine ansla ion; a case s udy on indian language
pe spec i e, 2017.
[88] E. Sa a ia,Fundamen als o nlp - chap e 1 - okeniza ion, lemma iza ion, s emming,
and sen ence segmen a ion. URL: h ps://dai .ai/no ebooks/nlp/2020/03/19
/nlp basics okeniza ion segmen a ion.h ml.
[89] K. Sha ma, S. Seo, C. Meng, S. Rambha la, and Y. Liu,Co id-19 on social
media: Analyzing misin o ma ion in wi e con e sa ions, (2020).
[90] Sma ,Inicia i a Sma . URL: h ps://sma -ib.coop/.
[91] snsc ape,snsc ape. URL: h ps://gi hub.com/Jus Ano he A chi is /snsc a
pe.
[92] Solidi y,Solidi y. URL: h ps://docs.solidi ylang.o g/.
[93] spaCy,spaCy. URL: h ps://gi hub.com/explosion/spaCy.
[94] S anza,S anza. URL: h ps://gi hub.com/s an o dnlp/s anza.
[95] S a is ics,S a is ics. URL: h ps://gi hub.com/s an o dnlp/s anza.
[96] D. S ojano ski, I. Dimi o ski, and G. Madja o ,Twee iz: Twi e da a
isualiza ion, (2014). URL: h ps://www.csc2.ncsu.edu/ acul y/healey/ wee
iz/ wee app/.
[97] Subp ocess,Subp ocess. URL: h ps://docs.py hon.o g/3/lib a y/subp oce
ss.h ml.
[98] eamgan , eamgan . URL: h ps://app. eamgan .com/.
[99] Tex blob,Tex blob. URL: h ps:// ex blob. ead hedocs.io/en/de /.
137
BIBLIOGRAF´
IA
[100] Th eading,Th eading. URL: h ps://docs.py hon.o g/3/lib a y/ h eadin
g.h ml.
[101] C. Tim,Plan illa pape dashboa d eac . URL: h ps://www.c ea i e- im.com/
p oduc /pape -dashboa d- eac .
[102] Time,Time. URL: h ps://docs.py hon.o g/3/lib a y/ ime.h ml.
[103] T ackMyHash ag,T ackmyhash ag. URL:h ps://www. ackmyhash ag.com/.
[104] M. T ig´
as Gallego,Me odologia sc um, (2012).
[105] Twi e ,B and Twi e guidelines. URL: h ps://abou . wi e .com/en/who-
we-a e/b and- oolki .
[106] , Twi e API (docs). URL: h ps://de elope . wi e .com/en/docs.
[107] , Twi e o websi es (docs). URL: h ps://de elope . wi e .com/en/doc
s/ wi e - o -websi es.
[108] wi e -api 2, wi e -api- 2. URL: h ps://gi hub.com/plhe y/node- wi
e -api- 2.
[109] Twi e hash ag #Figh Fo 15,Twi e hash ag #Figh Fo 15. URL: h ps:
// wi e .com/sea ch?q=%23Figh Fo 15&s c= yped que y.
[110] Twi e hash ag #Malpasopagaya,Twi e hash ag #Malpasopagaya. URL:
h ps:// wi e .com/hash ag/Malpasopagaya?s c=hash ag click.
[111] Twi e @jobsmie da,Twi e @jobsmie da. URL: h ps:// wi e .com/jobs
mie da?lang=es.
[112] M. UI,Ma e ial UI. URL: h ps://mui.com/.
[113] H. Ullah, Z. Ullah, S. Maqsood, and A. Ha eez,Web sc ape e ealing
ends o a ge p oduc s and new insigh s in online shopping websi es, In e na ional
Jou nal o Ad anced Compu e Science and Applica ions, 9 (2018), pp. 427–432.
[114] S. Vieweg,Mic oblogged con ibu ions o he eme gency a ena: Disco e y, in e p e-
a ion and implica ions, (2010).
[115] Vincen Pasquie , Alex J. Wood,The powe o social media as a labou cam-
paigning ool: lessons om ou walma and he igh o 15 — ETUI, he eu opean
ade union ins i u e, 2020.
[116] Y. Wang, M. McKee, A. To bica, and D. S uckle ,Sys ema ic li e a u e
e iew on he sp ead o heal h- ela ed misin o ma ion on social media, Social Science
Medicine, 240 (2019), p. 112552.
[117] Web3,Web3. URL: h ps://web3js. ead hedocs.io/en/ 1.7.0/.
138

BIBLIOGRAF´
IA
[118] Z. Wes ,S op wo ds: Remo ing wo ds wi hou meaning. URL: h ps://www.alph
a i hms.com/s op-wo ds-lis s- emo al-195521/.
[119] A. Williams,Use -cen e ed design, ac i i y-cen e ed design, and goal-di ec ed design:
a e iew o h ee me hods o designing web applica ions, in P oceedings o he 27 h
ACM in e na ional con e ence on Design o communica ion, 2009, pp. 1–8.
[120] B. Wi e ames,Balsamiq wi e ames. URL: h ps://balsamiq.com/wi e ame
s/.
[121] A. Wood,Ne wo ks o injus ice and wo ke mobilisa ion a walma , Indus ial Rela-
ions Jou nal, 46 (2015).
[122] B. Zhao,Web sc aping, Encyclopedia o big da a, (2017), pp. 1–3.
139