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