scieee Science in your language
[ca] (orig)

Desenvolupament d’una aplicació web per a una ONG

Abstract

La Fundació UBUNTU és una ONG d’origen català presidida per Federico Mayor Zaragoza i amb seu a Barcelona que, per fer front al procés de globalització que sofreix el món en l’actualitat, s’encarrega de coordinar les activitats de les diferents organitzacions d’arreu del món que formen la societat civil internacional per tal que puguin incidir en els òrgans de govern, tant nacionals com internacionals, de manera que la societat civil pugui donar la seva opinió i tingui certa capacitat de decisió en aspectes polítics, socials, culturals i econòmics que afecten a tots els habitants del planeta. En aquest marc, l’ONG es planteja la necessitat d’un espai virtual on determinades organitzacions de la societat civil i estats implicats puguin publicar i compartir documents a fi de discutir-ne el contingut i intercanviar opinions sobre temes concrets. És per això que la Fundació UBUNTU m’ha encomanat el desenvolupament d’una aplicació que permeti dur a terme totes les funcionalitats esmentades anteriorment, per les quals es pot deduir clarament l’estructuració de l’aplicació en un fòrum. Per altra banda, em trobo al final de la carrera i necessito escollir un projecte (PFC). Tot i que inicialment he pensat d’agafar l’aplicació que em proposen com a projecte, després de rumiar-ho, considero que no té entitat suficient. Malgrat tot, com que sembla una aplicació interessant, he buscat la manera d’estendre-la per aconseguir un projecte amb prou gruix. La idea, doncs, és desenvolupar el fòrum amb la metodologia que fa servir l’ONG actualment i desenvolupar-lo posteriorment a partir d’un gestor de continguts (Content Management System, CMS) per tal de comparar les metodologies i el funcionament de l’aplicació; i en funció dels resultats obtinguts valorar la possibilitat d’implantació del CMS als llocs web de la Fundació UBUNTU, ja que segons la meva opinió la plataforma actual es basa en un sistema arcaic i poc amigable.

Read accessible full text

Desenvolupament d’una aplicació web per a una ONG

Author: Ginesta Marquès, Marc
Publisher: Universitat Politècnica de Catalunya
Year: 2009
Source: https://upcommons.upc.edu/bitstream/2099.1/7662/1/projecte_marc_ginesta.pdf
Tí ol: Desen olupamen d’una aplicació web pe a una ONG
Volum: 1
Alumne: Ma c Gines a Ma quès
Di ec o /Ponen : Ma ia Ca me Que Boso
Depa amen : LSI
Da a: 30 de juny de 2009
DADES DEL PROJECTE
Tí ol del P ojec e: Desen olupamen d’una aplicació web pe a una ONG
Nom de l'es udian : Ma c Gines a Ma quès
Ti ulació: Enginye ia Tècnica en In o mà ica de Ges ió
C èdi s: 22,5
Di ec o /Ponen : Ma ia Ca me Que Boso
Depa amen : LSI
MEMBRES DEL TRIBUNAL (nom i signa u a)
P esiden a: C is ina Gómez Seoane
Vocal: Joan T ias Pai ó
Sec e à ia: Ma ia Ca me Que Boso
QUALIFICACIÓ
Quali icació numè ica:
Quali icació desc ip i a:
Da a:
Desen olupamen d’una aplicació web pe a una ONG
- 1 -
Índex
1 Con ex del P ojec e _____________________________________________________3
2 Objec iu del P ojec e_____________________________________________________4
3 E apes del p ojec e ______________________________________________________5
4 Plani icació i es udi econòmic _____________________________________________6
4.1
Plani icació _____________________________________________________________ 6
4.2
Es udi econòmic _________________________________________________________ 8
5 Anàlisi de eque imen s _________________________________________________ 11
5.1
Desc ipció ex ual de l’aplicació ___________________________________________ 11
6 Reque imen s de alla s __________________________________________________14
6.1
Reque imen s Funcionals ________________________________________________ 14
6.2
Reque imen s No Funcionals _____________________________________________ 19
7 Especi icació __________________________________________________________22
7.1
Diag ames de casos d’ús _________________________________________________ 22
7.2
Desc ipció de casos d’ús__________________________________________________ 25
7.3
Diag ama de classes _____________________________________________________ 43
8 Disseny i implemen ació de l’aplicació en la me odologia adicional_____________46
8.1
A qui ec u a i pla a o ma ________________________________________________ 46
8.2
Disseny de la base de dades _______________________________________________ 47
8.3
Disseny dels ac amen s _________________________________________________ 54
8.4
Implemen ació _________________________________________________________ 58
9 Desen olupamen sob e un Sis ema Ges o de Con ingu s (CMS)________________73
9.1
Què són els CMS?_______________________________________________________ 73
9.2
Jus i icació de l’ús i implan ació d’un CMS _________________________________ 73
9.3
Selecció d’un CMS ______________________________________________________ 75
9.4
Disseny i implemen ació de l’aplicació a pa i del CMS escolli ________________ 81
10 P o es _______________________________________________________________94
Desen olupamen d’una aplicació web pe a una ONG
- 2 -
11 Compa ació de les dues me odologies de desen olupamen ___________________96
12 Compa ació de ca ac e ís iques no- uncionals de les aplicacions ob ingudes ___100
13 Conside acions inals ________________________________________________103
14 Conclusions________________________________________________________105
Annex I: Ins al·lació de D upal ______________________________________________106
Annex II: Ins al·lació d’un ema a D upal _____________________________________108
Annex III: Ins al·lació d’un mòdul a D upal ___________________________________ 110
Bibliog a ia ______________________________________________________________ 111

Desen olupamen d’una aplicació web pe a una ONG
- 3 -
1 Con ex del P ojec e
La Fundació UBUNTU és una ONG d’o igen ca alà p esidida pe Fede ico Mayo
Za agoza i amb seu a Ba celona que, pe e on al p océs de globali zació que
so eix el món en l’ac uali a , s’enca ega de coo dina les ac i i a s de les di e en s
o gani zacions d’a eu del món que o men la socie a ci il in e nacional pe al que
puguin incidi en els ò gans de go e n, an nacionals com in e nacionals, de mane a
que la socie a ci il pugui dona la se a opinió i ingui ce a capaci a de decisió en
aspec es polí ics, socials, cul u als i econòmics que a ec en a o s els habi an s del
plane a.
En aques ma c, l’ONG es plan eja la necessi a d’un espai i ual on de e minades
o gani zacions de la socie a ci il i es a s implica s puguin publica i compa i
documen s a i de discu i -ne el con ingu i in e can ia opinions sob e emes
conc e s. És pe això que la Fundació UBUNTU m’ha encomana el
desen olupamen d’una aplicació que pe me i du a e me o es les uncionali a s
esmen ades an e io men , pe les quals es po dedui cla amen l’es uc u ació de
l’aplicació en un ò um.
Pe al a banda, em obo al inal de la ca e a i necessi o escolli un p ojec e (PFC).
To i que inicialmen he pensa d’aga a l’aplicació que em p oposen com a p ojec e,
desp és de umia -ho, conside o que no é en i a su icien . Malg a o , com que
sembla una aplicació in e essan , he busca la mane a d’es end e-la pe aconsegui
un p ojec e amb p ou g uix.
La idea, doncs, és desen olupa el ò um amb la me odologia que a se i l’ONG
ac ualmen i desen olupa -lo pos e io men a pa i d’un ges o de con ingu s
(Con en Managemen Sys em, CMS) pe al de compa a les me odologies i el
uncionamen de l’aplicació; i en unció dels esul a s ob ingu s alo a la possibili a
d’implan ació del CMS als llocs web de la Fundació UBUNTU, ja que segons la me a
opinió la pla a o ma ac ual es basa en un sis ema a caic i poc amigable.
Desen olupamen d’una aplicació web pe a una ONG
- 4 -
2 Objec iu del P ojec e
El p ojec e p e én e el seguimen del p océs comen a en el capí ol an e io . Així
doncs, d’una banda l’objec iu és desen olupa l’aplicació amb un en ocamen més
adicional seguin la me odologia usada pe l’ONG sob e la pla a o ma habi ual, i de
l’al a, desen olupa l’aplicació a pa i de la implan ació d’un ges o de con ingu s
(CMS) que acili i la eina a l’ho a de c ea nous con ingu s i ges iona -los.
Tanma eix, del segon cas, se’n desp enen alguns objec ius addicionals:
• Fe un es udi de me ca sob e els CMS exis en s (escolli els més adequa s
en unció dels eque imen s, ca ac e ís iques, di e ències signi ica i es, e c.).
• Escolli un CMS adequa d’aco d amb els eque imen s de l’ONG.
• Desen olupa l’aplicació usan el CMS escolli .
Finalmen , un cop desen olupades les dues aplicacions, ambé es ol:
• Compa a el p océs de desen olupamen adicional en on d’un
desen olupamen basa en p oduc es ja exis en s i eu e els a an a ges i
incon enien s de cada un.
• Compa a algunes ca ac e ís iques no- uncionals d’ambdues aplicacions que
énen donades pel e de la pla a o ma sob e la que s’han implemen a .
• Valo a la possibili a d’implan ació pe manen del CMS.
Desen olupamen d’una aplicació web pe a una ONG
- 5 -
3 E apes del p ojec e
El p océs de desen olupamen del so wa e sol di idi -se en les següen s e apes:
anàlisi de eque imen s, especi icació, disseny, implemen ació i p o es.
Abans de comença p òpiamen amb el desen olupamen , es a eali za una
plani icació inicial del p ojec e, i en inali za -lo s’ha e una plani icació on es
p esen a el emps que s’ha iga ealmen en cada e apa. Ambdues plani icacions,
inicial i inal, es poden oba al capí ol 4 jun amen amb l’es udi econòmic.
A con inuació, es a p ocedi a e l’anàlisi de eque imen s i l’especi icació, que al
se ac i i a s que no depenen de la ecnologia, són comunes a les dues
me odologies de desen olupamen . El esul a d’aques es e apes s’exposa en els
capí ols 5, 6 i 7.
Les e apes de disseny i implemen ació es an eali za de mane a especí ica pe les
dues pla a o mes d’explo ació. El esul a d’aques es e apes pe a l’aplicació
p og amada a mida es desc iu al capí ol 8, i el esul a pe a l’aplicació que s’ha
desen olupa en un CMS, al capí ol 9, el qual con é l’es udi i la compa ació de CMS
que s’o e eixen en el me ca de componen s so wa e.
To segui , al capí ol 10, es p esen en les p o es que es an eali za immedia amen
desp és de l’e apa d’implemen ació de cada aplicació, les quals són comunes a les
dues pla a o mes de desen olupamen .
Alesho es, aig du a e me la compa ació de les dues me odologies de
desen olupamen i la compa ació de les ca ac e ís iques no- uncionals de les
aplicacions ob ingudes. El esul a d’aques s dos es udis es p esen a als capí ols 11 i
12.
Pe acaba , es poden oba les conside acions inals al capí ol 13 i les conclusions
al capí ol 14.
Desen olupamen d’una aplicació web pe a una ONG
- 6 -
4 Plani icació i es udi econòmic
4.1 Plani icació
To segui , es p esen en les plani icacions inicial i inal de o ma conjun a, o i que
s’han eali za pe sepa a (una al p incipi del p ojec e i l’al a en acaba -lo), pe al de
pode con as a les di e ències en e les dues.
En un p incipi, la idea e a comença el desen olupamen del p ojec e en un
quad imes e i alesho es, a mesu a que anés aga an o ma, ma icula -lo pe al de
p esen a -lo en el quad imes e següen ; és a di , du -lo a e me en el pe íode
equi alen a un any acadèmic ja que pe mo ius labo als m’e a di ícil eali za -lo en
un quad imes e.
Malg a e la plani icació inicial, és di ícil segui -la al peu de la lle a i semp e hi po
ha e con a emps que alla guin més del que s’espe a de e minades ases. A més,
es udia i eballa al ma eix emps po compo a un ce isc pe inali za -ho o com
s’ha planeja . Pe això no s’ha pogu compli els e minis ixa s i s’ha alla ga més
dels 2 quad imes es espe a s degu a la dedicació i egula en el p ojec e.
Tasca
Es imació
du ada (h) Du ada (h) Di e ència (h)
Anàlisi de Reque imen s 20 40 20
Especi icació 40 80 40
Disseny de la base de dades 20 20 0
Disseny dels ac amen s 20 20 0
Implemen ació 100 160 60
P o es 20 20 0
Ce ca d'in o mació sob e CMS 20 30 10
Es udi de me ca CMS 20 30 10
Ce ca d’es udis compa a ius 20 30 10
Ce ca d’eines pe compa a CMS 20 30 10
Selecció i compa ació de CMS candida s 20 60 40
Ap enen a ge del CMS escolli 120 300 180
Disseny de les dades 20 40 20
Disseny de l’aplicació 20 40 20
Implemen ació 20 30 10
P o es 20 30 10
Compa ació de me odologies 20 30 10
Compa ació ca ac e ís iques no- uncionals 20 20 0
Conclusions 20 30 10
To al
580 1040 460
Com es po ap ecia a la aula, el nomb e eal d’ho es dedicades és cla amen
supe io al que s’ha ia planeja . A pa de les pe i es a iacions que es poden
Desen olupamen d’una aplicació web pe a una ONG
- 13 -
5.1.1.2 Adminis ado (Admin)
És l’usua i enca ega de ges iona el con ingu del ò um, con igu a les se es
p opie a s i ges iona els usua is. A més, po du a e me les ma eixes accions que
l’usua i No mal, pe ò en aques cas no es ind an en comp e les se es isions de
i xes pe a ob eni el còmpu o al de isiona s ni ampoc es egis a an els seus
accessos. Hi hau à un únic usua i d’aques ipus que, en p incipi, co espond à a un
memb e de l’o gani zació clien .
5.1.1.3 In i a (Gues )
Es po compa a el compo amen de l’usua i In i a al d’un obse ado ja que en
accedi a l’aplicació pod à isi a qualse ol secció, llis a documen s, desca ega -los
i isuali za -ne les i xes pe ò en cap cas pod à puja -ne, deixa comen a is o penja
no ícies.
En quan a la zona d’adminis ació, an sols pod à llegi la in o mació del egis e, és
a di , els accessos de cada usua i. No pod à c ea , esbo a o modi ica usua is,
dona d’al a o de baixa seccions ni ca ego ies. Pel que a al isiona de i xes i al
egis e dels accessos al ò um, es p ocedi à igual que en l’usua i Adminis ado .
D’a a en enda an , es e e i à als usua is esmen a s com No mal, Admin i Gues .

Desen olupamen d’una aplicació web pe a una ONG
- 14 -
6 Reque imen s de alla s
6.1 Reque imen s Funcionals
Tenin en comp e la desc ipció de l’apa a an e io , s’ob enen les següen s
necessi a s:
6.1.1 Es uc u a
L’aplicació ha de eque i a l’usua i el seu nom d’usua i i con asenya pe accedi a
l’aplicació, isuali za el con ingu i e ús de o es les se es uncionali a s.
L’aplicació ha de conside a com a mínim 3 ols d’usua i di e en s:
• No mal: amb accés de lec u a i esc ip u a en de e mina s con ingu s.
• Adminis ado : amb accés o al al con ingu , an de lec u a com esc ip u a.
• In i a : amb accés o al de lec u a i es ingi o nul d’esc ip u a.
L’aplicació ha de disposa , com a mínim, d’un menú pe accedi a les pàgines i
seccions que la o men. A més ha d’in eg a un elemen pe accedi a l’à ea
d’adminis ació i un al e que pe me i anca les sessions als usua is.
Hi ha d’ha e una pàgina que con ingui in o mació gene al pe als usua is, de la qual
pengin di e en s pàgines amb in o mació sob e l’aplicació.
L’aplicació s’ha d’es uc u a en un nomb e conc e de seccions, on cadascuna ind à
el seu llis a de documen s i no ícies.
6.1.1.1 Seccions
Una secció es po oba ac i ada o bé desac i ada. Si una secció es à desac i ada,
no s’ha de pode eali za cap acció en ella i s’ha d’indica que es oba desac i ada.
Inicialmen , en una secció ac i ada s’han de mos a un màxim de 5 documen s i 10
no ícies. L’aplicació ha de pe me e a l’usua i llis a o s els documen s i no ícies.
Cada secció ac i ada ha d’o e i la possibili a als usua is de penja no es no ícies i
puja nous documen s.
Desen olupamen d’una aplicació web pe a una ONG
- 15 -
6.1.1.2 No ícies
Pe al de penja una no ícia a una secció, l’aplicació ha de demana el í ol i el cos
d’aques a. L’aplicació no ha de pe me e puja no ícies sense cos, pe ò en can i, sí
que po pe me e penja -ne sense í ol.
Pe cada no ícia penjada s’ha de mos a el í ol, el cos, la da a i ho a quan a se
penjada i el nom d’usua i de la pe sona que l’ha penjada. A pa , si l’usua i és
adminis ado s’han de mos a les opcions pe al de modi ica (edi a o esbo a ) la
no ícia. Quan aques usua i edi i la no ícia, l’aplicació ha de pe me e modi ica an
el í ol com el cos d’aques a.
6.1.1.3 Documen s
Quan un usua i demani puja un documen a una secció, l’aplicació ha de eque i , a
més dels i xe s en sí, el í ol, l’au o , la da a de c eació/publicació del documen , la
secció on s’ha de puja , la ca ego ia i la subca ego ia. Pel que a a aques s dos
úl ims a ibu s, s’u ili za an pe a la classi icació dels documen s i l’aplicació ha
d’o e i una llis a amb di e en s opcions a escolli .
A la llis a de documen s d’una secció s’ha de isuali za la da a de publicació/c eació
del documen , el í ol, l’au o , el momen en què a se puja a l’aplicació, la ca ego ia
i la subca ego ia, el nomb e de comen a is i les egades que s’ha isi a la i xa del
documen .
La llis a de documen s s’ha d’o dena pe de ec e segons la da a de
publicació/c eació, del més al menys ecen , i l’aplicació ha de dona la possibili a a
l’usua i d’elegi el c i e i d’o denació, el qual po se qualse ol dels a ibu s que es
mos en a la llis a.
A més, pe cada documen que es igui a la llis a, l’a ibu í ol de cada documen ha
de pe me e accedi a la i xa d’aques .
La i xa del documen ha d’es a o mada pe la llis a d’a ibu s que a in odui
p è iamen l’usua i en puja -lo; és a di , s’han de isuali za el í ol, l’au o , la da a de
c eació/publicació, la secció on es à penja , la ca ego ia, la subca ego ia, i la llis a de
i xe s d’aques documen , cadascun dels quals ha de pe me e als usua is la se a
isuali zació i descà ega. A més, la i xa ha d’indica quin usua i ha puja el
Desen olupamen d’una aplicació web pe a una ONG
- 16 -
documen i la da a i ho a en què es a e .
A pa , si l’usua i és adminis ado , s’han de mos a les opcions pe al de modi ica
les dades e e en s al documen . L’adminis ado ha de pode edi a el í ol, l’au o , la
da a de c eació/publicació, la secció on es oba, la ca ego ia, la subca ego ia i
l’usua i que a puja el documen a l’aplicació. També ha de eni la possibili a
d’esbo a el documen de l’aplicació. En aques cas, s’esbo a à de l’aplicació el
documen , els seus comen a is, i els i xe s que li co esponen.
D’al a banda, la i xa ha de con eni , a con inuació dels a ibu s del documen , una
llis a amb un màxim de 10 comen a is o dena s c onològicamen del més al menys
ecen i ha de pe me e isuali za o s els que s’han deixa sob e el documen . A
més, cada i xa ha d’o e i la possibili a de deixa -ne de nous.
6.1.1.4 Comen a is
Pe al de deixa un comen a i a un documen , l’aplicació ha de demana el ex
d’aques . L’aplicació no ha de pe me e deixa comen a is bui s.
Pe cada comen a i, s’ha de mos a l’usua i que l’ha deixa , la da a i ho a en què
s’ha esc i i el ex d’aques . Si l’usua i és adminis ado , l’aplicació ha de pe me e
modi ica -lo (edi a -lo o esbo a -lo). Quan l’usua i edi i el comen a i an sols ha de
pode modi ica el ex , i l’aplicació no ha de pe me e cap comen a i que es igui bui .
6.1.2 Adminis ació
L’à ea d’adminis ació només ha de se accessible pe als usua is de ipus Admin.
Aques a ha de pe me e ges iona els usua is, les o gani zacions, les seccions, els
documen s, les ca ego ies i les subca ego ies; i ambé ha de pe me e llis a quins
usua is han en a a l’aplicació i el momen en què s’ha p oduï aques accés.
Les accions que es de allen a con inuació es duen a e me únicamen des de l’à ea
d’adminis ació i pe l’usua i adminis ado , a no se que s’especi iqui el con a i.
6.1.2.1 Usua is
L’aplicació ha de pe me e c ea usua is, modi ica -los i esbo a -los. Quan es c eï un
nou usua i, l’aplicació ha de eque i el nom, els cognoms, l’email, un email
al e na iu, el ipus d’usua i, l’es a (ac i a /desac i a ), l’idioma, el ac e (com cal
ad eça -s’hi; pe exemple: Doc o ), i l’o gani zació a la que pe any. L’aplicació ha
Desen olupamen d’una aplicació web pe a una ONG
- 17 -
d’assigna un con asenya gene ada au omà icamen en c ea un nou usua i.
Dins del p océs d’al a d’un usua i, l’aplicació ha de dona la possibili a d’en ia un
co eu elec ònic a les ad eces in oduïdes p è iamen (als camps email i email
al e na iu) no i ican que s’ha c ea un comp e i acili an l’ad eça URL pe accedi a
l’aplicació, el nom d’usua i i la con asenya.
Cal eni en comp e les següen s p emisses:
• El nom d’usua i (necessa i pe accedi a l’aplicació) que s’assigna ha de se , pe
no ma gene al, l’email de l’usua i.
• Pe a l’a ibu idioma, l’aplicació ha de dona les següen s possibili a s: anglès,
ancès, espanyol i ca alà.
• Pe a l’a ibu ipus d’usua i, l’aplicació ha d’o e i les següen s possibili a s:
adminis ado , in i a i no mal.
• L’email al e na iu i el ac e no han de se obliga o is, poden deixa -se bui s, a
di e ència de la es a d’a ibu s.
Quan s’edi i un usua i es pod an modi ica o s els seus camps, és a di , el nom, els
cognoms, l’email, un email al e na iu, el ipus d’usua i, l’es a , l’idioma, el ac e, i
l’o gani zació a la que pe any. També se li ha de pode assigna una no a
con asenya.
A banda, qualse ol usua i (sigui del ipus que sigui) ha de eni la possibili a de
modi ica la se a con asenya el p ime cop que en i a l’aplicació, ex e namen a
l’à ea d’adminis ació.
Quan s’esbo a un usua i s’han de conse a o s els documen s, comen a is i
no ícies que ha puja o esc i du an el seu pe íode d’ac i i a .
6.1.2.2 O gani zacions
L’aplicació ha de pe me e l’al a, la baixa i la modi icació d’o gani zacions.
Pe dona d’al a una o gani zació l’aplicació eque i à el nom i el ipus d’o gani zació.
En aques úl im cas, l’aplicació dona à a escolli en e les següen s opcions:
O ganiza ions, S a es i O he s.
Desen olupamen d’una aplicació web pe a una ONG
- 18 -
L’aplicació pe me à edi a o s dos a ibu s quan l’usua i modi iqui una o gani zació.
Respec e a la baixa d’o gani zacions, només pe me à esbo a aquelles que no
es iguin associades a cap usua i.
6.1.2.3 Seccions
En p incipi, hi ha un nomb e conc e de seccions i pe això, de ca a a l’adminis ació,
només es con emplen les opcions d’ac i ació i desac i ació de seccions. No es
enen en comp e les accions d’al a i baixa o i que des d’un pun de is a de
comple esa s’hau ien de eni en comp e. Respec e a la modi icació d’a ibu s, es
pod à edi a el nom de les seccions.
6.1.2.4 Documen s
Pel que a a documen s, s’han desc i an e io men les accions d’al a, baixa i
modi icació. Respec e a l’à ea d’adminis ació, l’aplicació ha de pe me e llis a o s
els documen s que s’han puja . En aques a llis a ha de cons a com a mínim el í ol
del documen , el qual ha de pe me e accedi a la se a i xa pe al de modi ica -lo,
deixa comen a is o esbo a -lo. A pa , s’ha de pode eali za la baixa de múl iples
documen s simul àniamen .
6.1.2.5 Ca ego ies / Subca ego ies
S’ag upen en un ma eix apa a ca ego ies i subca ego ies pe la se a analogia, o i
que s’han de ges iona de mane a independen . A con inuació, quan es aci
e e ència a ca ego ies, se à àlid ambé pe a subca ego ies.
L’aplicació ha de dona la possibili a de c ea ca ego ies, isuali za les exis en s,
modi ica -les i esbo a -les. Quan es ulgui c ea una no a ca ego ia, l’aplicació
eque i à únicamen el nom, i l’usua i adminis ado l’ha de pode edi a en o
momen . Pel que a a la baixa de ca ego ies, només es pe me à esbo a aquelles
que no es iguin associades a cap documen .
6.1.2.6 Llis a s
L’à ea d’adminis ació ha de pe me e llis a , a mode in o ma iu, quins han es a els
úl ims accessos dels usua is a l’aplicació. El llis a ha de con eni el nom i els
cognoms de l’usua i, el nom d’usua i i la da a i ho a de l’úl im accés, en cas que
exis eixi. El llis a ha d’es a o dena segons la da a i ho a de l’úl im accés de o ma

Desen olupamen d’una aplicació web pe a una ONG
- 19 -
descenden . En aques cas, l’usua i Gues ambé pod à isuali za el llis a
d’accessos.
6.2 Reque imen s No Funcionals
A di e ència dels eque imen s uncionals (els quals desc iuen les accions que ha de
eali za el so wa e, el p ocessos d’en ada i so ida de dades, e c.), els
eque imen s no uncionals de ineixen les quali a s que ha de compli l’aplicació en
eali za la se a unció.
Pe al d’a alua -los en p o undi a , s’aga a com a base l’es ànda d ISO/IEC 9126-1
[i]
,
el qual pe me a alua la quali a del so wa e. A banda, s’u ili za l’ex ensió NT-
ISO/IEC 9126
[ii]
de l’es ànda d esmen a pe al de pode a alua aspec es no
ècnics, com a a, la essan econòmica del so wa e usa .
To segui , es desc iuen els eque imen s no uncionals de l’aplicació ag upa s
segons les ca ac e ís iques que de ineix l’es ànda d esmen a .
6.2.1 Segu e a
Capaci a del p oduc e so wa e pe p o egi la in o mació i les dades de mane a que
les pe sones o sis emes no au o i za s no les puguin llegi ni modi ica , al ma eix
emps que no es denega l’accés a pe sones ni sis emes au o i za s.
- L’aplicació ha de eballa sob e el p o ocol HTTPS (HTTP segu ), ja que es ac a
d’un ò um p i a que necessi a l’in e can i segu de i xe s.
- L’aplicació ha d’u ili za con asenyes pe al d’iden i ica i au en i ica els usua is.
- L’aplicació ha d’emmaga zema xi ades
1
les con asenyes de o s els usua is de
l’aplicació.
6.2.2 Fiabili a
Capaci a del p oduc e so wa e de man eni el ni ell de p es ació so a condicions
es able es du an un pe íode de emps es able . (madu esa, ecupe abili a ).
- L’aplicació ha d’es a disponible en o momen als dominis able o dialogue.ne i
1
Xi a : Man eni ocul pe mi jà d’alguna ècnica de c ip og a ia, pe exemple, MD5
Desen olupamen d’una aplicació web pe a una ONG
- 20 -
able o dialogue.o g, pe què són els dos dominis que des ina al clien pe
hos a ja l’aplicació.
- S’ha de eali za una còpia de segu e a de l’aplicació dià iamen , de mane a que
en cas de baixa del sis ema es pugui es au a la del dia an e io .
6.2.3 Usabili a
Capaci a del p oduc e so wa e pe se en ès, ap ès, usa i se a ac iu pe als
usua is inals, quan s’u ili za so a condicions conc e es.
- La in e ície g à ica d’usua i ha de se desen olupada en anglès, ja que és
l’idioma que dominen o s els usua is de l’aplicació.
- L’aplicació ha de se àcil d’u ili za i el més in uï i a possible, pe què es ac a
d’usua is, en la se a majo ia, no expe s.
- L’aplicació ha de disposa d’eines que pe me in adminis a els con ingu s, els
usua is i l’apa ença de la o ma més senzilla possible.
- L’aplicació hau à de espec a , semp e que sigui possible, els es ànda ds web
es able s pel W3C espec e a accessibili a , in e nacionali zació i independència
de disposi ius.
6.2.4 E iciència
Capaci a del p oduc e so wa e pe p opo ciona p es acions adequades, ela i es a
la quan i a de ecu sos usa s, so a condicions de e minades.
- El emps de espos a de l’aplicació ha de se accep able ja que no mou g ans
quan i a s d’in o mació ni espe a g an concu ència d’usua is. Habi ualmen
[iii]
s’espe a una espos a d’un màxim de 2 segons. Excepcionalmen , es ixa una
espos a màxima de 8 segons.
6.2.5 Man enibili a
Conjun d’a ibu s elaciona s amb la acili a d’es end e, modi ica o co egi e o s
en un p oduc e so wa e (anàlisi, can i, p o es).
- L’especi icació s’ha de eali za en llengua ge UML, pe imposició del
desen olupado pel e que es ac a d’un llengua ge es ànda d que acili a la
Desen olupamen d’una aplicació web pe a una ONG
- 21 -
comp ensió i l’ex ensió.
- L’aplicació ha de eballa semp e amb e sions es ables del so wa e. Les
e sions no es ables queden es ingides a aplicacions en p o es.
6.2.6 Po abili a
Capaci a d’un p oduc e so wa e pe se ans e i d’una pla a o ma a una al a.
(ins al·lació, eemplaçamen , adap abili a ).
- L’aplicació ha de isuali za -se co ec amen , com a mínim, en els següen s
na egado s: In e ne Explo e ( e sions 6 i 7) i Mozilla Fi e ox ( e sions 2 i 3), ja
que són els més u ili za s en e els usua is
[i ]
.
- L’aplicació ha de desen olupa -se sob e un se ido Apache, s’ha de p og ama
en PHP5 i ha d’u ili za MySQL com a sis ema ges o de bases de dades.
- La base de dades de l’aplicació ha de pode adminis a -se amb eines
especí iques pe a bases de dades, com a a PHPMyAdmin.
- Només es pe me à puja documen s a l’aplicació en o ma PDF, pel e que és
un o ma es ànda d i de lliu e accés.
6.2.7 Negoci
Ca ac e ís iques del con ac e en e el p o eïdo i el clien que poden in lui en la
quali a del so wa e.
- Cos os de llicència: El so wa e u ili za pe al desen olupamen i ges ió de
l’aplicació ha de se g a uï .
Desen olupamen d’una aplicació web pe a una ONG
- 22 -
7 Especi icació
En aques capí ol es p esen en els diag ames de casos d’ús p opis de cada usua i i
seguidamen es a la desc ipció d’aques s d’aco d amb els eque imen s uncionals
explica s en el capí ol 6. Reque imen s de alla s. Pe acaba , es p esen a el diag ama
de classes, amb i sense a ibu s.
7.1 Diag ames de casos d’ús
7.1.1 Usua i No mal
L’usua i No mal é assigna s els següen casos d’ús:
Desen olupamen d’una aplicació web pe a una ONG
- 29 -
7.2.2.4 Gene a una con asenya pe a un usua i
En ades
id_usua i:in , no i ica :bool
So ides
Re o na ce si no es dóna cap e o .
Semàn ica
Gene a una con asenya de o ma alea ò ia pe a l’usua i iden i ica pe id_usua i.
Flux d’in e acció
Usua i Sis ema
Selecciona l’opció de gene a una no a con asenya pe a
l’usua i id_usua i.
Assigna una no a con asenya gene ada alea ò iamen a
l’usua i iden i ica pe id_usua i i es gua da a la base de
dades. Finalmen , li en ia un email no i ican -li el can i.
Cu sos al e na ius
Si l’usua i desma ca la casella de no i icació, no se li en ia cap email.
7.2.2.5 Can ia la con asenya
En ades
new_pass:S ing, epea ed_pass:S ing
So ides
Re o na ce si no es dóna cap e o .
Semàn ica
Can ia la con asenya de l’usua i que es à u ili zan l’aplicació pe una que ell in odueix.
Flux d’in e acció
Usua i Sis ema
In odueix la no a con asenya dues egades de o ma
sepa ada.
Si coincideixen, s’emmaga zema la no a con asenya i se li
demana a l’usua i que o ni a en a a l’aplicació.
Cu sos al e na ius
Si no coincideixen les con asenyes new_pass i epea ed_pass, no es can ia la con asenya i es no i ica l’e o a l’usua i.
7.2.3 Casos d’ús de secció
El ò um s’o gani za, en p incipi, en un nomb e ix de seccions, on cadascuna é els
seus p opis documen s i no ícies. Una secció po es a ac i ada o desac i ada. Els
usua is an sols poden puja documen s i penja no ícies en aquelles seccions que es
obin ac i ades.
D’aco d amb l’an e io pa àg a , els casos d’ús que es poden du a e me són: llis a
els documen s i no ícies de les seccions, ac i a /desac i a seccions, modi ica -ne la
in o mació, puja documen s i penja no ícies (aques es dues úl imes explicades en
els apa a s 7.2.4.1 i 7.2.5.1, espec i amen ).

Desen olupamen d’una aplicació web pe a una ONG
- 30 -
7.2.3.1 Llis a una secció
Esquema ípic d’una secció
En ades
id_seccio:in
So ides
No n’hi ha.
Semàn ica
Llis a els documen s i les no ícies de la secció iden i icada pe id_seccio.
Flux d’in e acció
Usua i Sis ema
Escull la secció que desi ja llis a del menú p incipal.
Mos a una llis a dels cinc documen s més ecen s (amb els
seus a ibu s p opis: í ol, au o , da a, ca ego ia, e sions,
e c.), a con inuació una llis a de les deu úl imes no ícies de
la secció escollida, i inalmen una zona on pode in odui -
ne de no es.
Cu sos al e na ius
En cas que no hi hagi documen s pe la secció escollida, es no i ica a l’usua i al si uació.
Menú p incipal que con é
cadascuna de les
seccions
Llis a dels documen s
d’una secció
Llis a de les no ícies
d’una secció
Zona pe in odui
no ícies a la secció
Menú d’accions de
l’usua i
Desen olupamen d’una aplicació web pe a una ONG
- 31 -
7.2.3.2 Ac i ació de seccions
En ades
id_seccio:in
So ides
Re o na ce si s’ha ac i a sense p oblemes.
Semàn ica
Ac i a la secció iden i icada pe id_seccio.
Flux d’in e acció
Usua i Sis ema
Escull la secció que desi ja ac i a i con i ma.
Ac i a la secció escollida pe l’usua i.
Cu sos al e na ius
Si l’usua i no con i ma, es cancel·la l’acció.
7.2.3.3 Desac i ació de seccions
En ades
id_seccio:in
So ides
Re o na ce si s’ha desac i a sense p oblemes.
Semàn ica
Desac i a la secció iden i icada pe id_seccio.
Flux d’in e acció
Usua i Sis ema
Escull la secció que desi ja desac i a i con i ma.
El sis ema desac i a la secció escollida pe l’usua i.
Cu sos al e na ius
Es cancel·la l’acció si l’usua i no con i ma.
Desen olupamen d’una aplicació web pe a una ONG
- 32 -
7.2.3.4 Modi icació de seccions
En ades
id_seccio:in , nom_seccio:S ing
So ides
Re o na ce si s’ha modi ica sense p oblemes.
Semàn ica
Can ia el nom de la secció iden i icada pe id_seccio.
Flux d’in e acció
Usua i Sis ema
Escull la secció que ol modi ica .
Llis a els a ibu s p opis d’una secció i pe me edi a -los.
Reali za els can is i escull l’opció de gua da -los del menú
d’opcions.
Emmaga zema els can is eali za s sob e la secció a la
base de dades.
Cu sos al e na ius
Si les dades in oduïdes no són àlides, el sis ema no i ica el p oblema i no s’ac uali zen les dades.
7.2.4 Casos d’ús de documen
Tal com s’ha explica an e io men els usua is poden puja documen s a les seccions
del ò um. En e -ho es eque eix, a més del/s documen /s en sí, una sè ie de dades
que l’iden i iquen, les quals són emmaga zemades a la base de dades de l’aplicació.
Pos e io men , quan l’usua i ho demana, aques es dades són p esen ades a l’usua i
en una i xa, on hi ha la possibili a de deixa -hi comen a is, isuali za i desca ega
el/s documen /s.
D’al a banda, l’usua i adminis ado duu la ges ió de documen s, de mane a que po
modi ica -los i dona -los de baixa, és a di , esbo a -los del ò um.
Desen olupamen d’una aplicació web pe a una ONG
- 33 -
7.2.4.1 Puja documen s a una secció
Esquema de la pan alla pe puja un documen
En ades
id_seccio:in , i ol_doc:S ing, au o _doc:S ing, da a_doc:Da e, ca ego ia:in , subca ego ia:in ,
i xe s[]:File
So ides
Re o na ce si ha pogu puja els i xe s al se ido i no s’ha dona cap e o .
Semàn ica
En egis a un nou documen amb les dades d’en ada i l’associa amb la secció iden i icada pe
id_seccio. Puja els i xe s al se ido en el di ec o i co esponen .
Flux d’in e acció
Usua i Sis ema
Omple els camps eque i s pe un documen ( í ol, au o ,
da a, secció on s’ha de llis a , ca ego ia, subca ego ia i els
i xe s amb les di e en s e sions) i escull les e sions del
documen a puja .
Si les dades són àlides, es gua da el documen a la base de
dades i s’emmaga zemen les di e en s e sions del documen
al se ido .
Cu sos al e na ius
Si les dades in oduïdes no són àlides, el sis ema no gua da el documen i no emmaga zema les di e en s e sions d’aques .
No i ica a l’usua i quines dades cal co egi .
(zona pe imp imi no i icacions)
Menú p incipal que con é
cadascuna de les
seccions
Zona on es demanen els
camps pe c ea la i xa
del documen
Zona on se seleccionen
els i xe s amb les
di e en s e sions del
documen
Menú d’accions de
l’usua i
Desen olupamen d’una aplicació web pe a una ONG
- 34 -
7.2.4.2 Veu e la i xa d’un documen
Esquema de la i xa d’un documen
En ades
id_documen :in
So ides
Re o na ce si el documen exis eix. En cas con a i, ope ació in àlida i es no i ica l’e o a l’usua i.
Semàn ica
Visuali za els a ibu s del documen iden i ica pe id_documen i els comen a is elaciona s.
Flux d’in e acció
Usua i Sis ema
Escull el documen que ol consul a de la llis a de
documen s d’una secció de e minada.
Mos a les dades p òpies d’un documen ( í ol, au o , da a de
publicació, secció on es à penja , ca ego ia, subca ego ia,
e c.). Llis a els comen a is que han deixa els usua is sob e
aques documen , en cas que n’hi hagi. S’inc emen a el
nomb e de isi es a la i xa del documen .
Cu sos al e na ius
Si l’usua i és admin, pod à edi a la i xa i els comen a is del documen .
Si l’usua i és admin o gues , no s’inc emen a el nomb e de isi es a la i xa del documen .
Menú p incipal que con é
cadascuna de les
seccions
Llis a dels a ibu s p opis
del documen i les
e sions de què disposa
Llis a dels comen a is
sob e el documen
Zona pe in odui
comen a is sob e
documen
Menú d’accions de
l’usua i
Menú d’opcions de la i xa
del documen

Desen olupamen d’una aplicació web pe a una ONG
- 35 -
7.2.4.3 Visuali za /Desca ega un documen
En ades
i xe :URL
So ides
Re o na ce si el i xe exis eix. En cas con a i, ope ació in àlida i es no i ica l’e o a l’usua i.
Semàn ica
Desca ega el i xe emmaga zema a al se ido a pa i de la se a URL.
Flux d’in e acció
Usua i Sis ema
Escull el documen que ol isuali za , ja sigui a la llis a de
documen s d’una secció o bé a la i xa del p opi documen .
Pe me la isuali zació o la descà ega del documen .
Cu sos al e na ius
No n’hi ha.
7.2.4.4 Baixa de documen s
En ades
id_documen :in
So ides
Re o na ce si no es dóna cap e o .
Semàn ica
Esbo a el documen iden i ica pe id_documen , els comen a is i els i xe s associa s.
Flux d’in e acció
Usua i Sis ema
Escull els documen s que ol esbo a de l’aplicació.
Demana que l’adminis ado con i mi la baixa dels documen s
selecciona s.
Con i ma la baixa dels documen s selecciona s.
Esbo a els documen s i els seus comen a is de la base de
dades i les di e en s e sions que s’han puja al se ido .
Cu sos al e na ius
Si l’usua i no con i ma la baixa dels documen s, es cancel·la l’ope ació.
Desen olupamen d’una aplicació web pe a una ONG
- 36 -
7.2.4.5 Modi icació de documen s
En ades
id_documen :in , i ol_doc:S ing, au o _doc:S ing, da a_doc:Da e, id_seccio:in , ca ego ia:in ,
subca ego ia:in , uploade :in
So ides
Re o na ce si no es dóna cap e o .
Semàn ica
Modi ica els a ibu s del documen iden i ica pe id_documen .
Flux d’in e acció
Usua i Sis ema
Escull l’opció d’edició del menú d’opcions de la i xa del
documen .
Llis a els a ibu s p opis del documen i pe me edi a -los.
Reali za els can is i escull l’opció de gua da -los del menú
d’opcions de la i xa.
Emmaga zema els can is eali za s sob e el documen a la
base de dades.
Cu sos al e na ius
Si les dades in oduïdes no són àlides, el sis ema no ac uali za les dades i no i ica el p oblema a l’usua i.
Si l’usua i cancel·la l’ope ació, no s’emmaga zema cap dels can is eali za s.
7.2.5 Casos d’ús de no ícies
Les no ícies són els comen a is que deixen els usua is en una secció. Pe al
d’accedi als casos d’ús d’una no ícia s’ha de e des de la ma eixa secció on es
oba. A a bé, com es eu à pos e io men , els casos d’ús de baixa i modi icació de
no ícies són exclusius de l’usua i adminis ado .
7.2.5.1 Penja no ícies a una secció
En ades
id_seccio:in , new_ i le:S ing, new_ ex :S ing
So ides
Re o na ce si no és dona cap e o .
Semàn ica
En egis a una new amb els a ibu s de l’en ada i l’associa amb la secció iden i icada pe id_seccio.
Flux d’in e acció
Usua i Sis ema
In odueix el í ol i el ex de la no ícia a la zona que s’ha
des ina dins de la secció.
Si les dades són àlides, gua da la no ícia a la base de dades.
Cu sos al e na ius
Si les dades in oduïdes no són àlides, el sis ema no gua da la no ícia i no i ica el p oblema a l’usua i.
Desen olupamen d’una aplicació web pe a una ONG
- 37 -
7.2.5.2 Baixa de no ícies
En ades
id_new:in
So ides
Re o na ce si s’ha esbo a sense p oblemes.
Semàn ica
Esbo a la new iden i icada pe id_new de la base de dades.
Flux d’in e acció
Usua i Sis ema
Escull la no ícia que ol dona de baixa.
Demana que l’adminis ado con i mi la baixa de la no ícia
seleccionada.
Con i ma la baixa de la no ícia seleccionada.
Esbo a la no ícia de la base de dades.
Cu sos al e na ius
Si l’usua i no con i ma la baixa de la no ícia, es cancel·la l’ope ació.
7.2.5.3 Modi icació de no ícies
En ades
id_new:in , new_ i le:S ing, new_ ex :S ing
So ides
Re o na ce si s’ha modi ica sense p oblemes.
Semàn ica
Modi ica la new iden i icada pe id_new.
Flux d’in e acció
Usua i Sis ema
Escull la no ícia que ol modi ica .
Llis a els a ibu s p opis de la no ícia i pe me edi a -los.
Reali za els can is i escull l’opció de gua da -los del menú
d’opcions.
Emmaga zema els can is eali za s sob e la no ícia a la base
de dades.
Cu sos al e na ius
Si les dades in oduïdes no són àlides, el sis ema no ac uali za les dades i no i ica el p oblema a l’usua i.
7.2.6 Casos d’ús de comen a is
Els comen a is uncionen de o ma anàloga a les no ícies, donada la na u alesa
d’aques es úl imes. En aques cas, s’accedeix als casos d’ús dels comen a is a
a és de la i xa del documen al qual an e e ència, i els casos d’ús de baixa i
modi icació ambé es an es ingides a l’usua i adminis ado .
Desen olupamen d’una aplicació web pe a una ONG
- 38 -
7.2.6.1 Deixa un comen a i a la i xa d’un documen
En ades
id_documen :in , ex _comen a i:S ing
So ides
Re o na ce si no s’ha dona cap e o .
Semàn ica
En egis a un comen a i amb les dades donades i l’associa amb el documen iden i ica pe
id_documen .
Flux d’in e acció
Usua i Sis ema
In odueix el ex del comen a i a la zona que s’ha des ina
dins de la i xa del documen .
Si les dades són àlides, gua da el comen a i a la base de
dades.
Cu sos al e na ius
Si les dades in oduïdes no són àlides, el sis ema no gua da el comen a i i no i ica el p oblema a l’usua i.
7.2.6.2 Baixa de comen a is
En ades
id_comen a i:in
So ides
Re o na ce si s’ha esbo a sense p oblemes.
Semàn ica
Esbo a el comen a i iden i ica pe id_comen a i.
Flux d’in e acció
Usua i Sis ema
Escull el comen a i que ol dona de baixa.
Demana que con i mi la baixa del comen a i selecciona .
Con i ma la baixa del comen a i selecciona .
Esbo a el comen a i de la base de dades.
Cu sos al e na ius
Si l’usua i no con i ma la baixa del comen a i, es cancel·la l’ope ació.
Desen olupamen d’una aplicació web pe a una ONG
- 45 -
7.3.2 Diag ama de classes sense a ibu s
7.3.3 Diag ama de classes amb a ibu s

Desen olupamen d’una aplicació web pe a una ONG
- 46 -
8 Disseny i implemen ació de l’aplicació en la me odologia
adicional
8.1 A qui ec u a i pla a o ma
L’aplicació u ili za una a qui ec u a Clien /Se ido
[ ]
, de mane a que el clien , a
a és del seu na egado pe sonal, eali za pe icions a una màquina emo a (el
se ido ) que s’enca ega de p ocessa -les i e o na una espos a al clien .
No obs an , no s’ha op a ni pe un disseny o ien a a objec es
[ i]
ni pe una dis ibució
en capes
[ ii]
malg a que ambdues ècniques suposen mol s a an a ges espec e a la
independència de les dades i l’ex ensibili a de l’aplicació. Sinó que s’ha p og ama
l’aplicació seguin la me odologia habi ual de eball de l’ONG, és a di , en una
a qui ec u a monolí ica
[ iii]
de la banda del se ido , el qual con ola
l’en ada/so ida de dades, el p ocessamen d’aques es, la ges ió d’e o s i decideix,
en ce a mane a, la in e ície d’usua i
2
.
Esquema d’in e acció de l’a qui ec u a Clien /Se ido
Així doncs, a la banda del se ido s’u ili za Apache com a se ido d’aplicacions (pe
eque imen s no- uncionals de l’aplicació), el qual supo a PHP, el llengua ge amb el
qual es p og ama l’aplicació ( ambé pe eque imen s no- uncionals de l’aplicació).
2
És e iden doncs, que aques a ècnica gene a un al ni ell d’acoblamen , el qual no és ecomanable
de ca a a la man enibili a i ex ensibili a de l’aplicació, com es pod à eu e als capí ols 11 i 12
d’aques a memò ia.
Desen olupamen d’una aplicació web pe a una ONG
- 47 -
A més, PHP pe me la connexió amb di e en s sis emes ges o s de bases de dades
(SGBD). En aques cas s’u ili za MySQL (pe eque imen s no- uncionals de
l’aplicació), un SGBD mul i- il i mul i-usua i mol u ili za en aplicacions web,
p incipalmen pe la se a eloci a .
Aques llengua ge de p og amació és in e p e a , com al es llengua ges de la
ma eixa na u alesa
3
, de mane a que el se ido in e p e a o es les en ades (les
pe icions del clien i els esul a s ob ingu s de les consul es a les bases de dades),
les p ocessa i p esen a la so ida al clien .
8.2 Disseny de la base de dades
El disseny de la base de dades é com a pun de pa ida el disseny concep ual,
p esen a en aques a memò ia al capí ol 7.3 Diag ama de classes. A a bé, es
eque eix un pas p e i abans de ans o ma el disseny concep ual en un disseny
lògic. Aques és el p océs de no mali zació que es p esen a o segui .
Les egles de no mali zació que s’apliquen són les següen s:
• Es ans o ma l’associació e nà ia en e Pa icipan – Secció Ac i a – Da aHo a
de la qual esul a la classe associa i a Documen .
En conseqüència, s’a egeix la es icció ex ual: “No hi po ha e dos documen s
amb els ma eixos Pa icipan , Secció Ac i a i Da a Ho a”.
3
Pe exemple, Py hon i Pe l.
Desen olupamen d’una aplicació web pe a una ONG
- 48 -
• Aques a ma eix associació e nà ia (Pa icipan – Secció Ac i a – Da aHo a)
ambé dóna lloc a la classe associa i a New.
I pe an , cald à a egi la es icció ex ual: “No hi po ha e dues news amb els
ma eixos Pa icipan , Secció Ac i a i Da aHo a”.
• Es ans o ma l’associació e nà ia en e Pa icipan – Documen – Da aHo a de
la qual s’esde é la classe associa i a Commen .
En aques cas, la es icció ex ual que s’ha d’a egi és: “No hi po ha e dos
commen s amb els ma eixos Pa icipan , Documen i Da aHo a”.
• Es ma e iali za l’a ibu de i a “Views” de la classe Documen dins d’aques a
ma eixa classe.
Desen olupamen d’una aplicació web pe a una ONG
- 49 -
D’aco d amb el p océs de no mali zació desc i , el diag ama de classes co esponen
al model concep ual queda com es mos a:
Diag ama de classes no mali za
A més, cal a egi les es iccions següen s:
Res iccions d’in eg i a ex ual:
No hi po ha e dos documen s amb els ma eixos Pa icipan , Secció Ac i a i Da a Ho a.
No hi po ha e dues news amb els ma eixos Pa icipan , Secció Ac i a i Da aHo a.
No hi po ha e dos commen s amb els ma eixos Pa icipan , Documen i Da aHo a.
In o mació de i ada:
Views con é el nomb e de isi es del documen pe pa d’usua is de ipus No mal.
Pe a comple a la aducció al model elacional s’han de du a e me les
ans o macions següen s basan -se en el model ob ingu desp és de no mali za :
En p incipi, es c ea una elació ( aula a la base de dades) di e en pe cada classe.
No obs an , s’elimina la supe classe Pa icipan , pel e que és una classe amb
Desen olupamen d’una aplicació web pe a una ONG
- 50 -
l’objec iu de simpli ica l’esquema concep ual i no pe any al domini de l’aplicació.
També s’elimina la classe Da aHo a pe què és una classe que es à implíci a en
l’SGBD (sis ema ges o de bases de dades). A més, s’a egeix a cada elació un
a ibu de ipus en e que se à la clau p imà ia, necessà ia pe pode iden i ica cada
elemen (o ins ància).
Pel que a a les associacions, o es són binà ies. D’en ada no hi ha associacions
ecu si es ni associa i es, ja que pe mi jà de la no mali zació s’han elimina les
e nà ies/associa i es. A més, o es les associacions binà ies són de ipus un-a-
mol s. Això ol di que en un ex em de l’associació la mul iplici a és 0..1 o 1, men e
que a l’al e ex em és mol s (*, 0..*, 1..*).
En aques cas, la ans o mació consis eix en a egi un a ibu a la classe que es
oba a l’ex em ‘mol s’ que aci e e ència a la classe que es oba a l’ex em ‘un’, en
al es pa aules, com a clau o ana. A més, cal eni en comp e que el alo d’aques
a ibu no po se nul, ja que la mul iplici a és 1. Es p esen a un exemple pe eu e el
p ocedimen explica .
En aques exemple, la classe Ve sion, ind à un a ibu que pe me i iden i ica i
e e encia el Documen . De mane a in o mal, conside an que {Doc} i {Ve } són,
espec i amen , les claus p imà ies de Documen i Ve sion, esul a à així:
Documen (Doc, ...)
Ve sion (Ve , ..., Doc) on {Doc} e e encia Documen
Respec e a les especiali zacions (de ipus i es a ), se segueix una es a ègia simila
al mapeig pe clau o ana, de mane a que s’inclou un a ibu a la supe classe que
pe me i iden i ica la subclasse i a la qual e e encia en cas que s’hagi con e i en
classe del model elacional.

Desen olupamen d’una aplicació web pe a una ONG
- 51 -
Així doncs, les especiali zacions es a es ans o men en un a ibu de ipus booleà
en la se a supe classe co esponen , i les especiali zacions ipus, en un a ibu de
ipus en e que a e e ència (ja que és clau o ana) a una ins ància d’una classe
de e minada. Es po eu e en el següen exemple:
T ans o mació de l’especiali zació de ipus de la classe Use
Pel que a a les enume acions, es con e eixen cadascuna d’elles en una classe, on
cada ins ància es à o mada pe un iden i icado i un a ibu , el qual co espon a un
elemen de l’enume ació.
Finalmen , desp és dels p ocessos de no mali zació i ans o mació desc i s, s’ob é
el següen disseny de la base de dades elacional.
No a: en cada elació, la clau p imà ia es oba en doble sub a lla . Les claus o anes,
en sub a lla simple i es desc iu a con inuació a quina elació e e encien.
Use s(id_use , use , passwo d, language, o m_add ess, name,
su name, mail, mail2, o ganiza ion, ype, ac i e)
On {language} e e encia Languages
On { ype} e e encia Use _ ypes
On {o ganiza ion} e e encia O ganiza ions
Desen olupamen d’una aplicació web pe a una ONG
- 52 -
Use _ ypes(id, ype_name)
Aques a classe co espon a la ans o mació de l’especiali zació pe
ipus de la classe Use , com s’ha explica més amun .
O ganiza ions(id_o g, o g_name, o g_ ype)
On {o g_ ype} e e encia O g_ ypes
Sec ions(id_sec, i le, sub i le, in o_da e, olde , sec ion_name,
ac i e)
News(id_news, da e_added, news_ ex , news_ i le, sec ion, uploade )
On {sec ion} e e encia Sec ions
On {uploade } e e encia Use s
Documen s(id_doc, doc_ i le, au ho , ca ego y, subca ego y,
doc_da e, sec ion, uploade , ins an _added, public, iews)
On {ca ego y} e e encia Ca ego ies
On {subca ego y} e e encia Subca ego ies
On {sec ion} e e encia Sec ions
On {uploade } e e encia Use s
Ve sions(id_doc, id_lang, ile, doc_ ype)
On {id_doc} e e encia Documen s
On {id_lang} e e encia Languages
Al ma eix emps, les dos claus o anes an de claus p imà ies
Commen s(id_commen , doc, commen e , da e_added, commen _ ex )
On {doc} e e encia Documen s
On {commen e } e e encia Use s
Regis y(id_ eg, id_use , ime_acces, ip_add ess, b owse )
On {id_use } e e encia Use s
Desen olupamen d’una aplicació web pe a una ONG
- 53 -
Les classes següen s co esponen a les enume acions:
O g_ ypes(id, ype_name)
Languages(id_lang, language)
Ca ego ies(id_ca , name_ca )
Subca ego ies(id_subca , name_subca )
Doc_ ypes (id, doc_ ype_name)
Desen olupamen d’una aplicació web pe a una ONG
- 54 -
8.3 Disseny dels ac amen s
En aques a secció s’explica com es duu a e me la in e acció en e els di e en s
elemen s de l’a qui ec u a, és a di , en e el clien i el se ido . Es desc iu ex ualmen
i g à ica la mane a com el clien en ia les pe icions al se ido , com aques úl im
ges iona l’en ada i la so ida de dades, el p ocessamen d’aques es, la ges ió
d’e o s, e c.
Es conside a que la mecànica de o es les uncionali a s és la ma eixa, i pe això
s’han busca dos exemples su icien men ep esen a ius que incloguin o s els
escena is possibles i on in e inguin o s els se eis del se ido u ili za s pe
l’aplicació. Es p esen en a con inuació.
8.3.1 Exemple 1 :: Puja documen s a una secció
En p ime lloc, el clien demana isuali za la pàgina upload.php a a és del seu
na egado . El se ido ep la pe ició i llegeix el i xe upload.php del seu disc du . A
con inuació execu a l’in è p e de PHP, el qual eali za di e en s pe icions al sis ema
ges o de bases de dades pe cons ui la pàgina sol·lici ada (quines seccions es an
ac i es i quines ca ego ies i subca ego ies hi ha disponibles) i e o na el esul a al
na egado pe què el mos i al clien .
Seguidamen , el clien omple els camps del o mula i (a a és del na egado ) i en ia
les dades al se ido pe mi jà del mè ode POST p emen el bo ó ‘Upload’. En aques
cas, l’in è p e de PHP comp o a que l’usua i ingui els pe misos su icien s pe a
eali za l’acció que sol·lici a. Si no és així, no execu a cap acció i e o na un
missa ge al clien no i ican -li l’e o . Del con a i, comp o a que les dades en iades a
a és de POST són àlides pe execu a les accions sol·lici ades i que els i xe s
s’han en ia co ec amen al se ido .
Si les dades no són àlides, inali za l’execució i e o na un missa ge al clien
no i ican -li l’e o . Al amen , l’in è p e de PHP en ia les o d es al sis ema ges o de
bases de dades pe inse i un nou documen i les di e en s e sions a la base de
dades de l’aplicació. A con inuació, emmaga zema pe manen men cadascun dels
i xe s en ia s a a és del o mula i en el di ec o i co esponen , ja que es oba en
en un di ec o i empo al du an l’execució del p og ama.
Desen olupamen d’una aplicació web pe a una ONG
- 61 -
access_lis .php Llis a els úl ims accessos dels usua is
edi _new.php Baixa de no ícies, Modi icació de no ícies
edi _commen .php Baixa de comen a is, Modi icació de comen a is
Alguns i xe s, pe ò, no enen cap cas d’ús assigna , com pe exemple, les pàgines
amb in o mació pe als usua is (p esen a ion.php, documen s.php, pa icipan s.php,
suppo .php, ubun u.php), algunes de les capçale es i el peu (head_login.php,
head_ hin.php i oo .php).
Pel que a a l’es uc u a de i xe s i di ec o is, s’ha decidi posa en p ime pla o s els
i xe s p incipals (els que an e e ència a pàgines) i ag upa en di e en s di ec o is la
es a de i xe s. Així doncs, queda de la següen mane a:
css/ Con é les plan illes de con igu ació en CSS.
docs/ El o men 3 di ec o is (doha_p ocess, 2n_mee ing, 3 d_mee ing), els quals
emmaga zemen els i xe s que pugen els usua is en cada secció de
l’aplicació.
img/ Es oben les di e en s ima ges que s’u ili zen a l’aplicació.
includes/ Hi ha i xe s que acos umen a o ma pa de les capçale es.
pape s/ Emmaga zema una sè ie de documen s que han es a penja s pe
l’adminis ado del lloc web, enllaça s des de les pàgines d’in o mació.
Quan als i xe s del di ec o i includes/, es p esen en a con inuació pe l’o d e en què
s’u ili zen al i xe head.php:
inici_sessio.php Inicia les sessions dels usua is.
connexio_bd.php Es ableix la connexió amb la bases de dades.
global.php Con é la de inició de a iables que s’u ili zen a l’aplicació, algunes de les
quals es llegeixen di ec amen de la BD.
e o s.php Es de ineixen els codis i missa ges d’e o pe a o s els o mula is de
l’aplicació
check_se ings.php Comp o a si l’usua i p o é de la pàgina se ings.php, on l’usua i accedeix
el p ime cop que en a a l’aplicació i ha decidi conse a la con asenya
donada.

Desen olupamen d’una aplicació web pe a una ONG
- 62 -
check_sessio.php Comp o a si l’usua i que ha inicia la sessió exis eix a la base de dades i
s’ha au en ica co ec amen .
uncions.php Inclou o es les uncions que s’u ili zen a l’aplicació.
Pe al a banda, aques di ec o i ambé con é les classes class.phpmaile .php i
class.sm p.php, les quals són necessà ies pe a pode c ea i en ia emails a a és
de l’aplicació, com s’explica à més enda an .
8.4.3 Fo mula is
El sis ema pe aconsegui la in e acció usua is-aplicació (en al es pa aules, pe què
els usua is puguin en ia dades a l’aplicació) es duu a e me a a és de o mula is.
Exis eixen dos mè odes pe a eali za l’en iamen de dades: GET i POST.
< o m ac ion="edi _sec ion.php" me hod="pos ">
Exemple de la capçale a d’un o mula i que u ili za el mè ode POST
8.4.3.1 Mè ode GET
El mè ode GET passa els a ibu s del o mula i a a és de l’ad eça URL desp és del
ca àc e “?“ i PHP els emmaga zema en la a iable supe global $_GET.
Cal des aca que els a ibu s en ia s es en isibles a l’usua i, cosa que po p o oca ,
si s’u ili zen o mula is amb di e sos a ibu s (com és habi ual), ad eces URL lla gues
i o ça inin el·ligibles. A pa , la u ili zació d’aques mè ode pod ia comp ome e la
segu e a de les dades en iades, pel e que un usua i malin enciona po modi ica
àcilmen les dades que s’en ien amb inali a s que di e eixen del p opi ús de
l’aplicació.
Pels mo ius esmen a s, s’in en a e i a l’ús del mè ode GET semp e que sigui
possible. Tanma eix, po se una bona opció en aquelles ocasions en què es ac in
dades poc elle an s, es passin poques dades i es iguin degudamen ac a s o s
possibles alo s que po p end e. En aques sen i , i al com s’ha comen a
an e io men , s’ha u ili za aques mè ode pe desen olupa alguns accions de les
pàgines index.php i i xa.php. S’explica el seu uncionamen a pa i dels exemples
següen s:
/index.php?sec=1&alldocs=1
Desen olupamen d’una aplicació web pe a una ONG
- 63 -
Es passen els a ibu s sec=1 i alldocs=1. D’aco d amb això, es mos a à la secció
núme o 1 i es llis a an o s els seus documen s a la pàgina ac ual.
/ i xa.php?doc=83&sec=1&allcommen s=1
La pàgina i xa.php ep els a ibu s doc=83, sec=1 i allcommen s=1; de mane a que
es ca ega à la i xa del documen núme o 83 i es mos a an o s els comen a is que
an e e ència a aques . D’al a banda, la inali a de l’a ibu sec és pe me e la
c eació de links pe e o na a la secció on es oba a l’usua i.
8.4.3.2 Mè ode POST
Aques al e mè ode, en can i, u ili za la a iable supe global $_POST i s’u ili za més
comunamen ja que les a iables que es passen a a és d’un o mula i són en
p incipi in isibles als usua is, o i que hi ha eines pe a in e cep a -les i llegi -les.
Alesho es, és esponsabili a del p og amado que es aci co ec amen el ac amen
de les a iables.
Aques mè ode és el que s’ha u ili za en la majo ia de o mula is de l’aplicació, pe
exemple, pe en a a l’aplicació (login), puja un documen , penja no ícies a les
seccions, deixa un comen a i a un documen , can ia la con asenya, així com
qualse ol o mula i u ili za a l’à ea d’adminis ació.
Fo mula i pe edi a seccions, el qual u ili za el mè ode POST
8.4.3.3 Recepció i ús de les dades en iades
A la capçale a dels o mula is s’especi ica, a pa del mè ode que s’u ili za, quina
pàgina ecull les dades que s’en ien. Això s’aconsegueix pe mi jà de l’e ique a
ac ion. A més, cal iden i ica cadascuna de les a iables del o mula i amb un nom
pe al que siguin accessibles des de la pàgina des í, amb independència del mè ode
que s’u ili zi pe en ia -les.
Així pe exemple, el següen o mula i es à o ma pe 2 camps, new_ i le i new_ ex ,
Desen olupamen d’una aplicació web pe a una ONG
- 64 -
que se an en ia s pe POST a la pàgina index.php.
< o m ac ion="index.php" me hod="pos ">
<inpu name="new_ i le" ype=" ex " size="80" maxleng h="255"
alue="">
< ex a ea name="new_ ex " cols="60" ows="6" maxleng h="255"
alue="">
<inpu class="inpu s" ype="submi " name="add_new" alue="Pos ">
</ o m>
Si es ol accedi i assigna el alo d’aques s camps des de la pàgina index.php
cald à e -ho de la següen mane a:
$ i ol=$_POST["new_ i le"]
Es p ocedi ia de mane a simila en cas que s’hagués u ili za el mè ode GET,
subs i uin la a iable $_POST pe $_GET.
8.4.3.4 T ac amen de les dades i de ecció d’e o s
S’ha de eni en comp e, que els o mula is poden se objec e de manipulacions amb
p opòsi s malin enciona s amb la inali a que l’aplicació no uncioni co ec amen o
eu e’n algun p o i , com es comen a a an e io men . Pe al d’e i a aques s
p oblemes, les dades han de eb e un ac amen que ga an eixi que a iben en un
o ma conc e i pode eballa co ec amen amb elles.
Aques ac amen es eali za a la pàgina on s’en ien les dades, en e la capçale a i
el cos de pàgina, abans d’imp imi el con ingu . D’aques a mane a, el esul a
ob ingu en les comp o acions pe me à dis ingi a l’in è p e si ha de ca ega el
con ingu sol·lici a (quan les dades en iades siguin co ec es) o imp imi un missa ge
no i ican l’e o .
De o ma gene al, cal comp o a que:
• Els camps de ipus ex no es an bui s. A més cal elimina els espais bui s del
p incipi i el inal del camp, i escapa els ca àc e s especials com “ i ‘.
• Els camps de ipus da a no es an bui s, con enen dades numè iques i da es
àlides.
• En les llis es seleccionables, que l’elemen selecciona és una opció àlida.
Desen olupamen d’una aplicació web pe a una ONG
- 65 -
• En els camps de ipus i xe , que s’ha adjun a un documen i és del ipus espe a .
A més, cal e i a a acs conegu s
[ix]
com injeccions SQL i XSS (C oss-si e sc ip ing).
El p ime a e e ència a la inse ció de codi SQL dins d’una consul a que s’ha
d’execu a pe al de modi ica -ne el compo amen i execu a el codi maliciós a la
base de dades. El segon consis eix, gene almen , en inse i codi HTML o Ja asc ip
als o mula is pe al que es publiquin de o ma il·legal de e mina s con ingu s en una
pàgina web.
En qualse ol cas, aques s a acs es poden soluciona ac an opo unamen les
dades en iades. Pel que a a les injeccions SQL, cal escapa els ca àc e s pe illosos
(com “ i ‘) pe mi jà de la col·locació de con aba es ( ) al da an . Respec e als a acs
XSS, pe e i a -los és necessa i elimina o el ex comp ès en e els ca àc e s “<” i
“>” pe mi jà de uncions de PHP com s ip_ ags().
Si les dades no són àlides, l’aplicació no eali za cap acció, in en a econèixe l’e o
i mos a a l’usua i un missa ge pe al que modi iqui aquelles dades que l’aplicació
ma ca com in àlides.
Pe codi ica i iden i ica els e o s s’u ili za la següen ècnica. P ime amen ,
s’iden i iquen o s els possibles e o s que po dona un o mula i i s’assigna a
cadascun d’ells una po ència de 2 di e en (1, 2, 4, 8, 16, ...). El e que el nomb e
d’e o sigui una po ència de 2 pe me codi ica di e sos e o s en una única
a iable, ja que la iden i icació es a pe mi jà d’ope ado s bi a bi .
En segon lloc, s’han de de ini els missa ges d’e o que cald à mos a si es donen i
inalmen , comp o a els e o s que s’han p oduï i imp imi el missa ge d’e o
co esponen . A con inuació es p esen a un exemple pe acili a la comp ensió.
S’aga a un o mula i amb 2 camps de ex ( ex 1, ex 2) i 2 llis es seleccionables
(llis a1, llis a2). Els possibles e o s són:
Elemen E o Codi icació
Tex 1 bui 1
Tex 2 bui 2
Llis a1 Elemen in àlid 4
Llis a2 Elemen in àlid 8
Desen olupamen d’una aplicació web pe a una ONG
- 66 -
El codi pe a comp o a si es p odueix algun e o és el següen :
$e o =0; //inicialmen no hi ha cap e o
i ($_POST[" ex 1"]==''){ $e o =$e o + 1; }
i ($_POST[" ex 2"]==''){ $e o =$e o + 2; }
i (!in_a ay($_POST["llis a1"], $ alo s_llis a1)
{ $e o =$e o + 4; }
i (!in_a ay($_POST["llis a2"], $ alo s_llis a2))
{ $e o =$e o + 8; }
Es de ineixen els següen s missa ges d’e o :
$e o s_possibles=a ay(
1 => 'Tex 1 bui ',
2 => 'Tex 2 bui ',
4 => 'Elemen llis a1 in àlid',
8 => 'Elemen llis a2 in àlid'
);
Finalmen , es comp o en els e o s que s’han p oduï :
i ($e o !=0){
o each($e o s_possibles as $num_e o => $ ex _e o ){
i ($num_e o &$e o ){
//imp imeix missa ge d'e o $ ex _e o
}
}
}
En el codi an e io , s’execu a un bucle que a cada ol a comp o a si es dóna un e o
di e en . La comp o ació es eali za amb l’ope ació $num_e o &$e o , que u ili za
l’ope ado bi a bi &. Aques e o na el p oduc e bi a bi dels dos ope ands; si el
esul a és ze o no hi ha e o , en cas con a i hi ha e o i cal imp imi el missa ge
co esponen .
8.4.3.5 En iamen de i xe s
L’en iamen de i xe s és necessa i pe pode puja documen s a l’aplicació, cosa
que es a a a és de la pàgina upload.php. S’implemen a a pa i del mè ode POST i

Desen olupamen d’una aplicació web pe a una ONG
- 67 -
pe e -ho u ili za la a iable supe global $_FILES, la qual és un ec o que gua da el
nom, el amany, el ipus i la u a on es gua da el i xe empo almen de la següen
mane a:
$_FILES['nom_ i xe ']['name']
$_FILES['nom_ i xe ']['size']
$_FILES['nom_ i xe '][' ype']
$_FILES['nom_ i xe '][' mp_name']
(subs i uin ‘nom_ i xe ’ pel nom del camp que s’u ili za al o mula i)
A més, cal inclou e pa àme es al o mula i pe dis ingi que es pugen i xe s a a és
d’ell (pe mi jà de enc ype="mul ipa / o m-da a").
< o m id=" o m_upload" enc ype="mul ipa / o m-da a"
ac ion="upload.php?sec=<?echo $mysec;?>" me hod="pos ">
I ambé cal indica el amany màxim (en by es) de l’a xiu a a és d’un inpu ocul que
ha de po a el nom MAX_FILE_SIZE.
<inpu ype="hidden" name="MAX_FILE_SIZE" alue="10000000">
To i això, el na egado po no espec a el màxim ixa i, en conseqüència, cal
comp o a pos e io men que la a iable $_FILES[“ i xe ”][“size”] no supe a el alo
es able .
$max=10000000;
i ($_FILES["doc_ ile"]["size"]<= $max){
//codi que s’execu a solamen si el amany
//no supe a el màxim que s’ha es able p è iamen
}
Desp és de e el ac amen de dades co esponen , cal mou e el i xe , el qual es
oba en un di ec o i empo al, al di ec o i de ini iu on es gua da à.
El na egado ha de disposa dels pe misos necessa is pe pode llegi i esc iu e en
de e mina s di ec o is del se ido . Pe al que sigui possible, s’ha decidi posa -lo
com usua i p opie a i del di ec o i docs i de o s els seus subdi ec o is, a pa de
disposa dels pe misos de lec u a i esc ip u a.
$ chown –R www-da a:www-da a docs/
$ chmod –R 750 docs/
Desen olupamen d’una aplicació web pe a una ONG
- 68 -
Dins del di ec o i docs es oben 3 di ec o is: doha_p ocess, 2nd_mee ing i
3 d_mee ing, cadascun dels quals co esponen a una secció de l’aplicació. Al ma eix
emps, cadascun d’aques s con é 4 di ec o is (en, es, , c ), que an e e ència a les
qua e llengües en què es po penja un documen . Amb l’es uc u a p esen ada, els
i xe s queden o gani za s pe seccions i llengües.
D’al a banda, pe al de no sob eesc iu e els documen s penja s an e io men ,
s’u ili za l’algo isme de xi a MD5 pe gene a una clau única a pa i de l’ins an en
què es puja el documen , de mane a que es c ea un di ec o i que po a pe nom el
esul a ob ingu del xi a ge en el di ec o i de les llengües ma cades al o mula i, on
cadascun d’ells con é el documen penja . Po se l’explicació esul a una mica
con usa, pe això p esen a el següen exemple.
Suposem que a a és del o mula i es puja el documen “in o me.pd ” en ca alà i en
anglès a la secció Second Mee ing. Si es el esul a del hash de l’ins an en què es
puja és 4d186321c1a7 0 354b297e8914ab240, les dues e sions se an accessibles
a les següen s ad eces:
$di ec o i_ inal= hash("md5",mic o ime());
//s’ob é el esul a 4d186321c1a7 0 354b297e8914ab240
docs/second_mee ing/c /4d186321c1a7 0 354b297e8914ab240/in o me.pd
docs/second_mee ing/en/4d186321c1a7 0 354b297e8914ab240/in o me.pd
En el momen de c ea el di ec o i cal dona -li els pe misos co esponen s i inalmen
mou e el documen del di ec o i empo al al di ec o i que s’acaba de c ea .
mkdi ($di ec o i, 0750);
$des i="docs/second_mee ing/c /4d186321c1a7 0 354b297e8914ab240/in o
me.pd ";
mo e_uploaded_ ile($_FILES["doc_ ile"][" mp_name"], $des i);
8.4.4 Adminis ació
S’ha decidi du l’adminis ació del lloc web de o ma cen ali zada a pa i de la
pàgina managemen .php. Així doncs, s’ha p o eï aques a pàgina de o mula is que
pe me in c ea , edi a i esbo a usua is, o gani zacions, ca ego ies, e c., cosa que no
ep esen a g ans a iacions espec e al que s’ha explica an e io men .
A a bé, al la pena des aca el sis ema de ges ió d’usua is, el qual pe me en ia -los
Desen olupamen d’una aplicació web pe a una ONG
- 69 -
emails no i ican -los l’al a d’usua i o la gene ació d’un no a con asenya
4
, cosa que
s’aconsegueix pe mi jà de dues classes de PHP: PHPMaile i SMTP, les quals
s’implemen en en els i xe s class.phpmaile .php i class.sm p.php, espec i amen .
A pa i d’aques es es poden en ia emails amb o es les possibili a s de què disposa
qualse ol clien de co eu ( i xe s adjun s, con igu ació del missa ge HTML, e c.). Pe
e -ho, cal ins al·la les classes en algun di ec o i de l’aplicació i usa els mè odes
que o e eixen.
A més, ambé s’ha c ea una unció p òpia que s’enca ega d’es abli la con igu ació i
cons ui l’email a pa i de les dades ebudes. Es p esen a la capçale a d’aques a:
unc ion en ia_mail($mail_use , $mail2_use , $pass, $lang_use ,
$ ac e_use , $nom_use , $cognom_use , $o g_use ,
$ ipus_no i icacio)
En aques a es oben a ibu s pe a cons ui el missa ge (nom i cognoms de l’usua i,
con asenya, o gani zació, e c.), dades de con igu ació (ad eces de l’usua i, llengua
en què s’ha de edac a el missa ge, e c.) i un a ibu que indica el ipus de
no i icació: al a d’usua i o gene ació d’un con asenya no a.
D’aco d amb o l’an e io , es p esen a una e sió adap ada de la unció en ia_mail()
a mode d’exemple.
//capçale a necessà ia pe pode u ili za les classes
equi e_once "includes/class.phpmaile .php";
//con igu ació de la classe phpmaile
$mail = new phpmaile ();
$mail->PluginDi = "";
$mail->Maile = "sm p";
$mail->Hos = " elay.upc.edu";
//con igu ació de l'email
$mail->SMTPAu h = alse;
4
Veu e uncionali a s Al a d’usua is i Gene a una con asenya pe a un usua i
Desen olupamen d’una aplicació web pe a una ONG
- 70 -
$mail->isHTML( ue);
$mail->F om = "[email p o ec ed]";
$mail->F omName = "In o Table o Dialogue";
.. .. .. ..
$mail->AddAdd ess($mail_use );
i ($mail2_use !="") $mail->AddAdd ess($mail2_use );
//es cons ueix el cos de l'email a pa i de les uncions
//cons ueix_mail_accoun i cons ueix_mail_passwo d.
//No es posen pe no sob eca ega l'exemple
i ($ ipus_no i icacio==0)
$cos=cons ueix_mail_accoun ($mail_use , $pass, $lang_use ,
$o g_use );
elsei ($ ipus_no i icacio==1)
$cos=cons ueix_mail_passwo d($mail_use , $pass, $lang_use );
//es cons ueix l'assump e de l'email
swi ch($ ipus_no i icacio){
case 0: $assump e="New Accoun o able o dialogue.ne ";
b eak;
case 1: $assump e="Passwo d eco e y o able o dialogue.ne ";
b eak;
de aul : b eak;
}
$mail->Subjec = $assump e;
$mail->Body = "<h ml><body>$cos</body></h ml>";
$body_newuse =$mail->Body;
.. .. .. ..
Desen olupamen d’una aplicació web pe a una ONG
- 77 -
P opòsi
Un CMS g a uï de p opòsi gene al
Funcionali a s
Au en icació d’usua is
De inició de di e en s ols ( ipus) d’usua i
Accés i in e ac i i a amb les bases de dades
Adminis ació web del con ingu
O gani zació en di e en s emes de discussió ( ò um)
Pe me e la in oducció de PHP en el codi
Cà ega/descà ega de documen s
Possibili a d’in eg ació d’una eina de ce ca
Compa ibili a
amb el
se ido
Se ido Apache HTTP
Bases de dades MySQL
Llengua ge de p og amació PHP (p e e en men )
Apa ença
Que l’apa ença sigui àmpliamen con olable i pe sonali zable en CSS i/o
l’à ea d’adminis ació de l’aplicació.
Comuni a
Que la comuni a que hi ha al da e a sigui ac i a, pe al d’ob eni
ac uali zacions de segu e a , no es uncionali a s, manuals, u o ials i
in o mació de supo (semp e que sigui possible)
Reque imen s que ha de compli el CMS
Desp és de e una p ospecció de me ca es po eu e que mol s CMS g a uï s
compleixen els equisi s de compa ibili a amb el se ido (Apache, PHP, MySQL), i
pe an cald à ce ca en es udis, in o mes compa a ius i obse a la endència del
me ca pe de e mina els CMS que cal eni en comp e.
9.3.2 Ce ca d’es udis compa a ius a In e ne
Es poden oba bas an s es udis
[xi]
que compa en els CMS del me ca , pe ò so in
acos uma a ha e un cla (i ine i able) a o i isme pe pa de l’au o de l’es udi. Pe
això m’he cen a en es udis en què l’au o hagi u ili za els CMS que compa a, pe
al de se el més impa cial possible.
Vold ia essal a el següen es udi: "The 2008 Open Sou ce CMS Ma ke Sha e
Repo ”
[xii]
, el qual no espon quin és el millo CMS open sou ce, sinó quin o quins
són els líde s del me ca .
Aques comple es udi es basa en dos indicado s: el i me d’adopció ( a e o
adop ion) i la o ça de la companyia (b and s eng h). El p ime indicado é en
comp e ac o s com el nomb e de descà egues, d’ins al·lacions, llib es imp esos,
e c. El segon, en can i, es ixa en la se a isibili a als mo o s de ce ca (Google,

Desen olupamen d’una aplicació web pe a una ONG
- 78 -
Yahoo, e c.), en la popula i a , en el ànsi en llocs web de demos ació, en les
mencions en mi jans de comunicació, e c., i a especial essò als p emis a o ga s a
cadascun dels CMS.
Segons el p ime indicado (malg a la subjec i i a dels ac o s), el g up dels líde s
es à o ma pe Wo dP ess, Joomla! i D upal. El segon indicado , pe ò, con i ma el
lide a ge d’aques s es CMS espec e la es a, els quals se si uen a una dis ància
o ça conside able.
Pel que a a p emis, cal des aca que D upal i Joomla! són els que més p emis
s’han empo a en els da e s anys pe pa de l’emp esa Pack Publishing
[xiii]
. No
obs an , el guanyado absolu de les dues úl imes edicions ha es a D upal, men e
que Joomla! ha queda en segon lloc.
Pe al a banda, nomb osos es udis essal en que D upal disposa de millo s
uncionali a s (especialmen en la ges ió d’usua is i pe misos) i és mol més lexible
en quan a ges ió d’ex ensions i con ingu s que no el seu compe ido Joomla!.
9.3.3 Eines de compa ació dels CMS
Tal com s’ha explica an e io men , el e d’escolli un CMS és una asca complexa i
p o a -los o s (ins al·la -los i du a e me uncions senzilles) és in iable. Donada la
gene ali zació de l’ús de CMS han apa egu di e ses eines, a més de llocs webs que
ecullen alo acions i pun uacions dels usua is, pe ajuda a compa a les se es
ca ac e ís iques. En e aques es, des aco dues eines.
La p ime a és CMS Ma ix
[xi ]
, la qual consis eix en una ex ensa llis a de CMS de la
qual es poden escolli els que es olen compa a i llis a -ne les ca ac e ís iques, els
eque imen s de sis ema i les uncionali a s de què disposa espec e a segu e a ,
acili a d’ús, supo , ges ió, e c.
Desen olupamen d’una aplicació web pe a una ONG
- 79 -
Compa ació dels CMS D upal i Joomla a CMS Ma ix
La segona és OpenSou ceCMS
[x ]
. Aques lloc web e acili a, en e al es coses, una
in e ície de p o es (ja ins al·lada) pe cada CMS i un cop au en ica com a usua i es
poden ges iona els con ingu s i anali za el seu uncionamen . Pe al a banda,
ambé p opo ciona una llis a
[x i]
dels CMS, ag upa s pe p opòsi , que con é la
pun uació mi jana a o gada pels usua is a cada ges o .
Llis a de ges o s amb les se es pun uacions a OpenSou ceCMS
To i que no é alidesa su icien pe a di quin és el millo CMS (ja que les
Desen olupamen d’una aplicació web pe a una ONG
- 80 -
pun uacions poden se manipulades o an di e ses egades a a o in un ges o o
un al e) pe me e -se una idea sob e quins són els més usa s i en quins es an més
in e essa s els usua is.
9.3.4 Resum del p ocedimen de selecció
El p ocedimen de selecció que s’ha segui es po dedui dels apa a s an e io s.
P ime de o , s’han plan eja les 5 p egun es bàsiques i el esul a ob ingu ha es a
la Taula de eque imen s que ha de compli el CMS de l’apa a 9.3.1. Es udi de
me ca dels CMS.
A con inuació, aga an com a e e ència l’es udi de Ric Sh e es - wa e &s one ci a
en l’apa a 9.3.2 s’han busca es udis compa a ius en e Joomla!
[x ii]
, Wo dP ess
[x iii]
i D upal
[xix]
ja que compleixen plenamen els eque imen s es able s, pe l’ac i i a
de les comuni a s que enen al da e a i, en especial, pe l’eno me quan i a de
uncionali a s de què disposen. No s’ha desca a Wo dP ess ja que, malg a no se
conside a en mol s casos un CMS de p opòsi gene al, é una àmplia accep ació i un
g an nomb e de uncionali a s que el an mol po en .
Pos e io men , s’han compa a els CMS escolli s. En p ime lloc, u ili zan l’eina
OpenSou ceCMS, con as an les pun uacions i obse acions dels usua is. En
segon lloc, llis an les ca ac e ís iques de cadascun amb CMS Ma ix.
A pa i d’aques úl im es po conclou e que Wo dP ess é enca a mol es ex ensions
de segu e a , ges ió i lexibili a pe cob i ; i pe an queda desca a .
Es po conside a que D upal i Joomla! queden en igual a de condicions i s’ha op a
pe ins al·la -los o s dos pe al de compa a els p ocessos d’ins al·lació i p end e
con ac e amb cadascun. To s dos enen un p océs d’ins al·lació simple i àpid.
Segons la me a opinió, la in e ície de D upal és mol més in uï i a i p o essional, a
di e ència de la de Joomla!, la qual sembla més senzilla i amb menys possibili a s.
Finalmen , conside an les dis incions ebudes, els es udis ci a s en l’apa a 9.3.2
(que si uen en millo s posicions D upal que Joomla!) i una mínima expe iència
pe sonal, es conclou que D upal és més adequa pe al desen olupamen de la
no a aplicació de l’ONG ja que, a di e ència de Joomla!, é eines pe sa is e
eque imen s uncionals impo an s (com l’es ablimen de pe misos de o ma
g anula , con igu ació de ipus de dades p opis), i compleix més idelmen els
Desen olupamen d’una aplicació web pe a una ONG
- 81 -
es ànda ds d’In e ne .
Així ma eix, é una majo ex ensibili a , escalabili a i lexibili a , cosa que cal eni en
comp e da an la possibili a d’implan ació del CMS en la es a d’aplicacions de
l’ONG.
9.4 Disseny i implemen ació de l’aplicació a pa i del CMS escolli
Desp és de la àpida i senzilla ins al·lació de D upal al se ido , s’ha p ocedi a la
ins al·lació d’un ema que pe me i dona -li l’es uc u a adien , i a pa i de la qual es
pugui ixa la con igu ació i l’apa ença desi jada d’aco d amb els eque imen s
es able s en el capí ol 6. Els passos esmen a s es poden oba als annexos I i II
d’aques a memò ia.
A con inuació, s’ha p ocedi en el disseny de les dades, el disseny i la implemen ació
de l’aplicació al com es desc iu o segui .
9.4.1 Disseny de les dades
Des del meu pun de is a, D upal s’o gani za al ol an de dos concep es bàsics:
Node i Module. Pe node s’en én qualse ol ipus de con ingu (és a di , pàgines,
en ades de blog, e c.), els quals poden con eni di e en s uni a s de con ingu com
comen a is o i xe s, i es a elaciona s amb al es nodes.
Pe al a banda, els mòduls són pe i es aplicacions que pe me en es end e o
augmen a les uncionali a s exis en s del ges o de con ingu s, o bé, a egi -ne de
no es pe al d’aconsegui un de e mina compo amen o objec iu ins alesho es
inabas able.
Con é essal a que el nucli de D upal (és a di , el conjun d’elemen s bàsics pe al
seu uncionamen ) es à di idi en mòduls essencials i mòduls opcionals. En el p ime ,
es oben mòduls com:
• Use : Ges iona el egis e d’usua i i l’en ada al sis ema.
• Block: Con ola els blocs d’in o mació (menús, capçale a, peu, e c.) que es
mos en al ol an del con ingu p incipal.
• Fil e : Reali za el il a ge de con ingu que ha de se mos a .
Desen olupamen d’una aplicació web pe a una ONG
- 82 -
• Node: Pe me la in oducció de nou con ingu i l’o gani za en pàgines.
• Sys em: Ges iona la con igu ació gene al del lloc pels adminis ado s.
En can i, en el conjun de mòduls opcionals es oben u ili a s o ça habi uals en les
aplicacions web com el ce cado (Sea ch), els comen a is (Commen ), ... mol s d’ells
pe ò, a di e ència dels mòduls essencials, cal ac i a -los abans de pode -los u ili za .
Pe de ec e D upal duu di e sos mòduls ac i a s, on, a més dels mòduls essencials,
es oben els comen a is (Commen ) i el ges o de menús (Menu), en e d’al es;
cosa que pe me eni una aplicació o ça uncional jus desp és de la ins al·lació.
En aques sen i , es po es abli un ce pa al·lelisme (no es ic e, sinó uncional)
en e els di e en s mòduls de D upal i les classes que o men l’aplicació. Es desc iu a
con inuació:
Use Es po aconsegui una ges ió d’usua is en di e en s ols a pa i del
mòdul Use . A més, pe me la de inició de nous ols i l’assignació de
pe misos ( an pe l’accés al con ingu com pe la u ili zació de
di e en s mòduls).
A pa , es po aconsegui la con igu ació dels usua is ac i an el
mòdul P o ile, pe al d’a egi a ibu s pe sonali za s.
Sec ion Les seccions es poden ges iona des d’una pàgina. (Cald à in odui
ce s can is, com s’explica à més enda an ).
Commen El mòdul Commen de D upal és equi alen .
New Les no ícies (comen a is dins d’una secció) ambé poden ac a -se
amb el mòdul Commen .
Ve sion La classe Ve sion es po conside a com un i xe adjun a una
pàgina. Cal ac i a el mòdul Upload pe pode adjun a i xe s a les
pàgines.
Regis y No cal implemen a aques a classe pel e que D upal disposa del
mòdul Da abase logging, que s’enca ega de egis a o es les
accions/esde enimen s de l’aplicació a la base de dades. Alesho es,

Desen olupamen d’una aplicació web pe a una ONG
- 83 -
es po ob eni la in o mació desi jada des ian -la de la es a, com
s’explica à més enda an .
Finalmen , pe comple a el disseny de dades, cal ins al·la els mòduls d’aquells ipus
de dades amb els quals D upal no comp a inicialmen i que són necessa is pe a
l’aplicació: Email i Da e. Aques s pe me en de ini a ibu s de ipus e-mail i da a,
espec i amen , i al ma eix emps po en inco po ades les es iccions necessà ies
pe aques s ipus de dades. (pe exemple: que el ca àc e @ es igui en els emails,
que la da a sigui àlida: no es pe me in da es de l’es il 31 de eb e de 2009).
Malg a o , les possibili a s que dóna D upal no són su icien s pe a e on a
qualse ol classe de l’aplicació, ja que n’hi ha algunes que enen mol s a ibu s o bé
necessi en a ibu s conc e s. D upal, pe si ma eix, és incapaç de cob i o es les
necessi a s i uncionali a s que es olen assigna a una classe pe sonali zada i pe
això cal busca un mòdul que pe me i modela els ipus de con ingu .
Així doncs, D upal disposa d’un mòdul mol po en (i en ce a mane a “màgic”)
anomena Con en Cons uc ion Ki (CCK), el qual pe me c ea ipus de con ingu s
pe sonali za s com ambé a egi a ibu s als ipus de con ingu exis en s pe al de
dona -li una inali a especí ica.
9.4.1.1 P océs de c eació de nous ipus de con ingu
El p océs de c eació de nous ipus de con ingu es eali za des de l’à ea
d’adminis ació de l’aplicació i consis eix en espond e un segui de p egun es que
o mula l’aplicació. Inicialmen , s’ha de espond e a les ca ac e ís iques del nou
ipus:
• Nom i desc ipció del nou ipus
• Noms dels a ibu s Ti le i Body (aques úl im opcional)
• Volum de eball (si s’ha de publica , si ha d’apa èixe a la p ime a pàgina, e c.)
• Ca ac e ís iques dels comen a is (decidi si el nou ipus de con ingu s n’accep a, i
en cas a i ma iu, con igu ació d’aques s)
Desen olupamen d’una aplicació web pe a una ONG
- 84 -
Selecció de ca ac e ís iques d’un nou ipus de con ingu
A con inuació, basan -se en l’es uc u a ípica d’una pàgina (Ti le i Body), cal in odui
els a ibu s un pe un, decidi el ipus de dades i les se es ca ac e ís iques; i, pe
úl im, decidi com es mos a an.
Edició dels a ibu s d’un nou ipus de con ingu
Desen olupamen d’una aplicació web pe a una ONG
- 85 -
9.4.1.2 C eació de nous ipus de con ingu pe aques p ojec e
D upal es à equipa amb un segui de mòduls que pe me en cob i di e sos ipus de
con ingu o ça habi uals en aplicacions web. Així, pe exemple, inco po a Page (pe
pode c ea pàgines), S o y (pe e pàgines més senzilles que equi alen en ades de
blog) i Commen , el qual pe me dona lloc als comen a is.
Així ma eix, els mòduls menciona s són u ili za s de la següen mane a: Page, pe a
c ea pàgines d’in o mació; S o y, pe a in odui en ades a la pàgina p incipal del
lloc web; i Commen , pe implemen a comen a is dels documen s i no ícies de les
seccions.
No obs an , com s’ha comen a an e io men , hi ha classes que queden més enllà
dels lími s de D upal i s’han d’implemen a pe sepa a , en aques cas, amb el mòdul
CCK (Con en Cons uc ion Ki ).
El p ocedimen p esen a en l’apa a an e io és el que s’ha segui pe a c ea els
ipus Documen , Sec ion i O ganiza ion. A con inuació, es po eu e l’es uc u a
esul an dels ipus de con ingu esmen a s.
9.4.1.2.1 Documen
En aques cas s’ha desac i a l’a ibu Body, ja que no se à u ili za . I s’a egeixen els
camps que es poden eu e a la aula:
A ibu
Nom
Tipus
Ti le Node module o m.
Au ho Field_au ho Tex
Da e Field_da e Da e
Sec ion Field_sec ion Tex
Ca ego y Field_ca ego y Tex
Subca ego y Field_subca ego y Tex
Menu se ings Menu module o m.
File a achmen s Upload module o m.
L’a ibu de i a Views, el qual con é el núme o de isi es, no s’ha ma e iali za en
aques cas, és a di , no es a explíci en el ipus de con ingu Documen , ja que es
ges iona in e namen a pa i dels mòduls S a is ics i S a is ics Ad anced Se ings
que es poden adminis a de mane a senzilla i enen una g an lexibili a .
Desen olupamen d’una aplicació web pe a una ONG
- 86 -
9.4.1.2.2 Sec ion
El compo amen i l’es uc u a de les seccions se à mol semblan al d’una pàgina
qualse ol, i únicamen s’a egeix el camp Sub i le.
A ibu
Nom
Tipus
Ti le Node module o m.
Sub i le Field_au ho Tex
Menu se ings Menu module o m.
Body Node module o m.
9.4.1.2.3 O ganiza ion
En el cas de les o gani zacions es can ia el nom de l’a ibu p incipal Ti le pe Name i
es desac i a el Body, pe què ampoc se à u ili za . Finalmen s’a egeixen els camps
que es poden eu e a la aula:
A ibu
Nom
Tipus
Name Node module o m.
Ac onym Field_au ho Tex
Type Field_sec ion Tex
Menu se ings Menu module o m.
9.4.1.3 Con igu ació de la classe Usua i
Pe a comple a la con igu ació dels usua is, se segueix un p ocedimen simila al
que s’ha explica amb el mòdul CCK, o i que en aques cas a pa i del mòdul
P o ile.
La mecànica és la ma eixa, és a di , ana a egin successi amen a ibu s, escolli el
ipus de dades i les se es ca ac e ís iques ins a con o ma l’usua i al com es
desi ja.
Desen olupamen d’una aplicació web pe a una ONG
- 93 -
9.4.3 Implemen ació
En aques apa a , s’explica com s’ha a iba a aconsegui l’es ablimen de pe misos,
ja que no queda cobe amb el que s’ha explica an e io men .
Cal eco da que s’han dis ingi 3 ipus d’usua is (admin, no mal i gues ) amb
di e en s possibili a s sob e el con ingu i pe això cal assigna -los di e en s pe misos.
Pe aconsegui -ho, es a se i el mòdul Con en Access, el qual pe me ixa
pe misos de o ma gene al (pe ipus de con ingu ) i pe cada node, o en al es
pa aules, de o ma g anula , cosa que dóna mol a lexibili a .
Edició dels pe misos dels di e en s ipus d’usua i sob e un node

Desen olupamen d’una aplicació web pe a una ONG
- 94 -
10 P o es
Aques a e apa és una de les més impo an s del desen olupamen ja que, a pa de
p o a que s’ob é el compo amen desi ja de o s els casos d’ús, pe me descob i
possibles ulne abili a s amb les que no s’ha ia comp a an e io men i que pod ien
comp ome e la segu e a de les dades del lloc web.
Pe a eali za les p o es s’ha u ili za el na egado Fi e ox 3, ajuda de l’ex ensió
Web De elope
[xx]
. Es p esen en a con inuació, els escena is p o a s
6
.
Escena is p o a s P og.
a mida
D upal
En el momen d’en a a l’aplicació
Deixa els camps use name i passwo d bui s. X X
U ili za dades inco ec es en els camps use name i passwo d. X X
De o ma gene al
Els usua is només poden accedi a les pàgines on disposen dels pe misos necessa is. X X
Només es comp abili zen les isi es dels usua is de ipus No mal pe al còmpu de isi es dels
documen s.
X X
Els documen s d’una secció es mos en o dena s c onològicamen . X X
La llis a de documen s d’una aula es po o dena pe qualse ol camp. X X
Les no ícies i els comen a is es mos en o dena s c onològicamen . X X
En el momen de publica i edi a el con ingu
Deixa els camps bui s i in en a publica . X X
In odui dades no numè iques en els camps de ipus da a. X X
In odui da es in àlides en els camps de ipus da a. X X
Escolli una secció no pe mesa. X X
Inse i dades amb longi ud supe io al lími pe mès. X X
Inse i ca àc e s especials (‘, “, accen s,...) i comp o a que es ac en co ec amen . X X
Inse i codi en HTML i Ja asc ip . X X
Publica més de 10 comen a is/no ícies pe comp o a que se seleccionen els/les més ecen s. X X
Penja més de 5 documen s en una secció i comp o a que seleccionen els més ecen s. X X
La da a i l’ho a en què s’ha publica és co ec a. X X
6
Els que es an ma ca s amb NA, no s’han pogu p o a en D upal ja que s’implemen a de mane a
di e en . Com s’explica à en p ope capí ol, s’han hagu de ebaixa alguns dels objec ius.
Desen olupamen d’una aplicació web pe a una ONG
- 95 -
Comp o a que només es poden puja documen s en o ma PDF. X X
A l’à ea d’adminis ació
No assigna cap con asenya a un usua i. X X
Assigna una con asenya més lla ga/cu a del lími . X X
In odui una ad eça de co eu in àlida (sense @). X X
Comp o a que les con asenyes es gua den xi ades. X X
C ea un usua i i comp o a que s’en ia co eu elec ònic de no i icació. X X
Comp o a que l’usua i po can ia la con asenya la p ime a egada que en a a l’aplicació. X NA
Comp o a que quan s’esbo a un usua i es conse en els documen s, no ícies i comen a is
que ha deixa a l’aplicació.
X X
Desac i a una secció i comp o a que no es llis en els seus documen s ni no ícies. X X
Comp o a que no es po esbo a una o gani zació inculada amb algun usua i. X NA
Comp o a que no es po esbo a una ca ego ia o subca ego ia inculada amb algun
documen .
X NA
Comp o a que la llis a del úl ims accessos dels usua is aga a ealmen l’úl im accés de cada
usua i.
X X
Desen olupamen d’una aplicació web pe a una ONG
- 96 -
11 Compa ació de les dues me odologies de
desen olupamen
L’objec iu p incipal d’aques capí ol és anali za les dues me odologies de
desen olupamen en base a di e en s ac o s que es p esen en a con inuació.
11.1 Ap enen a ge
El mè ode adicional eque eix conèixe HTML i PHP pe pode p og ama les
pàgines, SQL pe pode e les consul es a les bases de dades i la sin axi CSS pe
pode dissenya una apa ença amb ulls d’es il. En can i, en D upal, un
adminis ado no ell pod ia p escindi de o s aques s coneixemen s.
A a bé, pe aconsegui un ni ell de pe sonali zació com el que s’ha aconsegui a
l’aplicació que es p esen a, a més d’aques s coneixemen s es necessi a un
ap enen a ge pe e unciona el CMS: ins al·lació, con igu ació, l’adminis ació,
publicació, ... i en de ini i a la pe sonali zació de l’aplicació pe què sigui com
s’espe a. Con é essal a , pe ò, que donada la se a complexi a , D upal é una co ba
d’ap enen a ge len a si es compa a amb al es CMS, els quals no són an po en s ni
disposen de les ma eixes possibili a s.
11.2 Documen ació
Pe so , D upal disposa de mol a documen ació (manuals, ídeos, ò ums de deba ,
e c.) i acos uma a segui unes pau es pe al d’uni ica el sis ema pe a e
de e minades coses. En el cas de l’aplicació desen olupada des de ze o, en p incipi
la documen ació és inexis en , si no es enen en comp e l’API
7
de PHP i les sin axis
HTML i CSS. No obs an , el desen olupado po cons ui la se a p òpia
documen ació pels emes que ho eque eixin.
11.3 Posada en ma xa
L’aplicació adicional é una posada en ma xa len a i p og essi a, on cal ana i e an
7
Applica ion P og amming In e ace
Desen olupamen d’una aplicació web pe a una ONG
- 97 -
en la p og amació i en les p o es conc e es ins a aconsegui el esul a espe a .
Con à iamen passa en D upal, el qual é una posada en ma xa mol àpida, de
mane a que en an sols unes ho es es po eni una aplicació uncionan , la qual
cald à complemen a amb la ins al·lació dels di e en s mòduls.
11.4 Con igu ació
Ambdues aplicacions eque eixen con igu acions p è ies que els pe me in ges iona
els seus i xe s en el se ido (lec u a i esc ip u a) i accedi a la base de dades. En
elació amb aques úl im pun , cal essal a que a l’aplicació adicional s’ha hagu de
dissenya la base de dades i implemen a -la, cosa que en D upal és anspa en al
desen olupado . És a di , D upal c ea i adminis a les aules de la base de dades
d’aco d amb el con ingu que ges iona, els mòduls ins al·la s i les se es
con igu acions.
11.5 Funcionali a s
Respec e als casos d’ús que s’ha ien dissenya , a l’aplicació adicional s’han hagu
de p og ama des de ze o cadascun d’ells. De o ma con à ia, en D upal els casos
d’ús s’implemen en en base a mòduls con igu a s con enien men pe aconsegui el
esul a espe a . Malg a o , a egades esul a di ícil sa is e els objec ius ixa s i cal
pensa solucions al e na i es o ebaixa els objec ius.
Així ma eix, no ha es a possible sa is e les es iccions desc i es pels casos d’ús
7.2.7.2. Baixa d’o gani zacions i 7.2.8.2. Baixa de ca ego ies, que diuen que no es
poden dona de baixa o gani zacions ni ca ego ies (i subca ego ies) que es iguin
associades a usua is i documen s, espec i amen . En aques cas, s’ha p ocedi a
ebaixa els objec ius, i es deixa com a esponsabili a de l’adminis ado la asca de
man eni la conco dança en e usua is-o gani zacions i documen s-ca ego ies pe al
que no es p odueixin p oblemes.
Respec e al cas d’ús 7.2.2.5. Can ia la con asenya, s’ha ia con ingu que els
usua is pod ien can ia la se a con asenya, únicamen , la p ime a egada que
en essin a l’aplicació i, en D upal, la poden can ia en qualse ol momen sense
necessi a de o na a inicia la sessió. Aques can i, d’en ada, no suposa cap
p oblema, pe ò sí que compo a una ebaixa dels objec ius.
Desen olupamen d’una aplicació web pe a una ONG
- 98 -
11.6 Adminis ació
Pel que a a l’adminis ació de l’aplicació, D upal disposa de mol es uncionali a s
d’adminis ació ( an de o ma gene al com a ni ell de mòduls i emes), les quals
es an p e-dissenyades i enen mol es capaci a s. En can i, a l’aplicació adicional
s’han hagu de desen olupa des de ze o o es les uncionali a s que es
necessi a en.
11.7 Apa ença
To es dues aplicacions pe me en la sepa ació del con ingu i la se a p esen ació pe
mi jà de la de inició d’es ils en els i xe s CSS. Alesho es, depèn de les habili a s del
desen olupado , aconsegui una apa ença a ac i a pe a l’aplicació. A més, D upal
pe me una ges ió de l’apa ença a a és del na egado , de la qual l’aplicació
adicional no disposa.
11.8 Publicació de con ingu s
Respec e a la publicació de con ingu s, ambdues disposen de o mula is que
pe me en au oma i za el p océs de publicació. Com s’ha comen a an e io men pe
a les uncionali a s i l’adminis ació, a l’aplicació adicional s’ha hagu de p og ama
i, en can i, a D upal únicamen és a ús del mòduls necessa is.
11.9 Es ablimen de pe misos
Sob e l’es ablimen de pe misos, D upal pe me du un con ol bas an exhaus iu dels
pe misos sob e cada uncionali a . A més, po es abli pe misos de o ma g anula , o
en al es pa aules, pe misos conc e s pe cada node, la qual cosa dóna mol de joc.
Pel que a a l’aplicació adicional, s’ha op a pe una ges ió de pe misos o ça
senzilla, inc us ada en el codi i gens au oma i zada, que cald ia e isa si es olgués
e més dinàmica i ope a i a des de l’à ea d’adminis ació, pe ò que sa is à les
necessi a s plan ejades pe l’aplicació.
11.10 Ex ensibili a
Quan a l’ex ensibili a de les aplicacions, D upal és o almen ex ensible a pa i de
mòduls i gene almen no implica la modi icació del codi. To es les uncionali a s

Desen olupamen d’una aplicació web pe a una ONG
- 99 -
desi jades es poden aconsegui amb la ins al·lació del mòdul co esponen , en cas
que exis eixi. A més, D upal ole a o s els can is en les bases de dades que
compo a la ins al·lació i l’ús d’aques s mòduls.
En can i, l’aplicació p og amada a mida, é una ex ensibili a limi ada en el sen i que
qualse ol can i en el compo amen d’una uncionali a o en la base de dades
compo a modi ica el codi, la qual cosa esul a incòmoda i poc a an a josa.
11.11 Segu e a
Respec e a la segu e a , o es dues aplicacions inco po en disposi ius pe ga an i -ne
la segu e a (pe exemple, el xi a de les con asenyes). No obs an això, els
o mula is amb què es eballa són ocus pe explo a les ulne abili a s de les
aplicacions web en els que cal pa a especial a enció. Pe no ma gene al, com més
usua is eballin amb una aplicació, més àcil és descob i -ne els pun s dèbils. Al
ma eix emps pe ò, una aplicació àmpliamen usada ambé po se objec iu d’a acs
ap o i an les ulne abili a s conegudes, cosa que no passa en una aplicació
p og amada a mida, en p incipi amb un ús més es ingi . D’al a banda, en aques a
úl ima, po se que s’hagin ob ia o no s’hagin ingu en comp e ce s p oblemes
En de ini i a, en quan a segu e a un CMS possiblemen es a à més p epa a ,
pe què amb el emps hau à p o a més escena is i s’hau an soluciona més
p oblemes (g àcies a la comuni a d’usua is i desen olupado s) que una aplicació
p og amada a mida.
Desen olupamen d’una aplicació web pe a una ONG
- 100 -
12 Compa ació de ca ac e ís iques no- uncionals de les
aplicacions ob ingudes
La compa ació que es p esen a en aques capí ol segueix l’es uc u a que s’ha ixa
al capí ol 6 espec e a Reque imen s No Funcionals.
12.1 Segu e a
- To es dues aplicacions poden eballa sob e p o ocol HTTPS pe ga an i
l’in e can i segu de i xe s.
- També s’u ili zen noms d’usua i i con asenyes pe e l’au en icació d’usua is i
es ingi l’accés al con ingu .
- Les dues gua den les con asenyes xi ades pe mi jà de l’algo isme MD5.
12.2 Fiabili a
- Les aplicacions es oben disponibles des de les ad eces able o dialogue.ne i
able o dialogue.o g. La edi ecció po a a l’usua i l’aplicació desen olupada amb
D upal. Pe accedi a l’aplicació p og amada a mida cal a egi a /old al inal de la
URL.
- Ex e namen , es eali zen còpies de segu e a del se ido ( o als i inc emen als).
Pe aques mo iu no cal implemen a -les des de les aplicacions.
12.3 Usabili a
- Les dues in e ícies es an desen olupades en anglès. A l’aplicació e a a mida
s’ha hagu d’esc iu e i e isa o el ocabula i. En can i, D upal disposa pe
de ec e del ocabula i en anglès.
- S’ha in en a e les dues aplicacions el més in uï i es possible i on es pugui
accedi àcilmen als con ingu s a a és de menús i enllaços si ua s
adequadamen .
- Les dues aplicacions disposen d’una à ea d’adminis ació pe ges iona els
con ingu s i els usua is. L’à ea d’adminis ació de D upal és més comple a i
Desen olupamen d’una aplicació web pe a una ONG
- 101 -
o e eix més possibili a s. Malg a o , és una mica més complexa.
- Pel que a als es ànda ds d’accessibili a , in e nacionali zació i independència,
D upal els espec a en majo g au, i el complimen d’aques s no eque eix es o ç
pe pa dels usua is (adminis ado s i desen olupado s, en p incipi) pel e que
es ges iona au omà icamen , a di e ència de l’aplicació p og amada des de ze o
on cons an men cal comp o a que es sa is an els es ànda ds ci a s.
12.4 E iciència
- El emps de espos a de les aplicacions se si ua en o s dos casos dins de
l’espe a ( ixa el màxim en uns 2 segons). No obs an , el emps de l’aplicació
desen olupada a mida és lleuge amen meno . En cap cas, s’a iba al màxim ixa
de 8 segons.
12.5 Man enibili a
- Com s’ha indica an e io men , D upal és àcil i àpid d’es end e en o s els sen i s
( uncionali a s, adminis ació, e c.), men e que qualse ol ex ensió en l’aplicació
desen olupada des de ze o eque eix la modi icació del codi, cosa que po
compo a bas an eball.
- Pel que a la solució d’e o s, de o ma gene al es po di que D upal disposa
d’una comuni a al da e a que s’enca ega de esold e’ls i publica no es e sions
del so wa e que no p esen en els e o s de ec a s. No obs an això, els
p oblemes pun uals i pe i s són ela i amen àcils de de ec a en l’aplicació
p og amada des de ze o.
12.6 Po abili a
- Les dues aplicacions es isuali zen co ec amen In e ne Explo e 6 i 7, i en
Mozilla Fi e ox 2 i 3.
- Ambdues aplicacions s’han desen olupa sob e un se ido Apache, s’han
p og ama en el llengua ge PHP5 i u ili zen MySQL com a sis ema ges o de
bases de dades.
- En els dos casos, les bases de dades poden adminis a -se ex e namen amb
Desen olupamen d’una aplicació web pe a una ONG
- 102 -
eines com PHPMyAdmin.
- Les dues aplicacions pe me en puja , únicamen , documen s en PDF.
12.7 Negoci
- En ambdues pla a o mes de desen olupamen , els p og ames u ili za s
disposa en de llicències g a uï es.
Desen olupamen d’una aplicació web pe a una ONG
- 109 -
Esquema de l’es uc u a ípica d’un ema de D upal

Desen olupamen d’una aplicació web pe a una ONG
- 110 -
Annex III: Ins al·lació d’un mòdul a D upal
La ins al·lació d’un mòdul, el qual pe me dona una uncionali a de e minada a
l’aplicació, segueix un esquema mol simila al p ocedimen u ili za pe a ins al·la un
ema. És el següen :
• Desca ega el mòdul d’In e ne
• T aspassa el mòdul al se ido amb algun p og ama que implemen i els
p o ocols FTP o SSH, i desempaque a -lo al di ec o i si es/all/modules/.
• Ac i a el mòdul desi ja des de l’à ea d’adminis ació (Adminis e >Si e
building>Modules).
Ac i ació de di e sos mòduls a a és de l’à ea d’adminis ació
Desen olupamen d’una aplicació web pe a una ONG
- 111 -
Bibliog a ia
La bibliog a ia s’es uc u a c onològicamen seguin els capí ols de la memò ia. Hi ha
on s bibliog à iques que s’han u ili za com a base pe al conjun d’un capí ol i
d’al es, en can i, que an e e ència a e mes conc e s i, pe això, es acili a la
e e ència en núme os omans a la ma eixa pàgina on apa eix el e me.
Reque imen s
Ingenie ía de equisi os: h p://es.wikipedia.o g/wiki/Ingenie ía_de_ eque imien os
[i] ISO/IEC 9126: h p://es.wikipedia.o g/wiki/ISO_912
[ii] Ca allo, J. P.; F anch, X.; Que C. “Towa ds a Uni ied Ca alogue o Non- echnical Quali y
A ibu es o Suppo COTS-Based Sys ems Li ecycle Ac i i ies” (bes pape ). In e na ional
Con e ence on COTS-Based So wa e Sys ems, ICCBSS 2007
[iii] “¿Cuán o es el iempo de ca ga de una página web que conside amos acep able?”:
h p://www.clikea .com/cuan o_ iempo_ca ga_14752.aspx
[i ] “B owse S a is ics”: h p://www.w3schools.com/b owse s/b owse s_s a s.asp
Especi icació
Cos al, D.; F anch, X.; Ribe a Sancho, M.; Tenien e, E. (2000). “Enginye ia del So wa e:
Especi icació: Especi icació dels sis emes o ien a s a objec es amb la no ació UML”.
Ba celona: Edicions UPC.
F anch, X.; Gómez, C.; Ma ínez, E.; P adel, J.; Raya, J.A. “T anspa ències de l’assigna u a
Enginye ia del So wa e II (ES2)”.
Cos al, D.; Rod íguez, E.; U pí, T.; Ma ín, C.; Que , C. “T anspa ències Bases de Dades”.
CPET.
Disseny i implemen ació
So wa e a chi ec u e: h p://en.wikipedia.o g/wiki/So wa e_a chi ec u e
[ ] Clien -se e : h p://en.wikipedia.o g/wiki/Clien -se e
[ i] Objec -o ien ed p og amming: h p://en.wikipedia.o g/wiki/Objec -o ien ed_p og amming
[ ii] Mul i ie a chi ec u e: h p://en.wikipedia.o g/wiki/Th ee_ ie _a chi ec u e
Desen olupamen d’una aplicació web pe a una ONG
- 112 -
[ iii] Monoli hic sys em: h p://en.wikipedia.o g/wiki/Monoli hic_sys em
[ix] Insegu idad in o má ica: h p://es.wikipedia.o g/wiki/Insegu idad_in o má ica
In o mació sob e els CMS
Con en managemen sys em: h p://en.wikipedia.o g/wiki/Con en _managemen _sys em
Sis ema de ges ión de con enido: h p://es.wikipedia.o g/wiki/Cms
[x] “5 Tips o help you choose a CMS”: h p://cmsc i ic.com/5- ips- o-help-you-choose-a-cms
Es udis Compa a ius
[xi] S’han ingu en comp e di e ses compa acions de ges o s de con ingu s:
• “Red Social con D upal s Joomla… o s Elgg”:
h p://www.plane ahue o.es/in e ne /2008/07/18/ ed-social-con-d upal- s-joomla-o- s-
elgg/
• “D upal 6 s Joomla 1.5. Ac ualización”:
h p://www.plane ahue o.es/2008/07/23/in e ne /d upal- s-joomla-ac ualizacion/
• “Compa ing D upal s. Joomla s. Typo3 and O he s”: h p://www.use ul alk.com/cms-
wikis/compa ing-d upal- s-joomla- s- ypo3-and-o he s
“Compa ing Open Sou ce CMSes: Joomla, D upal and Plone”:
h p://www.idealwa e.o g/a icles/joomla_d upal_plone.php
• “Joomla e sus D upal”: h p://www.communicopia.ne /blog/joomla- e sus-d upal
• “Wo dp ess s D upal”: h p://www.bi ings epo .com/2007/wo dp ess- s-d upal/
• “Wo dp ess s. D upal - Ba le o he CMS”: h p://www.b ianchappell.com/wo dp ess- s-
d upal-ba le-o - he-cms/
[xii] “The 2008 Open Sou ce CMS Ma ke Sha e Repo , by Ric Sh e es. Published by
wa e &s one”: h p://www.wa e ands one.com
[xiii] P emis Pack Publishing 2008: h p://www.pack pub.com/a icle/2008-open-sou ce-cms-
awa d-winne -announced
Eines de compa ació dels CMS
[xi ] CMS Ma ix: h p://www.cmsma ix.o g/
Desen olupamen d’una aplicació web pe a una ONG
- 113 -
[x ] OpenSou ceCMS: h p://php.opensou cecms.com/
[x i] Llis a de alo acions de CMS en PHP a OpenSou ceCMS:
h p://php.opensou cecms.com/gene al/ a ings.php
Ges o s de con ingu s
[x ii] Joomla.o g: h p://www.joomla.o g/
[x iii] Wo dp ess.o g: h p://wo dp ess.o g/
[xix] D upal.o g: h p://d upal.o g/
Documen ació i u o ials de D upal
D upal.o g: h p://d upal.o g/p ojec /Modules
D upal.o g - Themes: h p://d upal.o g/p ojec /Themes
D upal.o g - Modules: h p://d upal.o g/p ojec /Modules
D upalmodules.com: h p://d upalmodules.com/
Lea nby hed op.com: h p://www.lea nby hed op.com
Go D upal.com: h p://go d upal.com/
Mas e ingd upal.com: h p://www.mas e ingd upal.com/
Theming guide - D upal.o g: h p://d upal.o g/ heme-guide
“App oaches o Access Con ol”: h p://www.je ayno .o g/node/96
P o es
[xx] Mozilla.o g: h ps://addons.mozilla.o g/es-ES/ i e ox/addon/60
Conside acions inals
[xxi] S’han u ili za di e ses on s:
• “Usa CMS o p og ama a medida un p oyec o web”:
h p://www.seop o esional.com/usa -cms-o-p og ama -a-medida-un-p oyec o-web/
• “Las implicaciones de usa un CMS”: h p://www.lucioalbenga.com/2008/11/03/las-
implicaciones-de-usa -un-cms/
Desen olupamen d’una aplicació web pe a una ONG
- 114 -
• “¿CMS o desa ollo web pe sonalizado?”:
h p://www.ya aonline.com/po al/joomla/joomla-no icias/cms-o-desa ollo-web-
pe sonalizado.h ml
Conclusions
“Choosing he Righ CMS Pla o m o You Websi e ( om an SEO pe spec i e)”:
h p://www.seomoz.o g/blog/choosing- he- igh -cms-pla o m- o -you -websi e- om-an-seo-
pe spec i e