Web col·laborativa del bàsquet català
Abstract
Aplicación web que ofrece una solución a los jugadores que quieren encontrar un sitio para jugar a baloncesto y a los entrenadores que buscan un equipo para entrenar, así como a los clubs que tienen equipos federados, mediante una base de datos donde encontrar los jugadores y entrenadores que el equipo necesite.
Full text
WEB COL·LABORATIVA DEL BÀSQUET CATALÀ Memòria del projecte d’Enginyeria Tècnica en Informàtica de Sistemes realitzat per Albert Farràs Canals i dirigit per Rafael Fernández González Escola Universitària d’Informàtica Sabadell, Juny de 2009
WEB COL·LABORATIVA DEL BASQUET CATALÀ 2 El sotasignant, Rafael Fernández González, professor de l’Escola Universitària d’Informàtica de la UAB, CERTIFICA: Que el treball que correspon a la present memòria ha estat realitzat sota la seva direcció per en Albert Farràs Canals I per a que consti firma la present. Sabadell, Juny de 2009 ---------------------------------------- Signat: Rafael Fernández González
WEB COL·LABORATIVA DEL BASQUET CATALÀ 3 Resum del projecte En aquest projecte, donem una solució a traves d’una aplicació web a totes aquelles persones que tenen la necessitat de trobar un lloc on jugar a bàsquet (en el cas dels jugadors), o un equip per entrenar (en el cas dels entrenadors). De la mateixa manera, també pretenem ajudar als clubs que tenen equips federats, establint un mercat on trobar tots aquells jugadors i/o entrenadors que l’equip pugui necessitar i que voluntariament estiguin inscrits en la base de dades d’aquesta aplicació. El punt fort del projecte, i el que el fa únic en l’estat de l’art, és la possibilitat de trobar des d’un únic portal web, i en un sol instant, tota aquella informació que compleix les necessitats que l’usuari demana en un moment determinat. La informació retornada per l’aplicació ha de ser prou clara perquè l’usuari pugui solucionar la seva necessitat pràcticament a l’instant. Amb aquesta informació, només quedarà posar-se en contacte, si es vol, amb algun dels usuaris que s’han trobat, cosa que també serà possible mitjançant l’aplicació web.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 4 Índex 1. Capítol 1: Introducció 1 1.1. Motivacions 2 1.2. Estat de l’art 2 1.3. Objectius 2 2. Capítol 2: Estudi de viabilitat 9 2.1. Introducció 10 2.2. Objecte 11 2.2.1. Descripció de la situació actual 11 2.2.2. Perfil client – usuari 11 2.2.3. Objectius 11 2.2.4. Fonts d’informació 12 2.3. Sistema a realitzar 12 2.3.1. Descripció 12 2.3.2. Model de desenvolupament 12 2.3.3. Recursos 13 2.3.4. Anàlisi cost – benefici 14 2.3.5. Pressupost 14 2.3.6. Avaluació de riscos 15 2.3.7. Alternatives 15 2.4. Planificació 15 2.5. Conclusions 16 3. Capítol 3: Anàlisi de requeriments 17 3.1. Introducció 18 3.2. Paradigma de desenvolupament 18 3.3. Requeriments funcionals 19 3.4. Requeriments no funcionals 21 3.5. Descripció de casos d’ús 23 3.6. Funcions 35
WEB COL·LABORATIVA DEL BASQUET CATALÀ 5 4. Capítol 4: Disseny de l’aplicació 43 4.1. Introducció 44 4.2. Base de dades 44 4.2.1. Introducció 44 4.2.2. Model entitat – relació 45 4.3. Interfícies gràfiques 46 4.4. Diagrames de seqüència 50 5. Capítol 5: Implementació i Proves 54 5.1. Introducció 55 5.2. Eines tecnològiques 55 5.3. Proves 58 5.4. Navegadors utilitzats 59 6. Capítol 6: Conclusions 60 6.1. Introducció 61 6.2. Objectius 61 6.3. Planificació 63 6.4. Ampliacions i millores 64 6.5. Valoració final 64 7. Bibliografia 66 8. Agraïments 68
WEB COL·LABORATIVA DEL BASQUET CATALÀ 6 CAPÍTOL 1 Introducció
WEB COL·LABORATIVA DEL BASQUET CATALÀ 7 1.1. Motivacions De la mateixa manera que existeixen borses de treball com Infojobs, on les empreses poden trobar treballadors i els treballadors poden buscar feina, és necessari tenir una borsa de bàsquet a nivell català. Qui coneix el món del bàsquet sap, que per exemple, per a un jugador o un entrenador no és gens fàcil trobar un equip adequat a les seves necessitats, excepte a nivells professionals on existeixen eles representants i els contractes. De la mateixa manera, un club ha de posar massa esforços en trobar un jugador o bé un entrenador per a algun dels seus equips federats. Per tant, aquest projecte neix de la necessitat de tenir un únic punt de trobada del Bàsquet Català on els entrenadors i jugadors de bàsquet, i els clubs puguin trobar-se al moment entre ells i establir contacte per començar a coneixer les intencions de cadascuna de les parts. Fins al moment, el contacte club – entrenador o jugador (i viceversa) a Internet es fa mitjançant els fòrums enfocats al bàsquet. En ells hi trobem informació desordenada i poc clara, que sovint crea confusió i desconcert a l’usuari destí. És per aquest motiu que es vol consolidar un espai net, clar i concís on tots els usuaris que ho desitgin es puguin trobar entre ells. 1.2. Estat de l’art Actualment no existeix cap aplicació tan completa com aquesta. Si que existeixen aplicacions enfocades a entrenadors, però tenen l’inconvenient de que estan enfocades a un nivell gairebé professional. Aquestes aplicacions web són: • www.aeeb.es : Es tracta d’una borsa on els entrenadors de tot l’estat espanyol poden trobar un club on poder entrenar. • www.aceb.es: És una aplicació similar a l’anterior, amb l’única diferència de que està enfocada únicament a entrenadors federats a la Federació Catalana de Bàsquet. Com hem dit, actualment només existeix aquest servei enfocat als entranadors. El gran gruix del bàsquet, però, són els jugadors. Fins ara, l’únic recurs dels jugadors són els fòrums on, com ja hem dit, la informació no es presenta de la millor manera. Un exemple de fòrum enfocat al bàsquet a nivell català és www.fbcatala.com.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 8 1.3. Objectius Tot projecte té uns objectius fixats. Aquest projecte, però, es pot considerar una mica diferent a la resta de projectes que trobaré a la meva vida laboral doncs l’he escollit jo i, per tant, l’afronto amb moltissima il·lusió. És per aquest motiu que els objectius d’aquest projecte estan dividits en dos grups: els objectius propis de l’aplicació i els personals. • Objectius de l’aplicació: o Facilitar la comunicació entre jugadors, entrenadors i clubs de bàsquet d’àmbit català. o Reduir el temps de cerca d’equips o entrenadors/jugadors. o Consolidar-se com una eina útil. • Objectius personals: o En cas de que finalment la web sigui accessible a tothom, que aquesta aconsegueixi un cert prestigi dins de l’àmbit de basquet català. o Sentir la satisfacció d’haver assolit amb èxit la resolució d’un problema del món real dins de l’àmbit del projecte de final de carrera.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 9 CAPÍTOL 2 Estudi de viabilitat
WEB COL·LABORATIVA DEL BASQUET CATALÀ 16 2.5. Conclusions Un cop redactat l’estudi de viabilitat s’han tret les següents conclusions: - La eina pot acabar complint tots els objectius i acabar sent una realitat. - Desprès d’haver analitzat els costos i els beneficis veiem que en un principi el cost seria més elevat que el benefici. No obstant, a mesura que passa el temps el cost passaria a ser mínim (10 € l’any) i el benefici creixeria exponencialment, gràcies al prestigi i a la publicitat. És per això que es pot afirmar que aquest projecte és totalment viable.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 17 CAPÍTOL 3 Anàlisi de requeriments
WEB COL·LABORATIVA DEL BASQUET CATALÀ 18 3.1. Introducció En aquest projecte es desenvolupa una aplicació, un software que l’estudi de viabilitat ha donat com a viable i que, per tant, haurà de passar per certes fases per ser desenvolupat correctament. La primera fase és l’anàlisi de requeriments, que consisteix en analitzar el conjunt d’idees que el client té sobre què ha de ser el software a desenvolupar. Tot això és sinònim d’establir les prestacions que ha de tenir el sistema. Aquesta primera fase es divideix en dues grans tasques: la comprensió del problema i l’especificació de requeriments. Després d’haver vist la introducció ja es pot donar el problema com a entès. Per tant ara només ens centrarem en l’especificació de requeriments. Abans d’això, però, haurem d’escollir un model de desenvolupament per al projecte. 3.2. Paradigma de desenvolupament A l’hora de tirar endavant un projecte és imprescindible tenir molt clar el model de desenvolupament que es durà a terme. En aquest cas s’ha escollit el model lineal seqüencial, també conegut com cicle de vida clàssic o salt d’aigua. Les seves etapes són: Estudi de viabilitat Anàlisi de requeriments Disseny Codificació Proves Seguir aquest model té alguns inconvenients que cal tenir en compte. Per exemple, es diu que un projecte mai no és tan marcadament seqüencial, però en el nostre cas, durant les diferents reunions mantingudes durant el curs amb el tutor, s’ha seguit la seqüència pas a pas. Un altre problema que caracteritza a aquest paradigma, és la dificultat d’establir explícitament tots els requisits al principi del problema. Però en aquest projecte això no ha estat cap problema, ja que el client és la mateixa persona que desenvolupa el projecte i des d’un principi s’han tingut molt clars tots els requeriments. Finalment, l’ultim inconvenient que trobem és que el client s’ha d’esperar a veure el resultat final el dia del lliurament. Això tampoc
WEB COL·LABORATIVA DEL BASQUET CATALÀ 19 ens perjudica perquè, com hem dit anteriorment, el client té molt clar el resultat final doncs serà el desenvolupador. Com que el projecte ha avançat amb aquest model, s’han descartat altres molt més complexes com són el model evolutiu o el model de construcció de prototipus. 3.3. Requeriments funcionals Els requeriments funcionals descriuen el comportament que es desitja del software. Cada un d’ells expressa una relació entre les entrades i sortides del sistema, és a dir, especifica quines sortides s’han de produir en funció d’unes determinades entrades. Això comporta descriure el conjunt d’operacions necessàries per aconseguir-ho. A més a més, també s’ha de descriure quin comportament ha de tenir el sistema davant de situacions anormals, com per exemple errors, entrades invàlides, etc. A continuació es detallen tots i cadascun dels requeriments funcionals d’aquest projecte: 3.3.1. Alta d’usuaris Els usuaris que visitin la web han de tenir l’opció de donar-se d’alta i així poder gaudir dels avantatges que aquesta proporciona. Els jugadors i entrenadors seran registrats a la base de dades un cop hagin omplert amb èxit el formulari que se’ls demanarà. D’altra banda, els clubs hauran de fer una petició de registre via e-mail, perque així puguin ser verificats per part de l’administrador de l’aplicació, que serà qui els donarà d’alta. 3.3.2. Modificació de dades d’usuaris Tot tipus d’usuari, a excepció de l’administrador de la pàgina web, tindrà dret a modificar les seves dades, ja siguin personals o esportives. És a dir, si l’usuari és un jugador o un entrenador, podrà canviar la seva contrasenya, el seu domicili, l’equip en el que juga o entrena, etc. En el cas dels clubs, també podran modificar la seva contrasenya, l’adreça del camp de joc, el nombre d’equips federats, etc.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 20 3.3.3. Eliminació d’usuaris Si un usuari es vol donar de baixa de la base de dades ho ha de poder fer, i el seu registre ha de ser esborrat a l’instant. Totes les vinculacions del seu registre seran esborrades en el moment en que l’usuari es dona de baixa. Per exemple, si s’elimina un club, també seran esborrats tots els seus equips amb totes les conversacions que tenia obertes amb la resta d’usuaris. 3.3.4. Alta d’equips Tot club té un determinat nombre d’equips federats. Per tant, cadascun dels clubs registrats necessitarà afegir els seus equips a la base de dades. Aquest requeriment és bàsic, ja que els usuaris buscaran equips i no clubs. 3.3.5. Modificació de dades dels equips Cada temporada els equips que té un club varien. Això vol dir que poden patir modificacions. És per això que els clubs hauran de poder modificar les dades dels seus equips inscrits a la base de dades. 3.3.6. Eliminació d’equips És probable que a mitja temporada un equip es dissolgui, o que simplement, quan s’inicia una nova temporada no hi hagi prou gent per poder-lo formar. Així doncs, els clubs podran eliminar un equip sempre que ho desitgin. 3.3.7. Cerca d’equips Els jugadors i entrenadors registrats podran fer una cerca dinàmica per trobar un equip que els satisfaci. Amb la cerca dinàmica es podrà fer una exploració “a la carta” del registre d’equips de l’aplicació, podent escollir els atributs que es desitgeni els que no. L’objectiu és reduir el temps de cerca un cop obtinguts els resultats.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 21 3.3.8. Cerca de jugadors i entrenadors De la mateixa manera que els clubs, els altres perfils d’usuari restants (jugadors i entrenadors) també han de poder buscar un equip on jugar o entrenar. El mecanisme de cerca serà el mateix que el dels clubs. Això vol dir que les cerques seran dinàmiques, cosa que permetrà poder fer consultes “a la carta” a la base de dades. 3.3.9. Conversacions Cada vegada que un usuari fa una consulta per obtenir resultats s’ha de donar la possibilitat d’escollir una dels usuaris resultants (si n’hi ha) i enviar-li un missatge per establir contacte amb ell, i així proposar una oferta o fer una petició. Les conversacions quedaran enrregistrades a la base de dades, de manera que tots els usuaris tindran accés a qualsevol conversació en la que estiguin involucrats. Quan es visualitzin les conversacions també s’ha de donar la possibilitat de contestar des de la mateixa interfície, sense haver de tornar a fer la cerca. 3.3.10. Accés a l’aplicatiu Com que tots i cada un dels usuaris tindran la seva pròpia interfície amb la seva informació personal, s’haurà de fer un procés de login i logout, que estarà controlat per variables de sessió. 3.4. Requeriments no funcionals Els requeriments no funcionals són restriccions imposades pel client o pel mateix problema i que afecten al disseny. Generalment són quantificables. Aquests es divideixen en cinc subgrups: 3.4.1. Requeriments de rendiment No s’han establert requeriments de rendiment, ni estàtics ni dinàmics. Simplement, la capacitat de concurrència de l’aplicació dependrà dels recursos dels quals disposa el servidor on resideix l’aplicació.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 22 3.4.2. Restriccions de disseny Existeixen alguns factors que estan presents en l’entorn del client i que restringeixen les opcions a l’hora de dissenyar l’aplicació. Les que afecten a aquest projecte són: • Acomplir els estàndards: Per evitar problemes amb els diferents navegadors que pot utilitzar l’usuari, s’haurà de complir que tant el codi HTML com el CSS siguin validats. • Seguretat: Com que l’aplicació web estarà enllaçada amb una base de dades s’haurà de controlar els possibles atacs com el XSS o el SQL injection. 3.4.3. Requeriments sobre les interfícies externes Cadascuna de les interfícies dels diferents tipus d’usuari tindrà un menú ben clar i explícit sobre les diferents funcions que pot fer l’usuari en aquell moment. 3.4.4. Objectius de disseny L’aplicació ha de poder ser ampliable en el futur i fàcil de mantenir. A més, ha de ser intuïtiva fer facilitar el seu ús. 3.4.5. Decisions de disseny En aquest projecte es busca funcionalitat i no una estètica de disseny amb gran elaboració. Per tant no s’han establert decisions de disseny.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 23 3.5. Descripció de casos d’ús Els diagrames de casos d’ús mostren un conjunt de situacions, actors i les seves relacions. Els casos d’ús mostren un mitjà sistemàtic i intuïtiu per capturar els requeriments funcionals, centrant-se en el valor afegit per l’usuari. A més, dirigeixen tot el procés de desenvolupament d’un projecte, ja que la majoria d’activitats que formen part del desenvolupament es realitzen a partir dels casos d’ús. Finalment, cal saber que són un mecanisme per a suportar “traçabilitat” entre models. Els casos d’ús d’aquest projecte estan estructurats a diferents nivells. N’hi haurà més senzills i més complexes en funció de la funció i actors que intervinguin. El següent gràfic mostra la estructura jeràrquica:
WEB COL·LABORATIVA DEL BASQUET CATALÀ 24 Fig. 2 - Estructura jeràrquica dels casos d'ús
WEB COL·LABORATIVA DEL BASQUET CATALÀ 25 Els casos d’ús que es descriuen a continuació estan organitzats per nivells, començant pel nivell més alt i acabant pel nivell més baix. Dins de cada nivell, els casos d’ús han estat estructurats per actors. En primer lloc es mostra l’administrador, seguit del jugador, l’entrenador i, finalment, el club. 3.5.1. Interfície Principal 3.5.2. Interfície Escollir Tipus d’Usuari
WEB COL·LABORATIVA DEL BASQUET CATALÀ 32 3.5.25. Interfície Cercar Jugador 3.5.26. Interfície Cercar Entrenador Club Omplir Formulari de Cerca d'Entrenadors «uses» 3.5.27. Interfície Afegir Equip Club Omplir Formulari d'Alta d'Equips «uses» 3.5.28. Interfície Modificar Dades Equip (I)
WEB COL·LABORATIVA DEL BASQUET CATALÀ 33 3.5.29. Interfície Eliminar Registre Equip 3.5.30. Interfície de Jugador Resultats Cerca d’Equips Jugador Visualitzar Equips Resultants Enviar Missatge a Un Equip «uses» «uses» 3.5.31. Interfície d’Entrenador Resultats Cerca d’Equips Entrenador Visualitzar Equips Resultants Enviar Missatge a Un Equip «uses» «uses» 3.5.32. Interfície Resultats Cerca de Jugadors
WEB COL·LABORATIVA DEL BASQUET CATALÀ 34 3.5.33. Interfície Resultats Cerca d’Entrenadors 3.5.34. Interfície Visualitzar Conversacions Jugador amb Clubs 3.5.35. Interfície Visualitzar Conversacions Entrenador amb Clubs 3.5.36. Interfície Visualitzar Conversacions Club amb Jugadors
WEB COL·LABORATIVA DEL BASQUET CATALÀ 35 3.5.37. Interfície Visualitzar Conversacions Club amb Jugadors 3.5.38. Interfície Modificar Dades Equip (II) 3.6. Funcions A continuació es mostren amb molt més detall cadascuna de les funcions que permet l’aplicació. En primer lloc es detalla la funció de LOGIN. A continuació es mostren totes les operacions d’alta, de modificació i de baixa. Posteriorment, es detallen les diferents opcions de cerca i, finalment, es veuen les funcions relacionades amb les conversacions. LOGIN Informació Els usuaris registrats podran iniciar la seva sessió Entrada L’usuari ha d’introduir el seu nick, la contrasenya corresponent i el tipus d’usuari que és Procés Es busca a la taula USUARIS si existeix un usuaris que compleixi totes les dades d’entrada Sortida Si es compleix el procés es mostra la interfície de l’usuari. En cas contrari es mostra un missatge d’error i es prohibeix l’entrada
WEB COL·LABORATIVA DEL BASQUET CATALÀ 36 ALTA NOTÍCIA Informació L’administrador pot afegir notícies a la web Entrada Omplir el formulari d’alta de notícies, amb títol i cos de la notícia Procés Les dades d’entrada s’afegeixen a la taula de NOTÍCIES, i el nombre identificador de notícia s’autoincrementa Sortida La notícia apareix, ordenada en el temps, a l’interfície principal de l’aplicació ALTA PUBLICITAT Informació L’administrador pot afegir nova publicitat a la web Entrada Omplir el formular d’alta de publicitat Procés Les dades d’entrada s’afegeixen a la taula de PUBLICITAT, i el nombre autoidentificador de publicitat s’autoincrementa Sortida La publicitat apareix en tot moment a la part esquerra de la pantalla, podent-la clickar en qualsevol moment de la sessió ALTA JUGADOR Informació Qualsevol usuari no registrat ha de poder donar-se d’alta com a JUGADOR Entrada Omplir el formulari d’alta de jugador Procés Es verifiquen totes les dades introduides per evitar incoherències. També es verifica la contrasenya dues vegades per certificar que és correcte. S’afegeix un nou registre a les taules USUARIS i JUGADORS. A la taula USUARIS s’hi guardarà informació de registre i a JUGADORS s’emmagatzemarà tota la informació personal i esportiva. Sortida Si s’ha afegit correctament a la base de dades, es mostrarà la interfície privada del jugador, de manera que ja haurà iniciat la seva sessió
WEB COL·LABORATIVA DEL BASQUET CATALÀ 37 ALTA ENTRENADOR Informació Qualsevol usuari no registrat ha de poder donar-se d’alta com a ENTRENADOR Entrada Omplir el formulari d’alta d’entrenador Procés Es verifiquen totes les dades introduides per evitar incoherències. També es verifica la contrasenya dues vegades per certificar que és correcte. S’afegeix un nou registre a les taules USUARIS i ENTRENADORS. A la taula USUARIS s’hi guardarà informació de registre i a ENTRENADORS s’emmagatzemarà tota la informació personal i esportiva. Sortida Si s’ha afegit correctament a la base de dades, es mostrarà la interfície privada de l’entrenador, de manera que ja haurà iniciat la seva sessió ALTA CLUB Informació Qualsevol usuari no registrat ha de poder donar-se d’alta com a CLUB, sempre i quan es verifiqui la existència d’aquest club. L’Admin serà l’encarregat de donar d’alta el club si aquest ho ha sol·licitat vía mail. Entrada Omplir el formulari d’alta de club Procés Es verifiquen totes les dades introduides per evitar incoherències. També es verifica la contrasenya dues vegades per certificar que és correcte. S’afegeix un nou registre a les taules USUARIS i CLUBS. A la taula USUARIS s’hi guardarà informació de registre i a CLUBS s’emmagatzemarà tota la informació de l’entitat esportiva. Sortida Si s’ha afegit correctament a la base de dades, l’administrador veurà un missatge d’èxit de l’operació, i per tant, haurà de respondre al club vía mail per avisar de que el seu registre està llest, indicant-li les seves dades de registre, com el nick i la contrasenya per defecte.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 38 ALTA EQUIP Informació Cada club registrat té la possibilitat de donar d’alta els seus equips federats Entrada Omplir formulari d’alta d’equips Procés S’afegirà la informació d’entrada a la taula EQUIPS, que estarà relacionada amb la taula de CLUBS. Sortida Si s’ha afegit correctament, l’equip serà visible per la resta d’usuaris MODIFICAR JUGADOR Informació La situació esportiva d’un jugador pot variar. Per tant, el jugador pot modificar les seves dades esportives Entrada Omplir formulari de modificació de dades d’un jugador. Únicament s’ompliran els camps relacionats amb les dades que es volen modificar. La resta de dades es deixen en blanc. Procés Es farà una query dinàmica contra la base de dades, en funció dels camps del formulari que s’hagin omplert. Si es modifiquen dades esportives es treballarà sobre la teula JUGADORS. Si es vol canviar la contrasenya es treballarà sobre la taula USUARIS Sortida El registre es modifica a l’instant, i es tornarà a mostrar el formulari de modificació, ara amb les noves dades del jugador MODIFICAR ENTRENADOR Informació Les dades esportives d’un entrenador poden variar en qualsevol moment de la temporada (per exemple, pot haver aprovat un nou títol d’entrenador). Aquí, un entrenador pot modificar les seves dades Entrada Omplir formulari de modificació de dades d’entrenador. Únicament s’ompliran els camps relacionats amb les dades que es volen modificar. La resta es deixen en blanc Procés Query dinàmica contra la taula ENTRENADORS i, si es vol canviar la contrasenya, també contra la taula USUARIS. Sortida El registre es modifica a l’instant, i es tornarà a mostrar el formulari de modificació, ara amb les noves dades de l’entrenador
WEB COL·LABORATIVA DEL BASQUET CATALÀ 39 MODIFICAR CLUB Informació Els clubs poden canviar la seva pista de joc, per exemple. Així que poden modificar les seves dades. Entrada Omplir formulari de modificació de dades de club. Únicament s’ompliran els camps relacionats amb les dades que es volen modificar. La resta es deixen en blanc Procés Query dinàmica contra la taula CLUBS i, si es vol canviar la contrasenya, també contra la taula USUARIS. Sortida El registre es modifica a l’instant, i es tornarà a mostrar el formulari de modificació, ara amb les noves dades del club MODIFICAR EQUIP Informació La majoria de dades del club poden anar canviant al llarg de la temporada. Per exemple, el nombre de fitxes lliures pot variar, o l’objectiu de l’equip pot canviar. Entrada Omplir formulari de modificació de dades d’un equip. Únicament s’ompliran els camps relacionats amb les dades que es volen modificar. La resta de dades es deixen en blanc. Procés Es farà una query dinàmica contra la base de dades (taula EQUIPS) Sortida La nova informació serà visible a l’instant per la resta d’usuaris de l’aplicació ELIMINAR JUGADOR Informació Un jugador pot donar de baixa el seu registre Entrada Acceptar baixa definitiva Procés En primer lloc, es suprimiran totes les conversacions que tenia obertes el jugador. Posteriorment s’eliminarà el registre de la taula JUGADORS i, finalment, s’eliminarà de la taula d’USUARIS. Sortida El jugador deixa d’existir a la base de dades, i per tant, deixa de ser visible per la resta d’usuaris
WEB COL·LABORATIVA DEL BASQUET CATALÀ 40 ELIMINAR ENTRENADOR Informació Un entrenador es pot donar de baixa en qualsevol moment Entrada Acceptar baixa definitiva Procés En primer lloc, es suprimiran totes les conversacions que tenia obertes l’entrenador. Posteriorment s’eliminarà el registre de la taula ENTRENADORS i, finalment, s’eliminarà de la taula d’USUARIS. Sortida L’entrenador deixa d’existir a la base de dades, i per tant, deixa de ser visible per la resta d’usuaris ELIMINAR CLUB Informació Un club pot donar-se de baixa quan vulgui Entrada Acceptar baixa definitiva Procés En primer lloc, es suprimiran totes les conversacions que tenia obertes el club, ja sigui amb jugadors o amb entrenadors. En segon lloc, es suprimiran tots els equips que formen part d’aquell club. Posteriorment s’eliminarà el registre de la taula CLUBS i, finalment, s’eliminarà de la taula d’USUARIS. Sortida El club i els seus equips deixen d’existir a la base de dades, i per tant, deixen de ser visibles per la resta d’usuaris ELIMINAR EQUIP Informació Un club pot donar de baixa els seus equips Entrada Sel·leccionar l’equip que es vol eliminar i acceptar la seva baixa definitiva Procés S’esborra el registre de l’equip a la taula EQUIPS Sortida L’equip deixa d’existir a la base de dades, i per tant, deixa de ser visible per la resta d’usuaris CERCA DE JUGADORS Informació Un club pot buscar jugadors que compleixin el perfil que un dels seus equips necessiti Entrada Omplir formulari de cerca de jugadors. Les dades que no interessen es deixen en blanc
WEB COL·LABORATIVA DEL BASQUET CATALÀ 41 Procés Es busca a la base de dades si existeix un jugador del perfil demanat. Això és possible gràcies a les query’s dinàmiques. Si es deixen tots els camps en blanc, s’imprimiran tots els jugadors inscrits a la base de dades. Sortida Jugadors resultants. S’en pot escollir un i enviar-li un missatge privat per oferir-li una oferta CERCA D’ENTRENADORS Informació Un club pot buscar entrenadors que compleixin el perfil que s’adapti a les necessitats d’un dels seus equips Entrada Omplir formulari de cerca d’entrenadors. Les dades que no interessen es deixen en blanc Procés Es busca a la base de dades si existeix un entrenador del perfil demanat. Això és possible gràcies a les query’s dinàmiques. Si es deixen tots els camps en blanc, s’imprimiran tots els entrenadors inscrits a la base de dades. Sortida Entrenadors resultants. S’en pot escollir un i enviar-li un missatge privat per oferir-li una oferta CERCA D’EQUIPS Informació Tan els jugadors com els entrenadors podran cercar a la base de dades un equip que compleixi les seves espectatives Entrada Omplir formulari de cerca d’equips. Les dades irrellevants es deixen en blanc Procés Es busca a la base de dades els equips que coincideixen amb els paràmetres demanats. En funció dels paràmetres d’entrada, la query requerirà més o menys atributs. Si el formulari es deixa en blanc s’imprimiràn per pantalla tots els equips que en aquell moment estiguin donats d’alta a la base de dades Sortida Equips resultants. Es pot escollir qualsevol d’ells i enviar-li un missatge privat
WEB COL·LABORATIVA DEL BASQUET CATALÀ 48 • ÚLTIMS REGISTRES: Es consulten a la base de dades els cinc últims registres de cada tipus d’usuari i es mostren per pantalla. Està situat a la part inferior dreta, just a sota del bloc d’identificació. • ÚLTIMES NOTÍCIES: Es fa una consulta a la base de dades i es mostren totes les notícies (de moment totes, ja que no es preveu un nombre alt de notícies). Aquest bloc és el més visible d’aquesta interfície i ocupa la part central d’aquesta. Si el volum de notícies és gran, es genera automàticament una scrollbar només en aquest bloc. S’ordenaran per ordre d’edició. 4.3.2. Interfície Pública Estructura (Exemple: Formulari de Registre) Blocs En aquest conjunt d’interfícies no hi ha blocs definits. Aquestes interfícies són sempre formularis de registre, exceptuant la interfície prèvia als formularis, que dona l’opció d’escollir el tipus de registre que es desitja. Nom : Password FORMULARI DE REGISTRE : CERCA BÀSQUET P U B L I C I T A T En viar
WEB COL·LABORATIVA DEL BASQUET CATALÀ 49 4.3.3. Interfície Privada Estructura Blocs • Menú: Cada tipus d’usuari té un menú específic, que està situat a la part dreta de la pantalla. Des d’aquest menú es pot accedir a totes les operacions permeses segons el perfil d’usuari. Cada subapartat del menú anirà precedit per un títol que serà: DADES, MERCAT i EQUIPS (només en el cas dels clubs). • Bloc central: En aquest bloc es carrega tota la informació que requereixi la opció sel·leccionada en el menú. Si no es sel·lecciona cap opció, apareix la informació personal i esportiva de l’usuari. N ick : <nick_usuari> DADES Benvingut <usuari> CERCA BÀSQUET P U B L I C I T A T Nom : <nom_usuari> Data naixement: <data_naixement_usuari> Modificar Eliminar MERCAT - Cercar - Ofertes - LOGOUT - ÍNDEX Població: <poblacio_usuari> .. . : < ..._usuari>
WEB COL·LABORATIVA DEL BASQUET CATALÀ 50 4.4. Diagrames de Seqüència Mitjançant els diagrames de seqüecia es poden veure i analitzar detalladament els diferents mòduls que componen un programa. Si es vol ser efectiu, l’objectiu del disseny modular ha de ser trobar la independència funcinal, i això només serà possible si s’aconsegueix la màxima cohesió i un mínim acoblament. Tot això vol dir que si es prodiueix un canvi en un dels mòduls, la repercussió que tindrà sobre la resta ha de ser mínim. Seguidament es mostren i es detallen, un per un, cadascun dels diagràmes de seqüència que s’han elaborat. 4.4.1. Consulta d’Últims Registres i Notícies Descripció Aquest mòdul s’encarrega de fer consultes a la base de dades per mostrar el resultat al públic en general, és a dir, a qualsevol persona que accedeixi a la interfície principal de la pàgina. Les dues accions principals són: cercar últims usuaris registrats i mostrar últimes notícies. Diagrama de Seqüència
WEB COL·LABORATIVA DEL BASQUET CATALÀ 51 4.4.2. Identificació d’Usuaris Descripció El mòdul d’identificació d’usuari és el que verifica que un usuari està registrat quan vol entrar a la seva sessió i, posteriorment, li mostra la seva interfície privada amb tota la seva informació. Diagrama de Seqüència 4.4.3. Gestió de Dades d’Usuari Descripció Aquest mòdul té un gran abast, ja que s’exten per a qualsevol tipus d’usuari i, a més, permet fer dues operacions diferents: modificació de dades i eliminació del registre. Diagrama de Seqüència
WEB COL·LABORATIVA DEL BASQUET CATALÀ 52 4.4.4. Gestió de Conversacions Descripció El mòdul de converses s’encarrega de gestionar la comunicació entre dos usuaris que desitgin comunicar-se a través d’aquesta aplicació. En primer lloc, permet escollir a l’usuari sobre quina de les conversacions que té obertes vol treballar. Després, també s’encarrega d’enviar el missatge al destinatari o, en altres paraules, crear o actualitzar una conversació a la base de dades. Diagrama de Seqüència 4.4.5. Registre de Nous Usuaris Descripció Tots els mòduls d’aquest projecte són molt importants, però podriem dir que aquest mòdul és imprescindible, ja que és el que s’encarrega de donar d’alta nous usuaris a la base de dades. Sense usuaris a la base de dades, aquesta aplicació no té cap mena de sentit. Així doncs, aquest mòdul significa el naixement d’un nou usuari en aquest sistema. Per aconseguir-ho, només cal que l’usuari (fins al moment no registrat) ompli amb èxit un formulari d’alta, que serà diferent en funció del tipus que s’hagi escollit prèviament.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 53 Diagrama de Seqüència 4.4.6. Cerca d’Usuaris Descripció Aquest mòdul permet als usuaris de l’aplicació fer una cerca “a la carta” a la base de dades i, per tant, només extreure’n la informació que es vol. L’objectiu d’aquest mòdul és que la informació resultant sigui òptima, és a dir, que no sobri ni falti res de el que s’està cercant. Això és possible gràcies a un sistema de query’s dinàmiques que només agafa els atributs que s’han omplert en el formulari. Els paràmetres que s’han deixat en blanc els discrimina. Diagrama de Seqüència
WEB COL·LABORATIVA DEL BASQUET CATALÀ 54 CAPÍTOL 5 Implementació i proves
WEB COL·LABORATIVA DEL BASQUET CATALÀ 55 5.1. Introducció Ara que hem arribat a aquest punt, ja tenim molt clars els requeriments de l’aplicació i el disseny que ha de tenir. Així doncs, només falta posar-se a treballar i verificar el resultat d’aquest treball. Encetarem amb un recull de les eines que es faran servir per a la implementació del software, revisarem l’esquema de proves a fer per assegurar el funcionament i llistarem el conjunt de navegadors on s’han realitzat aquestes proves. 5.2. Eines tecnològiques Aquest projecte ha estat implementat amb les eines que es detallen a continuació. 5.2.1. XHTML És acrònim de eXtension HyperText Markup Language, i com el seu nom indica és una extensió del popular HTML, però amb l’estil i les normes de XML. El seu objectiu és separar totalment el contingut de la pàgina web de la manera de presentar-lo, deixant el disseny a altres eines com el CSS o els scripts de JavaScript. Aquest procés de separació es coneix com a web semàntica, i està recolzat per el World Wide Web Consortium (W3C). Aquest llenguatge s’ha fet servir bàsicament per fer una primera versió de la web, la versió estàtica. Amb aquest llenguatge es separen els blocs de cada interície, es construeixen els formularis i els menús, etc. 5.2.2. CSS És acrònim de Cascading Style Sheets o, en català, fulls d’estil en cascada. Aquest llenguatge permet descriure l’estil d’un document XHTML en un full a part, sense necessitat d’incloure el codi juntament amb el codi HTML. A més, el gran avantatge que tenen els fulls d’estil és que permeten estaliviar una gran quantitat de codi, ja que l’estil es defineix per etiquetes, cosa que voldrà dir que l’estil definit per a una etiqueta serà vàlid per a totes les que tinguin el mateix nom. A més, s’aplica la propietat de
WEB COL·LABORATIVA DEL BASQUET CATALÀ 56 cascada i, per tant, totes les etiquetes filles d’una etiqueta tindràn el mateix estil que la seva mare. No obstant, com ja s’ha comentat en altres capítols, aquest projecte prioritza la funcionalitat i no dona tanta importància a l’estil. 5.2.3. JavaScript Es tracta d’un llenguatge de programació interpretat, és a dir, que no requereix la compilació prèvia a l’execució. Aquesta execució té lloc en el navegador del client. La seva sintaxi és semblant a la del llenguatge Java i al llenguatge C, cosa que fa que sigui una eina molt fàcil d’utilitzar. Normalment, aquest llenguatge s’utilitza per verificar la coherència de les dades que un usuari introdueix en un formulari, mitjançant les expresions regulars. En aquest projecte, JavaScript també ens serveix per implementar la funció d’AJAX. 5.2.4. AJAX AJAX és una tecnologia que utilitza JavaScript i comunicació asíncrona amb el servidor web. AJAX en realitat és la unió de 4 tecnologies XHTML i CSS per a la presentació, DOM per a la interacció i manipulació de la presentació, XML, XSLT i JSON per a la manipulació de la informació i per últim d’objecte XMLHttpRequest per a l’intercanvi asíncron de la informació. Com hem dit, per a la comunicació asíncrona amb el servidor utilitzarem XMLHttpRequest, que és un objecte JavaScript inclòs a tots els navegadors moderns (Firefox, Safari, Opera, IE7). Els mètodes d’aquest objecte permeten comunicar-nos amb el servidor, demanar-li dades i recuperar-les de manera síncrona o asíncrona. Tot això sense necessitat de recarregar la pàgina. 5.2.5. Apache L’Apache HTTP Server és un servidor web de lliure distribució i de codi obert, que ha estat desenvolupat per una comunitat oberta de programadors.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 57 L’aplicació permet executar-se en múltiples sistemes operatius i té molt bona integració amb PHP i MySQL. És robust, amb una altíssima quota de mercat en l’àmbit dels serivors web. 5.2.6. MySQL Probablement, MySQL és el gestor de base de dades més utilitzat en el món del software lliure (té llicència GNU GPL). Això és degut a la seva rapidesa i senzillesa, però sobretot al seu disseny que permet suportar una gran càrrega d’una manera molt eficient. És un sistema molt fàcil d’instal·lar i configurar, i té un gran nombre de llibreries i altres eines que permeten el seu ús mitjançant una gran quantitat de llenguatges de programació. 5.2.7. PHP És un llenguatge de programació que permet donar dinamisme a les pàgines web. El codi PHP, a diferència del XHTML, s’executa en el mateix servidor i, per tant, el client només rep el resultat que ha generat el codi després de ser executat. Aquest llenguatge, quan s’està programant la pàgina web, es combina amb el XHTML i amb les funcions de MySQL. Ha estat escollit per què és gratuït, de domini públic, i es troba en constant evolució i revisió per part de la comunitat informàtica. 5.2.8. PHPMyAdmin És una eina que permet administrar la base de dades MySQL mitjançant pàgines web, fent servir Internet. De la mateixa manera que la majoria d’eines utilitzades, també fa servir llicència GPL. Està disponible en 50 idiomes i permet fer un gran nombre d’operacions contra la base de dades. A més, permet exportar les dades, de manera que es poden anar fent còpies de seguretat quan es vulgui. D’aquesta manera s’aconsegueix més fiabilitat en el sistema que dissenyem.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 64 7.4. Ampliacions i Millores Després d’haver acabat aquest projecte crec que s’hi podrien afegir algunes funcionalitats o que es podrien modificar certes coses. Seguidement s’expliquen totes elles: • Nou disseny gràfic: Durant tot el projecte s’ha dit que es prioritzava la funcionalitat per davant del disseny de l’entorn. Doncs bé, ara es podria fer un entorn gràfic que estigues a l’alçada dels websites més actuals. • Versió adaptada a cada comunitat autònoma: Fins ara, aquesta aplicació només està enfocada al bàsquet d’àmbit català. Es podria fer una versió diferent per a cada comunitat autònoma que ho desitgi. A la resta d’Espanya, però, la cultura del bàsquet no està tan arrelada com aquí a Catalunya, de manera que l’aplicació podria no popularitzar-se i, per tant, no es complirien alguns dels objectius d’aquest projecte. • Conversacions instantànies: Actualment, les conversacions de l’aplicació no són instantànies. En cas de fer una nova versió de l’aplicatiu es podria fer que les converses fossin instantànies, de la mateixa manera que els xats. • Més funcionalitats als entrenadors: De vegades no és el club qui fitxa a jugadors, sinó que és l’entrenador qui ho fa. Per satisfer aquest tipus de casos caldria que la comunicació entre entrenadors i jugadors fos possible. Fins al moment no ho és. 7.5. Valoració Personal Per mi, el balanç es positiu doncs penso que he complert tots els objectius que m’havia marcat. La feina feta regularment durant tot el projecte, fruit de les constants reunions amb el tutor, crec que m’ha permes tenir les coses molt més clares abans d’afrontar l’etapa final del projecte. També m’ha ajudat molt tot el que he apres durant la carrera i que he hagut d’aplicar aquí.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 65 La temàtica d’aquest projecte és probablement el que m’ha ajudat a tirar endavant, ja que com a jugador federat de bàsquet sé que aquesta eina donarà solució a moltissimes persones, cosa que m’ha motivat a no aturar-me mentre en feia el desenvolupament. És cert que el desenvolupament d’aquest projecte ha estat dur, sobretot a la recta final, però ara veig que totes les hores dedicades han valgut la pena. Totes les coses a les que he renunciat, les tardes tancat a casa, les nits llargues, la son acumulada per poder realitzar aquest projecte fan que ara pugui tancar amb èxit aquesta ùltima prova.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 66 Bibliografia • Llibres: o Zakas, Nicolas C. Ajax. s.l. : Ed. desconeguda. o -. Cascading Style Sheets. s.l. : Ed. desconeguda. o Collison, Simon. Beginning CSS web development. s.l. : Ed. desconeguda. o World Wide Web Consortium. Guías breves de tecnologías W3C. s.l. : Oficina de W3C en España, 2005. • Apunts i tutorials: o EUI. 2008. Apunts de Metodologia i Gestió de Projectes. s.l. : UAB, 2008. o EUI. 2008. Apunts d’Enginyeria del Software I. s.l. : UAB, 2008. o EUI. 2008. Apunts de Bases de Dades. s.l. : UAB, 2008. o EUI. 2008. Tutorial de XHTML i CSS de Xarxes. s.l. : UAB, 2008. o EUI. 2008. Tutorial de PHP i MySQL de Xarxes. s.l. : UAB, 2008. • Enllaços web: o W3schools, http://www.w3schools.com/, 2009. S’hi pot trobar informació relacionada amb tots els llenguatges de programació que s’han utilitzat en el projecte. o ¡Prueba tus Expresiones Regulares!, http://www.metriplica.com/4_4_herramientas.asp, 2009. Eina per provar el correcte funcionament de les espressions regulars implementades amb JavaScript. o Online Regular Expression Tester, http://www.regularexpressions.info/javascriptexample.html, 2009. Una altra eina per provar el correcte funcionament de les espressions regulars implementades amb JavaScript.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 67 • Relació de figures: 1. Taula de planificació inicial .................................................................. 15 2. Estructura jeràrquica dels casos d’ús .................................................. 24 3. Model relacional de dades ................................................................... 45 4. Taula de planificació real ..................................................................... 63
WEB COL·LABORATIVA DEL BASQUET CATALÀ 68 Agraïments A la meva família per haver-me fet veure, des de ben petit, la importància dels estudis. Als amics que, en algun moment puntual, m’han fet veure que no anava per el bon camí. Als companys de la EUIS que en algun moment m’han donat un cop de mà que m’ha ajudat a tirar endavant. A la Jeni, que tot i no haver-me ajudat gaire en aquest projecte, m’ha ajudat a centrarme. Gràcies a ella ara estic apunt de culminar la meva vida com a estudiant. Als professors que m’ha ensenyat tots els coneixements que em serviran a partir d’ara. Al Rafa Fernàndez, el director del meu projecte, que m’ha guiat fins aquí i sempre ha confiat en que acabaria a temps la feina. A tots ells els hi dono les gràcies.
WEB COL·LABORATIVA DEL BASQUET CATALÀ 69 Albert Farràs Canals Juny de 2009