GDEX

Noms: Anna Serrano,
Yaiza Melero,
Héctor Vico,
Mario Olaya
Any: 2025
Curs: DAM2M

1. PROPOSTES D’IDEES DEL PROJECTE

1.1. IDEA 1 (preferent): Biblioteca de Videojocs

1.1.1. Objectiu de l’app i quines necessitats resol

El nostre objectiu amb aquesta app, és fer un llistat de videojocs dividit entre les seves diferents categories (Acció, aventura, simulació, estratègia…), on els usuaris puguin afegir al seu perfil els jocs dividint-los en diferents apartats d’estat: Re-Jugat, Acabat, Jugant, Pendent o Rebutjat. I a més d’afegir-los al seu perfil, ho puguin afegir amb una qualificació del que els ha semblat el joc i afegir un comentari destinat a la comunitat.

Amb això el que volem aconseguir és, que els jugadors puguin tenir un seguiment dels videojocs que tenen pendents o acabats, que tinguin una opció eficaç per portar una organització i que a la vegada fomenti la socialització dels usuaris mitjançant un sistema que els permeti compartir les seves experiències i opinions amb la resta de jugadors.

1.1.2. Estudi de mercat

Al mercat d’aplicacions ja existeixen diverses opcions similars a la nostra app, però amb temàtiques diferents. Per exemple, MyAnimeList o AnimePlanet són aplicacions amb característiques similars, però centrades en anime i manga, així com GoodReads i TheStoryGraph on podem trobar el mateix concepte aplicat a llibres.

Table 1. Logo de MyAnimeList i de GoodReads.
myanimelist
goodreads

L’objectiu de la nostra aplicació és portar aquest concepte al món dels videojocs, ja que per a aquesta temàtica no existeix cap aplicació globalitzada de qualitat. A més en altres aplicacions amb aquest concepte es fomenta molt la socialització, i amb el cas dels videojocs això pot ser molt beneficiós perquè pot permetre no tan sols que les persones trobin més gent amb qui comparteixen gustos sinó que també podran trobar companys amb qui jugar unes partides als videojocs que ho permetin.

1.1.3. Target

La nostra aplicació està pensada per a un públic de totes les edats amb la motivació de compartir amb altres persones allò que gaudeixen, els videojocs. També pot estar orientada a persones que simplement volen portar un registre d’aquells videojocs que vol jugar o que ja ha jugat. Tot i que no hi ha gaires restriccions d’ús, l’aplicació només està disponible en tres idiomes, català, castellà i anglès i per usuaris d’Android.

1.1.4. Explicació dels termes "Categoria" i "Ítem"

En el cas de la nostra aplicació i entenent el terme “Categoria” com a un diferencial entre els ítems amb l’única finalitat de poder-los agrupar per a un filtratge previ o per a una fàcil navegació per l’aplicació. L’identifiquem com “els tipus de videojoc”, com ja hem esmentat, un videojoc pot ser d’aventures, d’acció, de simulació, etc.

En el cas d'"Item", per nosaltres és l’especificació d’un videojoc per exemple si la categoria és “Simulació”, trobaríem ítems com per exemple "Sims 4" o "Sims 3".

Per tal de deixar més clara la relació entre ambdós, cada videojoc (ítem), pot pertànyer a un tipus de videojoc (categoria), i les categories poden tenir cap, un o més videojocs.

1.1.5. Exemple de processos de negoci

En el cas de la nostra proposta d’aplicació, alguns exemples de processos de negoci que podem justificar des del principi, són els següents:

Primer de tot, qualsevol usuari pot afegir videojocs nous a la pàgina, això podria desencadenar en els usuaris creant jocs repetits, que vulnerin la legalitat o la llibertat d’altres persones, etc., per a combatre això hem decidit implementar un sistema on hi ha un administrador que valida els videojocs manualment.

La segona proposta de procés de negoci és que a l’hora de què un usuari vulgui afegir una puntuació/valoració al joc, haurà de primer haver afegit el joc a la seva biblioteca personal i haver-lo guardat com “Acabat”, així evitarem que qualsevol usuari que encara no hagi jugat ni acabar un videojoc pugui afegir una puntuació per a obtenir una mitjana de valoració més realista.

2. ESPECIFICACIÓ DE REQUISITS

2.1. Requisits no funcionals

Requisits Tècnics part frontend Mobile

  • (RN01) L’aplicació s’ha de desenvolupar utilitzant l’IDE Android Studio, implementant el llenguatge Kotlin per crear una aplicació nativa compatible amb dispositius Android.

  • (RN02) L’aplicació ha de tenir l’arquitectura MVVM (Model-View-ViewModel) i el ViewModel ha de gestionar l’estat de l’aplicació amb MutableStateFlow i StateFlow.

  • (RN03) S’ha d’utilitzar Jetpack Compose per implementar la interfície gràfica.

  • (RN07) S’ha d’utilitzar el git/gitlab per implementar el projecte en equip de forma òptima i adient.

  • (RN08) S’han de fer servir les següents branques: main/master, developer i branques per features, bugfix, etc.

  • (RN09) Tots els merges de funcionalitats s’han de fer per merge-request a developer.

  • (RN10) Les branques fusionades s’eliminen després del merge-request.

Requisits d’Interfície (UI/UX, Accessibilitat) frontend Mobile

  • (RN11) L’app ha d’estar en català, castellà i anglès.

  • (RN12) La interfície de l’usuari ha de complir amb les directrius de disseny Material Design. El disseny visual ha de ser atractiu amb coherència de colors, fonts, icones, bona distribució i agrupació de components. Mateix disseny per totes les pantalles.

  • (RN13) Responsive: En cas de variar la grandària de la pantalla del mòbil (no cal per tablet), s’ha d’adaptar el contingut de forma proporcionada.

  • (RN14) Usabilitat (UX): Interfície amigable, efectiva, intuïtiva i eficient. No pot haver-hi passos innecessaris entre el que vols fer i com fer-ho. Ha de quedar molt clar què es pot fer. També cal que tingui coherència amb les funcionalitats disponibles i no disponibles en cada moment.

  • (RN15) App accessible: Els elements interactius han de tenir etiquetes descriptives per facilitar-ne l’ús.

  • (RN16) S’ha d’utilitzar el menú Bottom Navigation per a la navegació a les funcionalitats principals.

Requisits operatius frontend Mobile

  • (RN17) L’app s’ha de poder executar en qualsevol emulador o dispositiu mòbil amb sistema operatiu Android.

  • (RN18) Fluïdesa: L’app ha de respondre a les entrades de l’usuari en tot moment. Això vol dir que en cap cas pot quedar “congelada” mentre realitza qualsevol operació.

  • (RN19) Gestió d’excepcions: Totes les possibles situacions excepcionals han de quedar gestionades de forma correcta i proporcionar missatges d’errors descriptius i útils per a l’usuari quan falli.

  • (RN20) El codi ha de ser optimitzat, eficient i sense redundàncies.

  • (RN21) S’han d’utilitzar les classes, interfícies i mètodes i packages de forma òptima i adient.

  • (RN22) Qualsevol entrada per teclat per part de l’usuari ha de validar-se i filtrar-se per garantir que les dades recollides siguin correctes, coherents i segures.

  • (RN23) Totes les capçaleres de mètodes i classes han d’estar degudament comentades en format JavaDOC en el frontend i backend.

  • (RN24) Els logs han d’estar disponibles per al monitoratge i depuració.

  • (RN25) L’aplicació ha de garantir que només els usuaris amb els permisos adequats puguin accedir a determinades funcionalitats.

  • (RN26) La capa presentació ha d’estar ubicada en el frontend Mobile.

  • (RN27) La comunicació entre el frontend Mobile i el backend s’ha de portar a terme mitjançant els principis REST.

  • (RN28) L’administrador pot fer totes les funcionalitats.

Requisits backend

  • (RN40) Les capes de servei, lógica de negoci i de persistència han d’estar ubicades al backend.

  • (RN42) El backend s’ha d’implementar mitjançant SpringBoot.

2.2. Requisits funcionals

  • (RF01) Login Usuari: L’usuari ha de poder iniciar sessió a l’aplicació amb el seu correu electrònic i contrasenya i sempre que estigui activat.

  • (RF02) Registre Usuari: L’usuari ha de poder registrar-se per poder utilitzar l’app. Un nou client enregistrat, per defecte està en estat desactivat.

  • (RF45) Registre d’administrador: Els administradors podran registrar nous administradors al sistema, afegint tota la informació necessària. (Afegida)

  • (RF03) Recuperar contrasenya: L’usuari ha de poder recuperar la contrasenya en cas d’oblit.

  • (RF04) Editar perfil usuari: L’usuari ha de poder modificar les dades del seu perfil, inclosa la seva foto.

  • (RF48) Consultar perfil d’usuari: Cada usuari podrà consultar el seu perfil d’usuari. (Afegida)

  • (RF05) Logout: L’usuari ha de poder tancar la sessió de manera segura.

  • (RF06) Validar Usuaris: L’administrador ha de poder canviar l’estat (activat o desactivat) dels usuaris enregistrats.

  • (RF07) Eliminar usuari: L’administrador ha de poder eliminar un usuari.

  • (RF08) Llistar usuaris: Tots els usuaris han de poder llistar tots els usuaris. (modificada)

  • (RF09) Modificar usuaris: L’administrador ha de poder modificar un usuari.

  • (RF44) Filtre d’usuaris: Tots els usuaris podran filtrar el llistat d’usuaris per nom d’usuari. (Afegida)

  • (RF46) Consultar usuari: Tots els usuaris podran consultar/visualitzar el perfil de la resta d’usuaris, per veure la seva activitat de videojocs. (Afegida)

  • (RF10) Crear categoria: Crear un nou tipus. Només l’usuari administrador ha de poder crear un nou tipus de videojoc que contingui com a mínim un nom, una imatge i una descripció.

  • (RF11) Llistar categories: Llistar tipus de videojocs. L’usuari ha de poder veure una llista de tots els tipus existents.

  • (RF12) Filtrar per categoria: L’usuari ha de poder cercar tipus pel seu nom i veure els resultats ordenats alfabèticament.

  • (RF13) Consultar categoria: Ampliar informació dels tipus de videojocs. L’usuari ha de poder seleccionar un tipus de videojoc i veure tota la informació associada (nom, imatge i descripció).

  • (RF14) Modificar categoria: Modificar tipus de videojoc. Només l’usuari administrador ha de poder modificar el nom, la imatge i la descripció de qualsevol tipus.

  • (RF15) Eliminar categoria: Eliminar tipus de videojoc. Només l’usuari administrador ha de poder eliminar un tipus de videojoc, sempre que no tingui ítems associats.

  • (RF16) Filtrar Videojocs per Categories: L’usuari ha de poder veure només els videojocs que pertanyen a un tipus seleccionat.

  • (RF20) Afegir videojoc: L’usuari ha de poder crear un nou videojoc que contingui, com a mínim, una imatge, títol, descripció curta, data de creació, autor i categoria. El joc haurà de ser validat per un administrador.

  • (RF21) Llistar videojocs: L’usuari ha de poder veure una llista de tots els videojocs existents, mostrant-ne la imatge i títol, amb un botó per ampliar informació.

  • (RF22) Filtrar videojocs: L’usuari ha de poder filtrar els ítems basant-se en qualsevol dels camps disponibles dels ítems (com el títol, l’autor, o la data de creació, entre d’altres).

  • (RF23) Ordenar llistat de videojocs: Ordenar videojocs per camps. L’usuari ha de poder ordenar la llista dels videojocs segons qualsevol camp disponible, com el títol, la data de creació o l’autor.

  • (RF24) Consultar videojoc: Visualitzar la informació del videojoc. L’usuari ha de poder veure tots els detalls d’un videojoc seleccionat (títol, imatge, descripció, autor, data de creació).

  • (RF25) Modificar videojoc: L’administrador, ha de poder modificar-ne la informació d’un videojoc, excepte l’autor, la data de creació, les valoracions i els comentaris. (Modificada)

  • (RF26) Eliminar videojoc: L’administrador, han de poder eliminar un videojoc. (Modificada)

  • (RF40) Validar proposta de videojocs: L’administrador ha de validar les propostes de videojocs creades pels usuaris i acceptar o rebutjar-les. (Afegida)

  • (RF41) Afegir videojoc a biblioteca personal: Tots els usuaris podran afegir jocs existents a la seva biblioteca personal, seleccionant l’estat en el qual es troba el joc (jugat, jugant, etc.). (Afegida)

  • (RF42) Modificar videojoc a la biblioteca personal: Tots els usuaris podran modificar l’estat dels jocs a la seva biblioteca personal. (Afegida)

  • (RF43) Eliminar videojoc de la biblioteca personal: Tots els usuaris podran eliminar un videojoc que de la seva biblioteca personal. (Afegida)

  • (RF47) Consultar biblioteca personal: Cada usuari podrà consultar la seva biblioteca personal. (Afegida)

  • (RF30) Afegir comentaris: Crear nou comentari d’un videojoc. L’usuari ha de poder crear un nou comentari que contingui, com a mínim una descripció curta, una puntuació, data de creació, autor.

  • (RF31) Llistar comentaris (per data de creació): Llistar comentaris d’un videojoc ordenats per data de creació. L’usuari ha de poder veure una llista de tots els comentaris existents d’un videojoc, mostrant-ne com a mínim la descripció, la puntuació, la data de creació i l’autor.

  • (RF32) Llistar comentaris (per puntuació): Llistar comentaris d’un videojoc ordenats per puntuació. L’usuari ha de poder veure una llista de tots els comentaris existents d’un videojoc, mostrant-ne com a mínim la descripció, la puntuació, la data de creació i l’autor.

  • (RF33) Visualitzar puntuació mitjana: Visualitzar puntuació mitjana dels comentaris d’un videojoc.

  • (RF34) Eliminar comentaris: Només l’administrador, han de poder eliminar.

3. GUIÓ D’ACTORS

3.1. Guió de client

Actor Client

Descripció

És l’usuari que accedeix al sistema per registrar-se, gestionar el seu perfil, i per cercar videojocs i categories.

Guió

(RF01) Login Usuari: L’usuari ha de poder iniciar sessió a l’aplicació amb el seu correu electrònic i contrasenya i sempre que estigui activat.

(RF02) Registre Usuari: L’usuari ha de poder registrar-se per poder utilitzar l’app. Un nou usuari enregistrat, per defecte està en estat desactivat.

(RF03) Recuperar contrasenya: L’usuari ha de poder recuperar la contrasenya en cas d’oblit.

(RF04) Editar perfil usuari: L’usuari ha de poder modificar les dades del seu perfil, inclosa la seva foto.

(RF48) Consultar perfil d’usuari: Cada usuari podrà consultar el seu perfil d’usuari. (Afegida)

(RF05) Logout: L’usuari ha de poder tancar la sessió de manera segura.

(RF08) Llistar usuaris: Tots els usuaris han de poder llistar tots els usuaris. (modificada)

(RF44) Filtre d’usuaris: Tots els usuaris podran filtrar el llistat d’usuaris per nom d’usuari. (Afegida)

(RF46) Consultar usuaris: Tots els usuaris podran consultar/visualitzar el perfil de la resta d’usuaris, per veure la seva activitat de videojocs. (Afegida)

(RF11) Llistar categories: Llistar tipus de videojocs. L’usuari ha de poder veure una llista de tots els tipus existents.

(RF12) Filtrar per categoria: L’usuari ha de poder cercar tipus pel seu nom i veure els resultats ordenats alfabèticament.

(RF13) Consultar categoria: Ampliar informació dels tipus de videojocs. L’usuari ha de poder seleccionar un tipus de videojoc i veure tota la informació associada (nom, imatge i descripció).

(RF16) Filtrar Videojocs per Categories: L’usuari ha de poder veure només els videojocs que pertanyen a un tipus seleccionat.

(RF20) Afegir videojoc: L’usuari ha de poder crear un nou videojoc que contingui, com a mínim, una imatge, títol, descripció curta, data de creació, autor i categoria. El joc haurà de ser validat per un administrador.

(RF21) Llistar videojocs: L’usuari ha de poder veure una llista de tots els videojocs existents, mostrant-ne la imatge i títol, amb un botó per ampliar informació.

(RF22) Filtrar videojocs: L’usuari ha de poder filtrar els ítems basant-se en qualsevol dels camps disponibles dels ítems (com el títol, l’autor, o la data de creació, entre d’altres).

(RF23) Ordenar llistat de videojocs: Ordenar videojocs per camps. L’usuari ha de poder ordenar la llista dels videojocs segons qualsevol camp disponible, com el títol, la data de creació o l’autor.

(RF24) Consultar videojoc: Visualitzar la informació del videojoc. L’usuari ha de poder veure tots els detalls d’un videojoc seleccionat (títol, imatge, descripció, autor, data de creació).

(RF40) Validar proposta de videojocs: L’administrador ha de validar les propostes de videojocs creades pels usuaris i acceptar o rebutjar-les. (Afegida)

(RF41) Afegir videojoc a biblioteca personal: Tots els usuaris podran afegir jocs existents a la seva biblioteca personal, seleccionant l’estat en el qual es troba el joc (jugat, jugant, etc.). (Afegida)

(RF42) Modificar videojoc a la biblioteca personal: Tots els usuaris podran modificar l’estat dels jocs a la seva biblioteca personal. (Afegida)

(RF43) Eliminar videojoc de la biblioteca personal: Tots els usuaris podran eliminar un videojoc que de la seva biblioteca personal. (Afegida)

(RF47) Consultar biblioteca personal: Cada usuari podrà consultar la seva biblioteca personal. (Afegida)

(RF30) Afegir comentaris: Crear nou comentari d’un videojoc. L’usuari ha de poder crear un nou comentari que contingui, com a mínim una descripció curta, una puntuació, data de creació, autor.

(RF31) Llistar comentaris (per data de creació): Llistar comentaris d’un videojoc ordenats per data de creació. L’usuari ha de poder veure una llista de tots els comentaris existents d’un videojoc, mostrant-ne com a mínim la descripció, la puntuació, la data de creació i l’autor.

(RF32) Llistar comentaris (per puntuació): Llistar comentaris d’un videojoc ordenats per puntuació. L’usuari ha de poder veure una llista de tots els comentaris existents d’un videojoc, mostrant-ne com a mínim la descripció, la puntuació, la data de creació i l’autor.

(RF33) Visualitzar puntuació mitjana: Visualitzar puntuació mitjana dels comentaris d’un videojoc.

(RF44) Filtre d’usuaris: Tots els usuaris podran filtrar el llistat d’usuaris per nom d’usuari.

(RF46) Consultar usuaris: Tots els usuaris podran consultar/visualitzar el perfil de la resta d’usuaris, per veure la seva activitat de videojocs.

3.2. Guió d’Administrador

Actor Administrador

Descripció

És l’usuari amb accés total al sistema per a afegir o eliminar informació, validar nova informació, i validar a usuaris. A més té accés a les funcionalitats “generals” de l’aplicació com qualsevol altre usuari.

Guió

(RF01) Login Usuari: L’usuari ha de poder iniciar sessió a l’aplicació amb el seu correu electrònic i contrasenya i sempre que estigui activat.

(RF02) Registre Usuari: L’usuari ha de poder registrar-se per poder utilitzar l’app. Un nou client enregistrat, per defecte està en estat desactivat.

(RF45) Registre d’administrador: Els administradors podran registrar nous administradors al sistema, afegint tota la informació necessària. (Afegida)

(RF03) Recuperar contrasenya: L’usuari ha de poder recuperar la contrasenya en cas d’oblit.

(RF04) Editar perfil usuari: L’usuari ha de poder modificar les dades del seu perfil, inclosa la seva foto.

(RF48) Consultar perfil d’usuari: Cada usuari podrà consultar el seu perfil d’usuari. (Afegida)

(RF05) Logout: L’usuari ha de poder tancar la sessió de manera segura.

(RF06) Validar Usuaris: L’administrador ha de poder canviar l’estat (activat o desactivat) dels usuaris enregistrats.

(RF07) Eliminar usuari: L’administrador ha de poder eliminar un usuari.

(RF08) Llistar usuaris: Tots els usuaris han de poder llistar tots els usuaris. (modificada)

(RF09) Modificar usuaris: L’administrador ha de poder modificar un usuari.

(RF44) Filtre d’usuaris: Tots els usuaris podran filtrar el llistat d’usuaris per nom d’usuari. (Afegida)

(RF46) Consultar usuaris: Tots els usuaris podran consultar/visualitzar el perfil de la resta d’usuaris, per veure la seva activitat de videojocs. (Afegida)

(RF10) Crear categoria: Crear un nou tipus. Només l’usuari administrador ha de poder crear un nou tipus de videojoc que contingui com a mínim un nom, una imatge i una descripció.

(RF11) Llistar categories: Llistar tipus de videojocs. L’usuari ha de poder veure una llista de tots els tipus existents.

(RF12) Filtrar per categoria: L’usuari ha de poder cercar tipus pel seu nom i veure els resultats ordenats alfabèticament.

(RF13) Consultar categoria: Ampliar informació dels tipus de videojocs. L’usuari ha de poder seleccionar un tipus de videojoc i veure tota la informació associada (nom, imatge i descripció).

(RF14) Modificar categoria: Modificar tipus de videojoc. Només l’usuari administrador ha de poder modificar el nom, la imatge i la descripció de qualsevol tipus.

(RF15) Eliminar categoria: Eliminar tipus de videojoc. Només l’usuari administrador ha de poder eliminar un tipus de videojoc, sempre que no tingui ítems associats.

(RF16) Filtrar Videojocs per Categories: L’usuari ha de poder veure només els videojocs que pertanyen a un tipus seleccionat.

(RF20) Afegir videojoc: L’usuari ha de poder crear un nou videojoc que contingui, com a mínim, una imatge, títol, descripció curta, data de creació, autor i categoria. El joc haurà de ser validat per un administrador.

(RF21) Llistar videojocs: L’usuari ha de poder veure una llista de tots els videojocs existents, mostrant-ne la imatge i títol, amb un botó per ampliar informació.

(RF22) Filtrar videojocs: L’usuari ha de poder filtrar els ítems basant-se en qualsevol dels camps disponibles dels ítems (com el títol, l’autor, o la data de creació, entre d’altres).

(RF23) Ordenar llistat de videojocs: Ordenar videojocs per camps. L’usuari ha de poder ordenar la llista dels videojocs segons qualsevol camp disponible, com el títol, la data de creació o l’autor.

(RF24) Consultar videojoc: Visualitzar la informació del videojoc. L’usuari ha de poder veure tots els detalls d’un videojoc seleccionat (títol, imatge, descripció, autor, data de creació).

(RF25) Modificar videojoc: L’administrador, ha de poder modificar-ne la informació d’un videojoc, excepte l’autor, la data de creació, les valoracions i els comentaris. (Modificada)

(RF26) Eliminar videojoc: L’administrador, han de poder eliminar un videojoc. (Modificada)

(RF40) Validar proposta de videojocs: L’administrador ha de validar les propostes de videojocs creades pels usuaris i acceptar o rebutjar-les. (Afegida)

(RF41) Afegir videojoc a biblioteca personal: Tots els usuaris podran afegir jocs existents a la seva biblioteca personal, seleccionant l’estat en el qual es troba el joc (jugat, jugant, etc.). (Afegida)

(RF42) Modificar videojoc a la biblioteca personal: Tots els usuaris podran modificar l’estat dels jocs a la seva biblioteca personal. (Afegida)

(RF43) Eliminar videojoc de la biblioteca personal: Tots els usuaris podran eliminar un videojoc que de la seva biblioteca personal. (Afegida)

(RF47) Consultar biblioteca personal: Cada usuari podrà consultar la seva biblioteca personal. (Afegida)

(RF30) Afegir comentaris: Crear nou comentari d’un videojoc. L’usuari ha de poder crear un nou comentari que contingui, com a mínim una descripció curta, una puntuació, data de creació, autor.

(RF31) Llistar comentaris (per data de creació): Llistar comentaris d’un videojoc ordenats per data de creació. L’usuari ha de poder veure una llista de tots els comentaris existents d’un videojoc, mostrant-ne com a mínim la descripció, la puntuació, la data de creació i l’autor.

(RF32) Llistar comentaris (per puntuació): Llistar comentaris d’un videojoc ordenats per puntuació. L’usuari ha de poder veure una llista de tots els comentaris existents d’un videojoc, mostrant-ne com a mínim la descripció, la puntuació, la data de creació i l’autor.

(RF33) Visualitzar puntuació mitjana: Visualitzar puntuació mitjana dels comentaris d’un videojoc.

(RF34) Eliminar comentaris: Només l’administrador, han de poder eliminar.

4. DIAGRAMES

4.2. Diagrama entitat-relació

DiagramaER

4.3. Diagrama d’arquitectura

Per a l’arquitectura d’aquest projecte, el nostre grup proposa una divisió de dues parts, el front-end per la part d’Android i el back-end per la part de Java.

DiagramaArquitectura

4.3.1. Back end

BACK END (Java Spring Boot)

GameDex_Backend

  • lògica

  • repositori

  • entitats

  • apiController

Pel que fa el back-end hem decidit crear quatre packages, 3 que ja hem fet servir per a altres projectes que són: “entitats” (per als fitxers de classes), el de “repositori” (per a les operacions intermèdies entre la base de dades i la nostra aplicació Spring Boot) i el de “lògica” (per a la lògica de negoci). El nou package que incorporem és el d’apiController, on es gestionen les operacions API REST.

4.3.2 Front end

FRONT END (Android MVVM + Feature Layer)
GameDex_Frontend

  • Feature layer (px. pantallaLogin)

    • View → Interfície usuari

    • ViewModel → Lògica de negoci

    • Model → Gestionar dades i cridar l’API REST.

De cara al front-end, hem decidit partir d’una “feature layer” on hi haurà packages independents per a cada funcionalitat. A dins de cada funcionalitat, hi haurà els fitxers de view (presentació), model (connexió amb API REST) i viewModel (lògica de negoci) per a la funcionalitat corresponent.

5. Especificacions de casos d’ús de negoci

ID: CU33

Validar proposta de videojocs

Nom: Validar proposta de videojocs

Descripció: L’administrador valida les propostes de videojocs que generen els usuaris. Podrà acceptar-les o rebutjar-les.

Actors: Administrador

Precondició: Iniciar sessió com a administrador.

Flux Normal Flux Alternatiu

1. L’administrador inicia sessió amb les seves credencials

2. L’administrador accedeix a la pantalla de videojocs

3. Prem el botó de “validar usuaris”

4. Es mostra una llista de tots els usuaris que necessiten validació. A cada entrada es troba un botó de visualitzar.

4.1. Si no hi ha cap usuari pendent de validació, la llista apareixerà buida.

5. Es mostrarà a detall la informació de l’usuari visualitzat amb un botó per validar i un per a rebutjar.

Postcondició: L’usuari queda validat i pot accedir amb les seves credencials al sistema.

6. DISSENY DE PANTALLES

6.1. Pantalla de registre

PantallaRegistre

6.2. Pantalla de login

PantallaLogin

6.3. Llistat de categories

LlistatCategories

6.4. Llistat de videojocs

LlistatVideojocs

6.5. Pantalla de modificar perfil

ModificarPerfil

6.6. Llistat de usuaris

LlistatUsuaris

6.7. Visualitzar videojoc

VisualitzarVideojoc

6.8. Pantalla de perfil

PantallaPerfil

6.9. Visualitzar categoria

VisualitzarCategoria

6.10. Afegir videojoc

AfegirVideojoc

6.11. Afegir categoria

AfegirCategoria

6.12. Modificar videojoc

ModificarVideojoc

6.13. Modificar categoria

ModificarCategoria

6.14. Verificar videojoc

VerificarVideojoc

6.15. Verificar usuari

VerificarUsuari

6.16. Pantalla de biblioteca

PantallaBiblioteca

6.17. Afegir a la biblioteca

AfegirBiblioteca

6.18. Guia d’estils

GuiaEstils

6.19. Components de figma

ComponentsFigma

7. DISSENY DE LA BASE DE DADES

Totes les dades de la nostra aplicació seran emmagatzemades en una base de dades no relacional (MongoDB) per la seva gran escalabilitat. Les dades que emmagatzemem són: usuaris, tipus de videojocs (categoria), videojocs (ítem) i biblioteca, que serà l’entitat resultant de la relació entre videojocs i usuaris i que es farà càrrec dels comentaris, puntuació i el seguiment de l’estat del videojoc.

8. PLANIFICACIÓ I SEGUIMENT SETMANAL

8.1. Sprint 1

8.1.1. Tasques realitzades

8.1.1.1. Hector
  • Afegir Categoria backend (1 hora)

  • Modificar Categoria backend (1 hora)

  • Eliminar Categoria backend (1 hora)

  • Llistar Categoria backend (1 hora)

  • Test CRUD Categoria backend (2 hores)

  • Consulta Categoria backend (1 hora)

  • Filtre Categoria backend (1 hora)

  • Pantalla LlistaCategoria + AfegirCategoria frontend (15 hores)

  • Detalls del TopBar frontend (1 hora)

8.1.1.2. Yaiza
  • Afegir Videojoc (2 hores)

  • Modificar Videojoc (1 hora)

  • Eliminar Videojoc (30 minuts)

  • Llistar Videojocs (30 minuts)

  • Consultar Videojoc (1 hora)

  • Filtre Videojoc (1 hora)

  • Pantalla AfegirVideojoc + altres detalls (15h)

8.1.1.3. Anna
  • Afegir comentari: backend (3 hores)

  • Llistar usuaris (sense filtres) backend (1 hora)

  • Eliminar comentari backend (1 hora)

  • Test comentarisLogica backend (2 hores)

  • BottomNavBar frontend (3 hores)

  • LoginPantalla frontend (6 hores)

  • Estructura navegation frontend (3 hores)

8.1.1.4. Mario
  • Registre Usuari backend i pantalla(3 hores)

  • Modificar Usuari backend (1 hora)

  • Eliminar Usuari backend (1 hora)

  • Llistar Usuari backend (1 hora)

  • Filtre Usuari backend (1 hora)

  • Registre Admin + test crud Usuaris backend (1 hora)

  • Preparar asciidocs per a tots els apartats de la memoria pendents (1h)

  • Configuració d’api i bases d’api backend i frontend(20h)

8.1.2. Release notes

  • Afegir comentari: Anna (3 hores)

  • Llistar usuaris (sense filtres) Anna (1 hora)

  • Eliminar comentari: Anna (1 hora)

  • Test comentarisLogica: Anna (2 hores)

  • BottomNavBar: Anna (3 hores)

  • LoginPantalla: Anna (6 hores)

  • Estructura navegation: Anna (3 hores)

  • Registre Usuari: Mario (3 hores)

  • Modificar Usuari: Mario (1 hora)

  • Eliminar Usuari: Mario (1 hora)

  • Llistar Usuari: Mario (1 hora)

  • Filtre Usuari: Mario (1 hora)

  • Registre Admin + test crud Usuaris: Mario (1 hora)

  • Preparar asciidocs para todos los apartados de memoria pendientes: Mario (1h)

  • Configuracion de api y bases de api: Mario i Anna (20h)

  • Afegir Categoria: Héctor (1 hora)

  • Modificar Categoria: Héctor (1 hora)

  • Eliminar Categoria: Héctor (1 hora)

  • Llistar Categoria: Héctor (1 hora)

  • Test CRUD Categoria: Héctor (2 hores)

  • Consulta Categoria: Héctor (1 hora)

  • Filtre Categoria: Héctor (1 hora)

  • Pantalla LlistaCategoria + AfegirCategoria: Héctor (15 hores)

  • Detalls del TopBar: Héctor (1 hora)

  • Afegir Videojoc: Yaiza (2 hores)

  • Modificar Videojoc: Yaiza (1 hora)

  • Eliminar Videojoc: Yaiza (30 minuts)

  • Llistar Videojocs: Yaiza (30 minuts)

  • Consultar Videojoc: Yaiza (1 hora)

  • Filtre Videojoc: Yaiza (1 hora)

  • Pantalla AfegirVideojoc + altres detalls: Yaiza (15h)

8.1.3. Incidències

(Dilluns 10/02) L’Héctor, la Yaiza i l’Anna han estat molta estona intentant resoldre problemes amb l’Android Studio. Havíem de fer un pull de l’estructura i ens dónava molts problemes, començant pels “fetch” que no acabaven, documents creats al visual que no havíem creat nosaltres i que ens dónaven problemes per a poder fer el pull. A les 8:55, l’Anna havia pogut fer el pull, però l’IDE posava que “Kotlin index are corrupted” i no podia continuar. A les 9:10 hem decidit esborrar la carpeta “caches” motivats pel ChatGPT. A l’Anna li ha començat a funcionar l’Android Studio a les 9:29.

(Dilluns 10/02) A les 10:17 hem sapigut que havíem de crear tot el projecte de nou perquè havíem entès que havíem de fer servir la plantilla del Bottom Navigation. Sembla ser que és una versió antiga i que no ens serveix, i és ara que ho sabem.

(Dimarts 11/02 - Dijous 13/02) Problemes amb l’api. Hem treballat mes de 15 hores a l’api i continua sin funcionar. No terminem de entre el funcionament de l’api i en demanar ajuda al professor nos ens ha pogut ajudar.

8.1.4. Analisis final

8.1.4.1. Hector

Hores dedicades:

Les hores que he dedicat ha sigut la següent:

Afegir Categoria (1 hora)
Modificar Categoria (1 hora)
Eliminar Categoria (1 hora)
Llistar Categoria (1 hora)
Test CRUD Categoria (2 hores)
Consulta Categoria (1 hora)
Filtre Categoria (1 hora)
Pantalla LlistaCategoria + AfegirCategoria (16 hores)
Detalls del TopBar (1 hora)

Tasques realitzades:

Les tasques que he realitzat han sigut:

Crear tot el CRUD del BackEnd de la part de Categoria.
També he creat els tests del CRUD per poder comprovar que funcionin bé i poder començar amb el FrontEnd.
I amb tot el CRUD creat he començat a fer les pantalles de Categoria, però de moment tan sols tinc dues creades, que són, LlistaCategoria i AfegirCategoria, en les pantalles també he fet les traduccions de String en strings.xml, d’anglès, català i espanyol.

Aspectes positius del treball realitzat:

M’he tret mitja part de la pantalla, però sento que encara me’n queda moltíssim, fent les pantalles he après bastant Kotlin i més que res m’està agradant la part de crear les pantalles, però sento que això no és res, encara queda moltíssim per fer. Això és el que sento jo, perquè no sabem bé com anem respecte al pes del projecte.

Problemes trobats durant l’sprint:

Un problema que he vist és que en tres setmanes amb els temes que tenim i amb les pràctiques en mig no tinc molt temps per poder, estudiar i posar-me a fer el projecte, perquè surto de les pràctiques a les 18 i arribo a les 19:00 a casa i no tinc temps per tot, llavors no sé com organitzar-me les hores, però això és problema meu. Per part de l’sprint és que no sé com fer res de l’API, però més que res no he començat, però pel següent sprint segur que tindre completat o començat, també tinc molts dubtes per part de les pantalles, perquè no sé com fer que es posin les dades de la base de dades en aquestes pantalles.

Accions concretes per aplicar millores en els següents sprints:

L’única millora que jo veig és que he d’anar més de pressa i fer més en casa, aquesta part és personal. Però per part de Grup crec que estem anant bé, però això depèn de com anem avançant perquè portem una setmana.

8.1.4.2. Yaiza

Hores dedicades:

Les hores que he dedicat ha sigut la següent:

Afegir Videojoc (2 hores)
Modificar Videojoc (1 hora)
Eliminar Videojoc (30 minuts)
Llistar Videojocs (30 minuts)
Consultar Videojoc (1 hora)
Filtre Videojoc (1 hora)
Pantalla AfegirVideojoc + altres detalls (15h)
Pantalla VisualitzarVideojoc (6h)

Tasques realitzades:

He creat tot el CRUD del BackEnd de la part de Videojocs i el filtre per consultar per ID. Quan ja he fet tota la part del CRUD, he començat a fer les pantalles de Videojoc. Fins ara tinc dues acabades, AfegirVideojoc i VisualitzarVideojoc.

Aspectes positius del treball realitzat:

De cara al primer dia quan vam començar les pantalles, vaig començar amb molts dubtes i moltes dificultats a l’hora de plasmar les nostres idees, però a causa de prova i error, he anat avançant i m’he anat fent millor a android studio i kotlin, anant ara més ràpid amb les següents pantalles que hauré de fer.
Problemes trobats durant l’sprint:

L’únic que hem avançat han sigut les pantalles visualment. Tema connectar el Frontend amb el Backend, hem tingut molts dubtes, i en el meu cas per exemple, he de fer el llistat de videojocs, però com no tenim cap videojoc creat, tampoc sé com fer la pantalla sense afegir, diguem, les dades manualment a l’Android studio, i a causa d’estar pensant com fer o com no fer una pantalla, he tardat massa i estic anant molt més lenta del que m’agradaria.

Accions concretes per aplicar millores en els següents sprints:

Més que res suposo que hauríem d’intentar organitzar-nos millor i intentar fer les coses més ràpidament.

8.1.4.3. Anna

Hores dedicades:
De base he dedicat unes 19 hores a fer les meves funcionalitats. A més he estat dedicant hores a organitzar el grup i a ajudar amb funcionalitats als meus companys, en total he dedicat unes 29 hores.

Tasques realitzades:
En un principi jo m’encarregava de fer tot allò relacionat amb la biblioteca/comentaris, no obstant en ser una entitat que té relacions de dependència amb altres entitats, no m’ha sigut possible progressar molt. És per això que he fet els CRUD molt bàsics de comentari, i els seus test corresponents. També m’he encarregat de fer una plantilla al front end per a facilitar la implementació de la Bottom Navigation Bar en totes les pantalles i que fos funcional. Vaig començar la pantalla d’afegir comentari, però quan vaig adonar-me de què necessitava les entitats dels meus companys, em vaig posar a fer la pantalla de login. Vaig crear tota l’estructura de navegació per botons. Finalment, vaig estar ajudant el Mario a implementar l’api i comprovar que funcionés la creació d’un usuari, cosa que ens va portar al voltant de 20 hores, però sense això no podíem avançar gaire.

Aspectes positius del treball realitzat:
Em sento molt motivada a aprendre més sobre kotlin i android studio per als meus projectes personals. Però no estic molt contenta de la frustració que hem viscut aquesta setmana i, per tant, no puc trobar gaires aspectes positius. Per dir algun aspecte positiu, ara no veig tan difícil fer les pantalles, crec que és bastant intuïtiu.
Problemes trobats durant l’sprint:

Hem trobat molts problemes durant aquest Sprint. Primer de tot no teníem gaire clar res de conceptes tècnics i ens ha costat molt posar-nos a treballar. Crec que han estat massa coneixements nous per a un mateix projecte i ha estat molt frustrant. Quan ja havíem creat els dos projectes (front i back end), i havíem començat a treballar seguint les indicacions que s’havien estat donant a classe, vam haver de començar de nou el projecte del front end perquè no funcionava amb la plantilla que havíem de fer servir. Això ens va suposar un retard. A més a l’hora de fer l’api, com no teníem gaire clar com fer-la, vaig demanar al Mario que ell s’encarregués d’investigar mentre jo feia la implementació de la navegació, però donava molts errors i m’hi vaig posar amb ell a solucionar-ho en paral·lel, per tant, vam estar tots dos provant solucions a la vegada, cosa que ens va fer perdre encara més temps, com 20 hores.

Accions concretes per aplicar millores en els següents sprints:

Ara que hem aconseguit que funcioni l’api, ens toca treballar a un ritme més ràpid, ja que hauríem tots de tenir clar com funcionen la majoria de les coses a fer.

8.1.4.4. Mario

Hores dedicades:
He dedicat un aproximat de 29 hores a les meves funcionalitats, però la majoria de les hores han sigut dedicades a l’api i els problemes que ens donava. A més a més, he dedicat algunes hores extra per a ajudar a la resta del grup i per als moments en què havíem de parlar decisions grupals.

Tasques realitzades:
He començat dedicant-me principalment a les funcionalitats associades a l’usuari. Vaig començar per crear l’entitat d’usuari, l’enum UserType, el repository i la lògica pel CRUD, a més vaig afegir la pantalla de registre. Després vaig començar a intentar fer la implementació de l’api, vaig començar per intentar configurar-la i implementar-la però vaig trigar moltes hores, ja que no hi tenia prou coneixements. L’api donava molts errors i problemes en els quals he hagut d’invertir moltes hores.

Aspectes positius del treball realitzat:
Personalment, em costa trobar aspectes positius al treball d’aquesta setmana. Ha sigut molt agobiant i frustrant, ja que hem tingut molts problemes. Si haig de dir alguna cosa positiva és que, donada aquesta setmana de treball intensiu, a l’últim projecte tindre més facilitats per completar algunes coses.

Problemes trobats durant l’sprint:

Hem tingut molts problemes. Un dels problemes va ser una manca de comunicació amb el professorat que ens va fer haver de crear el projecte del frontend dues vegades, retardant molt el treball. A més, com que hem hagut d’adquirir molts coneixements en molt poc temps, tenim molts dubtes que impedeixen avançar amb velocitat. Sento que el professorat continua mancant en comunicació i, per tant, hi ha hagut diverses vegades en què he hagut de fer una mateixa funcionalitat o entitat més de tres vegades, ja que cada professor em deia una cosa distinta. Finalment, l’api no em va quedar molt clara i he trigat molt de temps en fer-la, ha sigut molt frustrant, perquè tampoc he rebut gaire ajuda quan l’he demanat.

Accions concretes per aplicar millores en els següents sprints:

Penso que als següents sprints haurem d’aprofitar els coneixements adquirits en aquest sprint per avançar molt més ràpid, ja que si no dupliquem o tripliquem la velocitat de treball no crec que puguem arribar a l’entrega final, i menys tenint en compte que haurem de reservar dies al mig del projecte per a estudiar per als exàmens.

8.2. Sprint 2

8.2.1. Tasques realitzades

8.2.1.1. Hector
  • Configuració API Pantalla AddCategory (5 hores)

  • Configuració API Pantalla ListCategory (5 hores)

  • Configuració Imatges en AddCategory (7 hores)

  • Creació de la pantalla ViewCategory (3 hores)

  • Configuració API Pantalla ViewCategory (5 hores)

8.2.1.2. Yaiza
  • Creació Pantalla ListVideogames (3 hores)

  • Configuració api Pantalla AddGame + ViewGame + ListVideogame (19 hores)

  • Modificacions a les pantalles (2 hores)

8.2.1.3. Anna
  • Login (19 hores)

  • Afegir videojoc a la biblioteca (2 hores)

  • FOL (1 hora)

8.2.1.4. Mario
  • Imatges a registrar usuari (2 hores)

  • Listar usuaris (10 hores)

  • Perfil d’usuari (3 hores)

  • Navegació de pantalles (2 hores)

8.2.2. Release notes

  • Imatges a registrar usuari (2 hores) Mario

  • Listar usuaris (10 hores) Mario

  • Perfil d’usuari (3 hores) Mario

  • Navegació de pantalles (2 hores) Mario

  • Creació Pantalla ListVideogames (3 hores) Yaiza

  • Configuració api Pantalla AddGame + ViewGame + ListVideogame (19 hores) Yaiza

  • Modificacions a les pantalles (2 hores) Yaiza

  • Configuració API Pantalla AddCategory (5 hores) Hector

  • Configuració API Pantalla ListCategory (5 hores) Hector

  • Configuració Imatges en AddCategory (7 hores) Hector

  • Creació de la pantalla ViewCategory (3 hores) Hector

  • Configuració API Pantalla ViewCategory (5 hores) Hector

  • Login (19 hores) Anna

  • Afegir videojoc a la biblioteca (2 hores) Anna

  • FOL (1 hora) Anna

8.2.3. Incidències

La principal incidència que hem tingut aquest sprint és que dels 4 membres del grup hi ha 2 que no poden fer ús de l’emulador del android studio. Hem descobert aquesta setmana que atès que la API només es pot utilitzar en local, ja que no està publicada en cap servidor, no es pot fer l’execució del android studio des del mòbil i, per tant, tot el testatge de funcionalitats i el treball en general s’ha vist afectat significativament.

8.2.4. Analisis final

8.2.4.1. Hector

Hores dedicades:

Configuració API Pantalla AddCategory (5 hores)
Configuració API Pantalla ListCategory (5 hores)
Configuració Imatges en AddCategory (7 hores)
Creació de la pantalla ViewCategory (3 hores)
Configuració API Pantalla ViewCategory (5 hores)

Tasques realitzades:

Les tasques que he realitzat ha sigut la implementació de l’API i poder entendre com funciona aquesta part, ja que no l’entenc molt i l’he d’estudiar per poder tenir una nota decent en l’API. He estat bastant amb aquest part perquè el volia tenir tot bé, encara que no puc comprovar-lo amb aquest portàtil he pogut avançar molt això és el que crec jo. He afegit la part de l’API a les pantalles de AddCategory i ListCategory per poder comprovar que funcioni bé i l’he pogut acabar i funcionen bé les dues. He començat amb ViewCategory i de moment se guixo amb la implementació de la pantalla, ja que tinc l’API creat i em queda que funcioni.

Aspectes positius del treball realitzat:

Ara que sé com funciona i com treballar amb l’API sento que baix molt més ràpid i podré acabar la part de Categoria en dos dies mínim, en si era perquè no entenia res de l’API i de la seva implementació, però ara que sé com funciona ja no vaig tan atabalat.

Problemes trobats durant l’sprint:

Els primers problemes que he trobat ha sigut el tema de les imatges perquè no entenia res i tampoc com funcionava, però al Mario em va donar un cop de mà i em va explicar com funciona i ara no és un gran problema. També crec que un problema podrà ser el tema dels filtres, per aquest motiu l’estem deixant com l’última acció per fer.

Accions concretes per aplicar millores en els següents sprints:

Un aspecte a millorar és que he d’anar més de pressa, perquè no hi ha temps per tenir tot acabat per l’entrega final, llavors he de fer a casa per poder avançar més i poder tenir tot bé per l’entrega.

8.2.4.2. Yaiza

Hores dedicades:

Creació Pantalla ListVideogames (3 hores)
Configuració api Pantalla AddGame + ViewGame + ListVideogame (19 hores)
Modificacions a les pantalles (2 hores)

Tasques realitzades:

Aquesta setmana he estat familiaritzant-me amb com fer la part de l’API i veure com funciona, llavors m’he estat molta estona al principi. He fet funcional la pantalla AddGames i ViewGames, he creat la pantalla de ListVideogames i també l’he fet funcional. Ara que ja està fet entre cometes el bàsic d’aquestes pantalles, intentaré fer la part d’afegir imatges i fer que en afegir una categoria al joc, sigui amb un desplegable, que és el que estic intentant ara.

Aspectes positius del treball realitzat:

Ara que entenc millor el tema de l’API ja no estic tan amoïnada com en un principi, he començat a veure una mica més clares les coses en haver començat a veure resultats de cara a veure les pantalles funcionals.

Problemes trobats durant l’sprint:

Tema grup no he vist cap problema, l’única cosa ha sigut més una mica en l’àmbit personal. Ja que fins ara, he estat intentant no utilitzar cap mena d’IA en tot el projecte, perquè volia que es veiés que no em calia dependre d’una eina així per fer coses per mi mateixa. La primera setmana no vaig utilitzar res, però com tenim poc temps, no tinc temps de posar-me a pensar com fer-ho jo absolutament tot sense haver d’utilitzar res. Llavors he hagut de dependre una mica aquesta setmana perquè tenia molts errors amb el tema de l’API i no trobava el perquè. Vaig estar 2 dies amb una mateixa cosa i vaig perdre molt de temps, llavors vaig haver d’utilitzar eines perquè si no no arribarem a l’entrega, i no vull que per una cosa que m’he ficat al cap, això em faci anar més lenta i això perjudiqui el meu grup.

Accions concretes per aplicar millores en els següents sprints:

No sabria que dir exactament, només sé que, personalment, he de fer alguna cosa per tenir present que he de fer i fer les coses pas a pas, perquè un problema que tinc és que vaig fent i vaig deixant les coses a mitges segons avanço, i hauria de, començar, acabar i següent. Intentaré fer-ho per l’últim sprint.

8.2.4.3. Anna

Hores dedicades:
Login (19 hores)
Afegir videojoc a la biblioteca (2 hores)
FOL (1 hora)

Aquesta setmana he treballat unes 24 hores. En funcionalitats com a tal he estat unes 21 hores i en organització temporal i git entre una i dues hores. A més, cal comptar l’hora de la classe de FOL, on la professora ens va estar donant instruccions sobre la nova tasca a realitzar.

Tasques realitzades:
Aquesta setmana he estat dedicant-me a fer funcional el login tant al front com en el back end. A més també he arreglat una de les meves pantalles que m’estava donant molts problemes.

Aspectes positius del treball realitzat:
L’única cosa que veig positiva d’aquest sprint és que finalment tenim una aplicació funcional des del principi. El fet que ara puguis registrar-te i iniciar sessió de manera funcional, em fa sentir realitzada i motivada.

Problemes trobats durant l’sprint:
Personalment, no he estat molt productiva aquesta setmana per problemes personals i m’ha costat molt superar els obstacles que estava trobant mentre feia el login. Tot i que entenia com havia de fer perquè funcionés, no era capaç de solucionar tots els problemes que trobava. Vaig haver de recórrer molt a la IA i tot i això vaig entrar en un bucle provant solucions. Finalment, vaig decidir esborrar tot i tornar-ho a fer, cosa que em va endarrerir moltíssim.
A més, en tenir l’entitat de biblioteca que depèn d’altres entitats, tot i tenir fetes algunes de les pantalles, no puc implementar la funcionalitat del back end i de l’api. Per tant, la setmana vinent tindré molta feina.

Accions concretes per aplicar millores en els següents sprints:
Hauré de fer molta feina a casa, ja que el portàtil em funciona bastant malament per a provar les funcionalitats amb l’emulador, cosa que amb el mòbil no em passava.
També he d’intentar no entrar en bucle, si no veig clara una solució després d’una mica de temps, he de tornar a començar o buscar una alternativa.

8.2.4.4. Mario

Hores dedicades:
Aquest sprint li he pogut dedicar menys hores, ja que he tingut problemes de salut que m’han fet no estar tant de temps a classe i no poder fer més a casa. Tot i això he fet aproximadament un total de 17 hores entre totes les meves funcionalitats.

Tasques realitzades:

  • Imatges a registrar usuari (2 hores)

  • Llistar usuaris (10 hores)

  • Perfil d’usuari (3 hores)

  • Navegació de pantalles (2 hores)

Aspectes positius del treball realitzat:
He aconseguit aprendre a fer la gestió d’imatges (que l’usuari pugui pujar una imatge, guardar-la en la base de dades i poder-la recuperar posteriorment) malgrat totes les dificultats que m’he trobat en el procés. En haver aconseguit això i altres petits avanços que hem donat aquesta setmana ens faciliten molt el treball per a l’última setmana en la qual tot hauria d’anar més fluid.

Problemes trobats durant l’sprint:
Les imatges m’han pres massa temps, per la qual cosa, entre això i els problemes de salut, no he pogut fer grans avanços. He trobat moltes dificultats i no he sabut gestionar correctament el meu treball

Accions concretes per aplicar millores en els següents sprints:
Aquesta setmana no trobo moltes coses a millorar, ja que he fet molta feina individual i he estat menys hores amb el meu grup en classe.

8.3. Sprint 3

8.3.1. Tasques realitzades

8.3.1.1. Hector
  • Pantalla ViewCategory (6 hores)

  • Eliminar Category (2 hores)

  • Filtre Category en la Llista (4 hores i no esta acabada)

  • Implementació de la Logica al BackEnd (1 hora)

  • Implementació de Retrofit, APIrest i ViewModel (1 hora)

  • UI Pantalla Modify (4 hores) i no em surt res no se com fer aquesta part i he avançat una mica a casa i tampoc, no se com fer aquesta part.

8.3.1.2. Yaiza
  • Desplegable Categoria (6h)

  • Afegir imatge (3h)

  • Camps buits (2h)

  • Botons afegir i visualitzar videojocs funcionals (1h)

  • Visualitzar imatge (2h)

  • Botó validar jocs afegits (30 min)

  • Visualitzar imatge (30 min)

  • Funcionalitat esborrar i botó d’esborrar funcional (3h)

  • Mirat per sobre com fer pantalla Modificar Videojocs (1h)

  • Pantalla Llistar videojocs no validats (ListInactiveGames) (3h)

8.3.1.3. Anna
  • Correcció de strings i traducció (1 hora i mitja)

  • Afegir videojoc a la biblioteca (13 hores)

  • Recuperar contrasenya (9 hores)

  • Consultar biblioteca personal (5 hores)

8.3.1.4. Mario
  • Registre admin (1 hora)

  • Millores en el backend (2 hores)

  • Modificar Usuari (15 hores)

  • Perfil d’usuari (1 hora)

  • validar usuaris (1 hora)

  • Eliminar usuari (30 minuts)

  • Solució d’errors generales (3 hores i mitja)

8.3.2. Release notes

  • Pantalla ViewCategory (6 hores)

  • Eliminar Category (2 hores)

  • Implementació de la Logica al BackEnd (1 hora)

  • Implementació de Retrofit, APIrest i ViewModel (1 hora)

  • Desplegable Categoria (6h)

  • Afegir imatge (3h)

  • Camps buits (2h)

  • Botons afegir i visualitzar videojocs funcionals (1h)

  • Visualitzar imatge (2h)

  • Botó validar jocs afegits (30 min)

  • Visualitzar imatge (30 min)

  • Funcionalitat esborrar i botó d’esborrar funcional (3h)

  • Mirat per sobre com fer pantalla Modificar Videojocs (1h)

  • Pantalla Llistar videojocs no validats (ListInactiveGames) (3h)

  • Correcció de strings i traducció (1 hora i mitja)

  • Afegir videojoc a la biblioteca (13 hores)

  • Recuperar contrasenya (9 hores)

  • Consultar biblioteca personal (5 hores)

  • Registre admin (1 hora)

  • Millores en el backend (2 hores)

  • Modificar Usuari (15 hores)

  • Perfil d’usuari (1 hora)

  • validar usuaris (1 hora)

  • Eliminar usuari (30 minuts)

  • Solució d’errors generales (3 hores i mitja)

8.3.3. Incidències

Aquest sprint la principal incidència que hem trobat ha sigut que no podíem treballar adequadament com que dos membres de l’equip tenen ordinadors que no suporten bé l’android Studio i, per tant, això ens ha endarrerit molt.

8.3.4. Analisis final

8.3.4.1. Hector

Hores dedicades:

  • Pantalla ViewCategory (6 hores)

  • Eliminar Category (2 hores)

  • Filtre Category en la Llista (4 hores i no està acabada)

Modificar Category:

  • Implementació de la Lògica al BackEnd (1 hora)

  • Implementació de Retrofit, APIrest i ViewModel (1 hora)

  • UI Pantalla Modify (4 hores) i no em surt res, no sé com fer aquesta part i he avançat una mica a casa i tampoc, no sé com fer aquesta part.
    Tasques realitzades:

En aquest Sprint el que he fet ha sigut acabar la part de ViewCatgory i acabar el que hem faltat, però he tingut molts problemes a l’hora de crear la pantalla del ViewCategory, no sabia com fer-la i em donava molts problemes per la part de mostrar la informació d’una categoria i tan sols em mostrava la pantalla buida i vaig intentar de tot, però va ser una cosa molt absurda que va ser l’URL, ja que no estava igual que en el BackEnd i vaig modificar de tot. També vaig fer la part d’eliminar categoria i vaig fer que el botó tan sols la pugui veure l’administrador i no vaig tenir cap problema el vaig posar dintre d’un if amb un currentuser i no tenia cap complicació.

Després de fer la part d’eliminar vaig començar per la de modificar vaig fer tota la part lògica, però després per mostrar la informació i poder fer-la editable em dona molts problemes i vaig estar molta estona i vaig decidir començar amb filtre, ja que volia descansar de fer la part de Modificar.

Encara estic fent la part de filtrar, tinc la part del SearchBar, però no em funciona del tot, he de continuar aquesta part.

Aspectes positius del treball realitzat:

Que em funciona el ViewModel i que eliminar està bé i de moment no estic anant tan malament, però sento que no he anat amb bon ritme, ja que estic trigant molt a fer les coses i quan no em surt una cosa no paro i si no aconsegueixo el que estic fent em frustro i em bloquejo.

Problemes trobats durant l’sprint:

El problema que he trobat durant aquest sprint és que trigo molt a fer les coses i com que no puc comprovar que funciona bé per al meu ordinador, trigo molt a veure si funciona i que és el que està malament, llavors depenc dels meus companys en tota l’estona i si he de comprovar el meu codi el company que em deixa el seu ordinador està una estona sense fer res. Un altre problema és que quan he començat amb modificar he estat molta estona intentant que funcioni i he perdut molt de temps, quan podria haver començat per una altra cosa.

Accions concretes per aplicar millores en els següents sprints:

De cara al següent sprint hem de tenir tot acabat a sí que he de posar-me les piles i fer que funcioni tot bé i funcional.

8.3.4.2. Yaiza

Hores dedicades:

Pantalla Creació de videojocs (AddGames)

  • Desplegable Categoria (6h)

  • Afegir imatge (3h)

  • Camps buits (2h)

Pantalla llistar videojocs (ListVideogames)

  • Botons afegir i visualitzar videojocs funcionals (1h)

  • Visualitzar imatge (2h)

  • Botó validar jocs afegits (30 min)

Pantalla Consultar videojoc (ViewGames)

  • Visualitzar imatge (30 min)

  • Funcionalitat esborrar i botó d’esborrar funcional (3h)

  • Mirat per sobre com fer pantalla Modificar Videojocs (1h)

  • Pantalla Llistar videojocs no validats (ListInactiveGames) (3h)

Tasques realitzades:

Durant aquest sprint m’he dedicat a anar acabant petites coses que havia deixat per aquest sprint. A la pantalla d’Afegir Videojocs, he fet un desplegable pel camp de categoria, perquè agafi les categories existents a l’entitat de Categoria. He fet que la imatge es pugui afegir a la base de dades i es guardi i he fet que els camps a l’hora de crear un joc, si algun està buit, no deixi guardar.
A la de llistar, he fet que tant el botó d’afegir un videojoc com el de visualitzar siguin funcionals i naveguin a la pantalla que pertoqui. Ara que ja he fet que la imatge es guardi, he estat intentant que la imatge es visualitzés per cada joc llistat i he afegit el botó que serà per validar els jocs afegits, encara no navega perquè la pantalla de validar encara no està feta.
A la pantalla de visualitzar, he fet que es visualitzi la imatge, que com ja ho havia fet abans a la de llistar, l’he fet més ràpidament i finalment, he estat afegint tota la part d’esborrar i he fet que el botó d’esborrar el videojoc sigui funcional.
Això són les coses funcionals que he estat fent aquesta setmana, després he mirat una mica per sobre com fer les pantalles de modificar i validar, però encarà no estan.

Aspectes positius del treball realitzat:
Aquesta setmana m’he fet un llistat de totes les coses que tinc pendents i he valorat quines podia fer més ràpidament o quines eren més necessàries per continuar i treure coses de sobre. Això ha fet que hagi vist el que he anat avançant i tot i que siguin coses petites, sento que el ritme no ha estat gens malament.

Problemes trobats durant l’sprint:
A l’hora de fer el desplegable de categoria m’he estat molt de temps, que mirant enrere, podria haver-me estalviat si hagués posat ben connectada l’entitat de categoria a videojoc en comptes d’utilitzar un camp extra que tenia posat a la pantalla per afegir les categories manualment. Com no vaig pensar de cara a futur, ara m’he estat batallant bastant perquè tota l’estona hi havia incongruències, perquè ho agafava d’altre lloc que no era, o sortia null perquè resulta que havia posat altre nom… I era una cosa amb la qual vaig estar donant voltes quan, si ho hagués planejat bé des d’un principi, m’ho hauria tret de sobre molt més ràpid. Una altra cosa ha sigut quan he intentat començar a fer la pantalla de modificar i he vist que no sabia per on començar i com fer-la, llavor he intentat fer altres coses i en altre moment ja començaria a fer-la. La resta de coses les he anat resolent més de pressa i no ho veig tant problema, el que més problema m’ha donat aquesta setmana diria que ha sigut això del desplegable.

Accions concretes per aplicar millores en els següents sprints:
Ja de cara al següent projecte, el que hauria de fer seria plantejar-me molt millor que he de fer, com ho he de fer, i més o menys plantejar quant de temps trigaria aproximadament en cada cosa, per saber que coses hauria de prioritzar i quines serien més importants i es necessitin fetes per altres coses. Ja que he vist que he anat fent coses que he hagut d’anar deixant a meitat perquè no podia fer-les si no tenia altra cosa que no tenia feta.

8.3.4.3. Anna

Hores dedicades:

He dedicat unes 35 hores aquest Sprint. A més de les tasques realitzades llistades al Release notes, també he dedicat 3 hores a les feines de FOL i una hora a organització. FALTA EL JUEVES!

Tasques realitzades:

  • Correcció de strings i traducció (1 hora i mitja)

  • Afegir videojoc a la biblioteca (13 hores)

  • Recuperar contrasenya (9 hores)

  • Consultar biblioteca personal (5 hores)

  • Llistar comentaris sense filtrar (3 hores)

Aspectes positius del treball realitzat:

En poder treballar a casa a partir del dimecres per la tarda, he pogut avançar molt més ràpid les funcionalitats. Ja tenim la navegació molt avançada i per tant es veu una bona feina.

Problemes trobats durant l’sprint:

Aquest sprint he estat treballant més a casa que a l’institut perquè el meu ordinador es laggeja i es congela quan faig servir l’emulador de l’Android Studio, per tant els primers dies d’aquest sprint vaig perdre molt de temps. Em vaig plantejar no venir a classe i quedar-me a casa treballant a la torre, però per por a necessitar les hores, no ho he fet.

Accions concretes per aplicar millores en els següents sprints:

De cara a l’entrega hem de treballar molt. No crec que hi hagi que millorar res.

8.3.4.4. Mario

Hores dedicades:

Aquest sprint he dedicat al voltant de 26 hores de treball a les meves funcionalitats i a la solució d’errors generals que anava trobant a l’aplicació així com ajudar als meus companys amb les seves funcionalitats si trobaven problemes.

Tasques realitzades:

  • Registre admin (1 hora)

  • Millores en el backend (2 hores)

  • Modificar Usuari (15 hores)

  • Perfil d’usuari (1 hora)

  • validar usuaris (1 hora)

  • Eliminar usuari (30 minuts)

  • Solució d’errors generales (3 hores i mitja)

Aspectes positius del treball realitzat:

He trobat moltes dificultats durant aquest sprint i he sigut capaç de superar-les totes amb poca ajuda. He trigat una mica més del que esperava en completar les funcionalitats que tenia pensades, però el fet d’haver superat tantes dificultats m’agrada.

Problemes trobats durant l’sprint:

He trobat moltes dificultats amb modificar usuaris, sobretot amb les imatges, ja que era un sistema molt complex. A més he tingut dificultats amb algunes de les solucions dels problemes com per exemple que la topbar no actualitzava correctament la imatge d’usuari quan aquesta era modificada.

Accions concretes per aplicar millores en els següents sprints:

Com sempre passa, penso que de cara al següent projecte haurem de treballar més de pressa i d’organitzar-nos millor. De cara a l’entrega final ens queda molta feina d’implementació a més de fer asciidocs, feina de fol i el vídeo, no sé si arribarem a tot.

9. IMPLEMENTACIÓ

9.2. JUSTIFICACIO DE DECISIONS

  • RF30 “Afegir comentari” i RF41 “Afegir videojoc a la biblioteca” han estat fusionats. Els comentaris formen part de la relació entre videojoc i usuari, i per tant els emmagatzemem en la relació “Library”/”Biblioteca”, com a atributs.

  • L’usuari inicia sessió amb el nom d’usuari i la contrasenya. El correu electrònic l’hem destinat només per a validar l’usuari a l’hora de recuperar la contrasenya.

  • En el requisit funcional 08 “Llistar usuaris”, es demana que sigui l’administrador qui pugui visualitzar una llista de tots els usuaris. Nosaltres hem decidit que per a la nostra aplicació era més convenient que tots els usuaris puguin accedir a la llista de tots els usuaris per a poder visualitzar els seus perfils. No obstant, en la pantalla d’usuaris, hi ha algunes funcions que només estan disponibles per a l’administrador, com ara el botó de validar.

  • Per conveniència, tots els usuaris poden accedir a un filtre a la pàgina d’usuaris per a poder filtrar-los per username.

  • Tots els usuaris poden accedir a visualitzar els perfils dels altres usuaris.

  • Hem afegit un RF41, en el qual un usuari pot afegir qualsevol videojoc que hagi estat validat a la seva biblioteca.

  • Tots els usuaris poden accedir a la seva biblioteca per a veure els videojocs afegits.

  • En l’RF34 “(RF34) Eliminar comentaris”, l’usuari que ha posat el comentari també pot esborrar el seu propi comentari.

  • Hem decidit que pots guardar un videojoc a la teva biblioteca però sense puntuació ni comentari, per tant hem post l’estat default en “want to play” i aquests comentaris no es llisten en la pàgina de veure videojocs.

  • Quan es va parlar de la implementació de seguretat per a l’aplicació, se’ns va dir que no feia falta fer seguretat, només l’autenticació i fer algún tipus d’encriptació per a la contrasenya, així que hem fet justament això. Per a la recuperació de la contrasenya, hem fet un sistema on en clicar el botó “Forgot your password?”, et portés a una pantalla on l’usuari introdueix el seu nom d’usuari i el correu electrònic i el sistema verifica que existeixi aquest usuari i que el correu electrònic sigui el correcte, aleshores surt un missatge avisant que s’ha canviat la contrasenya, se li mostra per pantalla la propia contrasenya i se li demana clicar un botó per a confirmar que s’ha llegit.

9.3. LLISTAT DE FUNCIONALITATS FINALITZADES

  • (RF01) Login Usuari

  • (RF02) Registre Usuari

  • (RF45) Registre d’administrador

  • (RF03) Recuperar contrasenya

  • (RF04) Editar perfil usuari

  • (RF48) Consultar perfil d’usuari

  • (RF05) Logout

  • (RF06) Validar Usuaris

  • (RF07) Eliminar usuari

  • (RF08) Llistar usuaris

  • (RF09) Modificar usuaris

  • (RF44) Filtre d’usuaris

  • (RF46) Consultar usuari

  • (RF10) Crear categoria

  • (RF11) Llistar categories:

  • (RF12) Filtrar per categoria

  • (RF13) Consultar categoria

  • (RF14) Modificar categoria

  • (RF15) Eliminar categoria

  • (RF16) Filtrar Videojocs per Categories

  • (RF20) Afegir videojoc

  • (RF21) Llistar videojocs

  • (RF22) Filtrar videojocs

  • (RF24) Consultar videojoc

  • (RF25) Modificar videojoc

  • (RF26) Eliminar videojoc

  • (RF40) Validar proposta de videojocs

  • (RF41) Afegir videojoc a biblioteca personal

  • (RF42) Modificar videojoc a la biblioteca personal

  • (RF43) Eliminar videojoc de la biblioteca personal

  • (RF47) Consultar biblioteca personal

  • (RF30) Afegir comentaris

  • (RF33) Visualitzar puntuació mitjana

  • (RF34) Eliminar comentaris

9.4. LLISTAT D’INCIDENCIES

9.4.1. MARIO

En el meu cas no he tingut gaires incidències, tot i això, alguns petits problemes sí que he trobat al llarg del projecte. En primer lloc, he trobat dificultats a fer les pantalles amb android studio, ja que tot i que no era un procés gaire difícil, al començament no quedava tot com m’agradava, però després vaig aprendre a fer millor les pantalles. També vaig trobar moltes dificultats amb les imatges perquè no sabíem com gestionar correctament les imatges i amb molt de temps i de recerca a internet vaig aconseguir que funcionessin com volíem. Per últim, l’API va costar molt de gestionar al començament, ja que els exemples de connexió amb API que havíem fet a classe eren molt més senzills que el que es requeria al projecte.

9.4.2. ANNA

Aquest projecte ha estat tot un repte, doncs no he pogut treballar des de l’institut. Quan vam començar el segon Sprint i vam haver de començar a provar funcionalitats en l’emulador d’Android Studio, ja no vaig poder continuar fent servir el portàtil per a fer feina i per tant vaig haver de dedicar-li el doble d’hores, doncs vaig haver de fer tota la meva feina a casa. També vaig tenir molts problemes amb l’API doncs vaig estar treballant paral·lelament amb el Mario per aconseguir que funcionés i vam haver-li de dedicar moltes hores.

9.4.3. HECTOR

Les incidències que he trobat per la meva part ha estat per part dels requisitsdel sistema, ja que no podia treballar molt a classe i no podia comprovar si la pantalla o l’aplicació funcionava correctament, això feia que despenges dels meus companys i no avancin per culpa meva, ja que no tenia el sistema que es requeria per fer aquest projecte.

La incidència del sistema ha sigut la incidència que més m’ha perjudicat perquè per no tenir els requisits de la màquina he anat molt atabalat a més que era un projecte curt i que al principi em va costar posar-me amb el projecte, ja que no entenia res.

9.4.4. YAIZA

Durant el projecte, he tingut diverses dificultats tècniques, sobretot per connectar el Frontend amb el Backend. Al principi, vaig voler evitar l’ús d’IA per demostrar que podia desenvolupar el projecte sense dependre d’això, però la falta de temps i els errors amb l’API em van obligar a buscar ajuda per no frenar l’equip. Vaig perdre dos dies intentant solucionar un problema i, finalment, vaig recórrer a suport extern per arribar a l’entrega.
Un dels principals entrebancs va ser el desplegable de categories, que vaig implementar de manera poc eficient en un principi. En comptes de connectar correctament l’entitat Categoria amb Videojoc, vaig afegir un camp extra per gestionar-les manualment, cosa que va generar errors i inconsistències que em van fer perdre molt de temps quan dies després vaig voler posar-me amb això.
També vaig tenir dificultats amb la pantalla de modificació. Al començament no sabia com abordar-la i la vaig haver de deixar per avançar en altres tasques. Quan la vaig reprendre, encara em donava molts problemes fins que, després de diversos intents, va acabar funcionant.

9.4.5. GRUP

Grupalment, hem trobat un gran problema al llarg de tot el projecte que ens ha endarrerit molt. La principal incidència que hem trobat a escala grupal és amb les eines de treball, els requisits de sistema per a l’ús d’emuladors a l’Android Studio són molt exigents i no coincideixen amb els requisits de sistema mínims que se’ns van demanar de cara a tenir un portàtil per a poder començar el grau. Això ens ha portat a tenir dos portàtils en el nostre grup que no podien provar les funcionalitats que s’anaven fent. A més, feien els portàtils anar amb molt de lag i s’acabaven congelant tota l’estona.

10. MANUAL D’USUARI

Per a accedir a la nostra aplicació cal tenir MongoDB versió 1.45, JDK versió 21, i un dispositiu mòbil o emulador.
La base de dades es troba sota el nom de “Projecte3GameDex”.
L’aplicació té dos usuaris per defecte, un administrador i un usuari “normal”.

Administrador:

  • Username: admin

  • Password: admin

Usuari:

  • Username: user

  • Password: user

La base de dades no té cap contrasenya.

10.1. MANUAL D’USUARI "CLIENT"

10.1.0. ABANS DE COMENÇAR

En iniciar sessió a la nostra aplicació trobarem dues barres horitzontals, una a la part superior i una a la part inferior. La barra a la part superior tindrà a l’esquerra la foto de perfil del nostre usuari, clicant aquí podrem anar a visualitzar el nostre perfil. A la part dreta es troba un botó que tancarà la sessió a l’aplicació.
La barra inferior ens permet accedir a les diferents parts de l’aplicació. Les diferents icones, per ordre, ens portaran al llistat de categories, el llistat de videojocs, el llistat d’usuaris, el perfil d’usuari i a la nostra llibreria respectivament.

10.1.1 LOGIN

login

Aquesta és la pantalla d’inici de sessió, on l’usuari ha d’introduir el seu nom d’usuari i contrasenya per a poder accedir a l’aplicació.
L’usuari també tindrà l’opció d’enregistrar-se si no té un compte o de recuperar la seva contrasenya en cas d’haver-la oblidat.
En clicar el botó de "confirmar", si les credencials son correctes, l’usuari serà redirigit a la pantalla principal de l’aplicació.

10.1.2. REGISTRE

signUp

En aquesta pantalla trobem en la part superior el logo de l’aplicació. A l’esquerra hi ha un botó per tornar a la pantalla d’Iniciar Sessió. Seguit d’això trobem un formulari que l’usuari ha d’omplir per a poder registrar-se. Els camps que el componen són: nom d’usuari, nom, cognom, contrasenya, correu electrònic, telèfon, data de naixement i hi ha un camp per afegir una imatge de la galeria del telèfon. L’usuari ha de tenir en compte què no podrà iniciar sessió fins que el seu compte no hagi estat validat per un administrador.

10.1.3. RESETEJAR CONTRASENYA

forgotYourPassword

Si l’usuari vol canviar la contrasenya, haurà d’haver clicat en el botó “Has oblidat la contrasenya?” que hi ha a la pantalla d’iniciar Sessió. Una vegada que l’usuari es troba en aquesta pantalla veurà en la part superior un botó per a tornar enrere i un formulari de dos camps, nom d’usuari i correu electrònic. En el cas de voler canviar la contrasenya, l’usuari ha d’omplir el formulari i clicar en Confirmar. Aleshores apareixerà un missatge de confirmació en el cas que les credencials siguin correctes juntament amb una contrasenya provisional que es recomana canviar immediatament després de l’inici de sessió.

10.1.4. LLISTAT DE CATEGORIES

listCategories

En la pantalla de llistar categories, l’usuari pot observar tots els tipus de videojoc que s’han afegit a l’aplicació. A sota de la capçalera, trobem un buscador que ens permet filtrar pel nom de la categoria, l’usuari pot escriure el nom complet de la categoria o només una part i se li mostraran tots els resultats obtinguts. A sota hi ha la llista de categories, cada categoria és un ítem clicable que ens porta a visualitzar més informació sobre la categoria corresponent.

10.1.5. CONSULTAR CATEGORIA

viewCategory

En la pantalla de consultar categoria podem veure més informació de la categoria seleccionada. Trobem el nom de la categoria, una imatge descriptiva, i una descripció sobre aquesta categoria.

10.1.6. LLISTAT DE VIDEOJOCS

listVideogames

En la pantalla de llistar videojocs l’usuari pot accedir a un llistat dels videojocs que existeixen a la base de dades de la nostra aplicació. A sota del títol, trobem un buscador que ens permet trobar més fàcilment el videojoc que estem buscant, podem escriure el nom complet i ens mostrarà només aquell resultat o, podem escriure només una part i ens mostrarà tots els resultats que coincideixin. Seguidament, trobem un menú desplegable que ens permet filtrar els videojocs per categoria. A sota trobem la llista de videojocs disponibles per als filtres que hem aplicat, si no posem cap filtre, trobarem tots els videojocs. Per cada resultat de videojoc, podem veure la seva imatge, el nom del videojoc, la categoria a la qual pertany i també tenim una icona clicable d’un ull que ens porta a la pàgina d’aquest videojoc. A la part inferior, trobem una icona amb un símbol “+”, clicant aquí, l’usuari pot accedir a presentar una nova proposta de videojoc.

10.1.7. CONSULTAR VIDEOJOC

viewVideogame

En la pantalla de visualitzar videojoc trobem la informació detallada del videojoc corresponent i un apartat de comentaris on trobem les ressenyes que han deixat els usuaris sobre aquest videojoc. La pantalla està dividida en dues parts, la zona superior és la dels detalls del videojoc. Aquí podem veure la imatge, el nom, la puntuació mitjana dels usuaris, el PEGI (edat recomanada), l’any de llançament, la categoria a la qual pertany, l’empresa creadora del videojoc, i una descripció del videojoc. A la zona superior dreta, trobem una icona en forma de cor que ens permet afegir aquest videojoc a la nostra biblioteca personal i, per tant, desar una ressenya. A la zona inferior de la pantalla, trobem el llistat de comentaris per aquest videojoc. Al costat del títol de “COMENTARIS”, trobem una icona amb el símbol “+”, el qual ens porta a afegir un videojoc a la biblioteca, és la mateixa funcionalitat que el botó amb el símbol del cor de la part superior. A sota del títol, trobem el llistat de comentaris on per cada comentari podem veure el nom de l’usuari que l’ha escrit, la puntuació que li ha posat i un comentari.

10.1.8. AFEGIR VIDEOJOC

addVideogame

En la pantalla d’afegir videojoc trobem un formulari amb la informació necessària perquè l’usuari pugui presentar una proposta de videojoc als administradors. Qualsevol proposta ha de ser validada per un administrador. El formulari consta dels camps següents: nom del videojoc, any de llançament, edat recomanada, empresa creadora del videojoc, un menú desplegable per a escollir la categoria a la qual pertany el videojoc, una descripció i una imatge descriptiva. Finalment, per a poder enviar la proposta hi ha un botó de confirmació.

10.1.9. LLISTAT D’USUARIS

listUsers

En la pantalla de llistar usuaris, l’usuari pot trobar una llista de tots els usuaris independentment que hagin estat validats o no. A sota del títol, trobem un espai per a realitzar una cerca personalitzada segons el nom d’usuari, en aquest espai podem escriure el nom d’usuari complet o només una part i l’aplicació ens mostrarà els resultats obtinguts. A sota d’aquest espai, està la llista d’usuaris, on cada ítem té la imatge de perfil (si l’usuari en té), el nom d’usuari i una icona clicable que ens permet navegar al perfil de l’usuari corresponent.

10.1.10. VIEW PROFILE

viewProfile

En la pantalla de consultar el perfil de l’usuari, podem trobar informació de l’usuari corresponent. Els camps que podem veure són la imatge de perfil, el nom d’usuari i el recompte de videojocs filtrats per acabats, jugant, aquells que es volen jugar i aquells que no s’han finalitzat. Al costat de la imatge de perfil a l’esquerra, hi ha un botó amb un llapis (nomes si ens trobem al nostre perfil), que ens portarà a la pantalla de modificar el perfil de l’usuari. A sota del recompte de videojocs, trobem un botó que ens portarà a la llibreria de l’usuari.

10.1.11. MODIFICAR PERFIL

modifyProfile

En la pantalla de modificar el perfil de l’usuari, podem modificar les dades introduïdes de l’usuari, que són les mateixes que en la pantalla de registre: contrasenya, nom, cognom, correu electrònic, telèfon, data de naixement i imatge de perfil. L’únic camp que no és editable és el nom d’usuari. Si l’usuari no vol canviar la contrasenya, haurà de deixar el camp buit. A sota de la imatge, hi ha el botó de confirmar, el qual guardarà l’usuari actualitzat i ens portarà a la pantalla de visualitzar el perfil.

10.1.12. LLIBRERIA

listLibrary

En aquesta pantalla l’usuari trobarà un llistat de tots els jocs que ha afegit a la seva llibreria. Cada entrada mostrarà el nom del videojoc, la seva categoria i l’estat en què l’usuari ha guardat el videojoc (Finalitzat, Pendent, Jugant, o Abandonat). També trobarà dos botons a la dreta, un vermell que eliminarà el videojoc de la seva llibreria i un fúcsia que ens permetrà editar l’entrada a ala llibreria.

10.1.13. AFEGIR VIDEOJOC A LA LLIBRERIA

addVideogameToLibrary

Aquesta pantalla permet a l’usuari afegir un videojoc a la seva llibreria personal. Podrem introduir un estat, una puntuació i un comentari. Només serà necessari afegir l’estat, on l’usuari podrà escollir entre Finalitzat, Pendent, Jugant o Abandonat.

10.1.14. MODIFICAR ENTRADA DE LA LLIBRERIA

addVideogameToLibrary

Aquesta pantalla permet a l’usuari modificar un videojoc de la seva llibreria personal. Podrem modificar l’estat, la puntuació i el comentari.

10.2. MANUAL D’USUARI "ADMINISTRADOR"

10.2.0. ABANS DE COMENÇAR

En iniciar sessió a la nostra aplicació trobarem dues barres horitzontals, una a la part superior i una a la part inferior. La barra a la part superior tindrà a l’esquerra la foto de perfil del nostre usuari, clicant aquí podrem anar a visualitzar el nostre perfil. A la part dreta es troba un botó que tancarà la sessió a l’aplicació.
La barra inferior ens permet accedir a les diferents parts de l’aplicació. Les diferents icones, per ordre, ens portaran al llistat de categories, el llistat de videojocs, el llistat d’usuaris, el perfil d’usuari i a la nostra llibreria respectivament.

10.2.1. LLISTAT DE CATEGORIES

listCategoriesAdmin

En la pantalla de llistar categories, l’usuari pot observar tots els tipus de videojoc que s’han afegit a l’aplicació. A sota de la capçalera, trobem un buscador que ens permet filtrar pel nom de la categoria, l’usuari pot escriure el nom complet de la categoria o només una part i se li mostraran tots els resultats obtinguts. A sota hi ha la llista de categories, cada categoria és un ítem clicable que ens porta a visualitzar més informació sobre la categoria corresponent. L’administrador a més podrà afegir noves categories amb el botó amb la icona d’un “+” a l’esquena inferior dreta de la pantalla.

10.2.2. AFEGIR CATEGORIA

addCategory

La pantalla d’afegir categoria és una pantalla exclusiva per l’Administrador, i el seu objectiu és poder afegir noves categories per a després assignar-li videojocs. Per poder crear-la hem d’afegir el nom de la categoria, una descripció per la categoria que vols afegir i una imatge sobre la categoria que vols crear.

10.2.3. CONSULTAR CATEGORIA

viewCategoryAdmin

En la pantalla de consultar categoria podem veure més informació de la categoria seleccionada. Trobem el nom de la categoria, una imatge descriptiva, i una descripció sobre aquesta categoria. L’administrador a més trobarà al costat del nom de la categoria, un botó vermell amb una icona d’una brossa on podrà eliminar la categoria corresponent i a sota de la informació, hi ha un botó rosa per a poder modificar la informació de la categoria: la descripció i la imatge.

10.2.4. MODIFICAR CATEGORIA

modifyCategory

Per la pantalla de modificar categoria el que podrà fer l’administrador és modificar la descripció i la imatge de la categoria visualitzada anteriorment.

10.2.5. LLISTAT DE VIDEOJOCS

listVideogamesAdmin

En la pantalla de llistar videojocs l’usuari pot accedir a un llistat dels videojocs que existeixen a la base de dades de la nostra aplicació. A sota del títol, trobem un buscador que ens permet trobar més fàcilment el videojoc que estem buscant, podem escriure el nom complet i ens mostrarà només aquell resultat o, podem escriure només una part i ens mostrarà tots els resultats que coincideixin. Seguidament, trobem un menú desplegable que ens permet filtrar els videojocs per categoria. A sota trobem la llista de videojocs disponibles per als filtres que hem aplicat, si no posem cap filtre, trobarem tots els videojocs. Per cada resultat de videojoc, podem veure la seva imatge, el nom del videojoc, la categoria a la qual pertany i també tenim una icona clicable d’un ull que ens porta a la pàgina d’aquest videojoc. A la part inferior, trobem una icona amb un símbol “+”, clicant aquí, l’usuari pot accedir a presentar una nova proposta de videojoc.
A més l’administrador trobarà un botó a la part inferior esquerra amb un tic, que el permetrà anar al llistat de videojocs per verificar.

10.2.6. VISUALITZAR VIDEOJOC

viewVideogameAdmin

En la pantalla de visualitzar videojoc trobem la informació detallada del videojoc corresponent i un apartat de comentaris on trobem les ressenyes que han deixat els usuaris sobre aquest videojoc. La pantalla està dividida en dues parts, la zona superior és la dels detalls del videojoc. Aquí podem veure la imatge, el nom, la puntuació mitjana dels usuaris, el PEGI (edat recomanada), l’any de llançament, la categoria a la qual pertany, l’empresa creadora del videojoc, i una descripció del videojoc. A la zona superior dreta, trobem una icona en forma de cor que ens permet afegir aquest videojoc a la nostra biblioteca personal i, per tant, desar una ressenya. A la zona inferior de la pantalla, trobem el llistat de comentaris per aquest videojoc. Al costat del títol de “COMENTARIS”, trobem una icona amb el símbol “+”, el qual ens porta a afegir un videojoc a la biblioteca, és la mateixa funcionalitat que el botó amb el símbol del cor de la part superior. A sota del títol, trobem el llistat de comentaris on per cada comentari podem veure el nom de l’usuari que l’ha escrit, la puntuació que li ha posat i un comentari. L’administrador a més, té diverses opcions més. A la part superior a sota de la descripció, té un botó rosa per a poder modificar la informació del videojoc. A sota hi ha un botó vermell amb l’icona d’una brossa, aquí pot esborrar el videojoc.
En la secció de comentaris, l’administrador pot esborrar qualsevol comentari.

10.2.7. LLISTAT DE VIDEOJOCS PER VERIFICAR

verifyVideogamesList

En la pantalla de llistat de videojocs per validar, l’administrador pot veure una llista de totes les propostes de videojocs que els usuaris han fet. Aquesta llista es troba a sota del títol. Per a cada proposta podem trobar una imatge, el nom del videojoc i la seva categoria. A la dreta d’aquesta informació trobem una icona amb un ull, en clicar-la, anirem a la pantalla de verificar videojoc.

10.2.8. VERIFICAR VIDEOJOC

verifyVideogame

En la pantalla de verificar videojoc, l’administrador pot acceptar o eliminar la proposta feta per un usuari. Primer trobarà tota la informació: el nom, una imatge, l’edat recomanada, l’any de llançament, l’empresa que ha creat el videojoc, la categoria a la qual pertany i una descripció. A la part inferior hi ha dos botons, un verd per acceptar la proposta i un vermell per a eliminar-la.

10.2.9. LLISTAT D’USUARIS

listUsersAdmin

En la pantalla de llistar usuaris, l’usuari pot trobar una llista de tots els usuaris independentment que hagin estat validats o no. A sota del títol, trobem un espai per a realitzar una cerca personalitzada segons el nom d’usuari, en aquest espai podem escriure el nom d’usuari complet o només una part i l’aplicació ens mostrarà els resultats obtinguts. A sota d’aquest espai, està la llista d’usuaris, on cada ítem té la imatge de perfil (si l’usuari en té), el nom d’usuari i una icona clicable que ens permet navegar al perfil de l’usuari corresponent. Si accedim com a Administrador a sota de la barra de recerca trobarem dos botons, un per crear un usuari administrador i l’altre per verificar els nous usuaris que s’han registrat.

10.2.10. AFEGIR ADMINISTRADOR

addAdmin

En aquesta pantalla trobem un formulari que l’administrador ha d’omplir per a poder registrar nous administradors. Els camps que el componen són: nom d’usuari, nom, cognom, contrasenya, correu electrònic, telèfon, data de naixement i hi ha un camp per afegir una imatge de la galeria del telèfon.

10.2.11. LLISTAT D’USUARIS PER VERIFICAR

validateUsersList

En aquesta pantalla es mostrarà una llista de tots els usuaris que s’han registrat en la nostra aplicació i encara no han estat validats. Es mostrarà el nom de l’usuari i el seu avatar. Podrem accedir a la informació d’aquell usuari fent clic a la icona del costat dret de la targeta de l’usuari.

10.2.12. VERIFICAR USUARI

validateUser

En la pantalla de validar un usuari, l’administrador pot acceptar la validació d’un usuari o eliminar-lo. En aquesta pantalla trobem les dades de l’usuari registrat, una imatge de perfil, el nom d’usuari, nom, cognom, telèfon, data de naixement, tipus d’usuari (usuari o administrador) i l’estat del registre de l’usuari. A sota hi ha dos botons, validar usuari per acceptar el registre i un per eliminar a l’usuari.

10.2.13. VISUALITZAR USUARI

viewProfileAdmin

En la pantalla de consultar el perfil de l’usuari, podem trobar informació de l’usuari corresponent. Els camps que podem veure són la imatge de perfil, el nom d’usuari i el recompte de videojocs filtrats per acabats, jugant, aquells que es volen jugar i aquells que no s’han finalitzat. Al costat de la imatge de perfil a l’esquerra, hi ha un botó amb un llapis, que ens portarà a la pantalla de modificar el perfil de l’usuari. A sota del recompte de videojocs, trobem un botó que ens portarà a la llibreria de l’usuari.
L’administrador a més podra esborrar tots els perfils que no siguin el seu.

11. FOL

11.1. OBJECTIU DE DESENVOLUPAMENT SOSTENIBLE

Com a persones joves, ens envoltem contínuament d’estímuls dins del nostre àmbit d’oci que tot i que no som conscients de manera activa, ens perjudiquen com a societat. És el cas de comunitats i jocs poc inclusius que no sols no estan pensats perquè jugui tothom sinó que inciten a marginar a col·lectius. És per això que nosaltres volem incloure en la nostra idea d’aplicació, una biblioteca de videojocs, espais segurs on les desigualtats no tenen cabuda, seguint com a exemple, l’objectiu de desenvolupament sostenible número 10: reducció de les desigualtats.

La nostra idea és que quan un usuari iniciï l’aplicació i aparegui en la pàgina principal, trobarà un llistat de categories, on a part de les típiques etiquetes com poden ser “aventures”, “acció”, “shooters”, també trobarà algunes més inclusives com ara “educatius”, “accessibles”, “cultural i històric” o “diversitat”.

Dins la categoria d’educatius, ens agradaria incloure videojocs que puguin aportar valors tant ètics com acadèmics en els infants i joves. Pel que fa als videojocs accessibles, creiem que és important afegir experiencies per a persones amb discapacitats físiques o cognitives. En cultural i històric hi hauria videojocs que explorin la història i les cultures d’arreu del món des d’un punt de vista objectiu i fidel al lloc corresponent. I finalment en la categoria de diversitat, afegiríem videojocs que destaquen per la inclusió, ja sigui en una creació de personatges amb moltes possibilitats de personalització, en videojocs que explorin cultures diferents des del respecte, etc.

11.2. SUBVENCIONS I AJUTS PER AL NOSTRE PROJECTE

En la nostra tasca anterior, vam decidir que consideràvem prou important i adient per al nostre projecte l’addició de l’Objectiu de
Desenvolupament Sostenible número 10 “reducció de les desigualtats”.
Després de la recerca i, tenint en compte la nostra situació geogràfica, hem conclòs en què podríem beneficiar-nos (o sol·licitar) la següent subvenció:

La “Convocatòria General de Subvencions de l’Ajuntament de Barcelona 2025”, la qual dona suport a projectes que fomenten la cohesió social, la inclusió i la diversitat. El nostre projecte promou espais de jocs inclusius i accessibles apropant els videojocs a tothom.

Tot i això, hem vist algunes subvencions que creiem que de cara a un futur, podríem adaptar el nostre projecte per a ser aptes a obtenir-les.

Una idea que hem tingut és poder apropar la nostra aplicació a un públic més jove, adolescents, tot i que ara mateix tenim una categoria de videojocs educacionals, hem pensat en algun tipus de mode per a menors d’edat, on puguem garantir un espai segur per a aquests usuaris, d’aquesta manera podríem fer jornades de conscienciació a escoles o a espais socials. La nostra aplicació té un espai de socialització, reduint la ràtio d’edats podem assegurar un àmbit de conversació més inclusiu. Això ens podria fer aptes per a les “Subvencions per a l’enfortiment de l’economia social i solidària i per a la intercooperació en l’estratègia #ESSBCN2030 - ENFORTIM L’ESS 2024”.

11.3. IDENTITAT DIGITAL

11.3.1. ANNA

11.3.1.1. COMPARTIR
  • Linkedin ( poc )

  • Instagram ( mitjà )

  • Pinterest ( molt )

  • GitHub ( poc )

  • GitLab ( molt )

  • YouTube ( molt )

  • TikTok ( molt )

  • Discord ( molt )

  • Telegram ( molt )

  • WhatsApp ( poc )

11.3.1.2. INFORMATIVES
  • ChatGPT ( molt )

  • Google ( molt )

  • YouTube ( mitjà )

  • TikTok ( molt )

  • Wikipèdia ( molt poc )

  • W3Schools ( molt poc )

11.3.1.3. REFLEXIÓ
  • StackOverflow ( poc )

  • Notion ( poc )

  • Trello ( mitjà )

  • Reddit ( molt )

  • Youtube ( molt )

11.3.2. MARIO

11.3.2.1. COMPARTIR
  • Linkedin ( mitjà )

  • Instagram ( poc )

  • GitHub ( mitjà )

  • GitLab ( molt )

  • YouTube ( molt )

  • TikTok ( molt )

  • Twitter ( molt )

  • Discord ( molt )

  • Telegram ( poc )

  • WhatsApp ( mitjà )

11.3.2.2. INFORMATIVES
  • ChatGPT ( molt )

  • Google ( molt )

  • YouTube ( molt )

  • Twitch ( poc )

  • TikTok ( molt )

  • Wikipèdia ( mitjà )

  • W3Schools ( molt poc )

  • StackOverflow ( mitjà )

11.3.2.3. REFLEXIÓ
  • StackOverflow ( mitjà )

  • Notion ( poc )

  • Trello ( poc )

  • Reddit ( mitjà )

  • Youtube ( molt )

  • Twitch ( mitjà )

11.3.3. HÉCTOR

11.3.3.1. COMPARTIR
  • Instagram ( molt )

  • GitLab ( molt )

  • YouTube ( molt )

  • TikTok ( molt )

  • Discord ( molt )

  • WhatsApp ( poc )

11.3.3.2. INFORMATIVES
  • ChatGPT ( molt )

  • Copilot ( molt )

  • Gemini ( molt )

  • Google ( molt )

  • YouTube ( mitjà )

  • TikTok ( molt )

11.3.3.3. REFLEXIÓ
  • Trello ( molt )

  • Youtube ( molt )

11.3.4. YAIZA

11.3.4.1. COMPARTIR
  • GitHub ( poc )

  • GitLab ( molt )

  • YouTube ( molt )

  • Discord ( molt )

  • WhatsApp ( mitjà )

11.3.4.2. INFORMATIVES
  • ChatGPT ( mitjà )

  • Copilot ( mitjà )

  • Google ( molt )

  • YouTube ( mitjà )

  • TikTok ( mitjà )

  • Reddit ( poc )

11.3.4.3. REFLEXIÓ
  • Trello ( mitjà )

  • Reddit ( poc )

  • Youtube ( molt )

12. VIDEO PROMOCIONAL

13. PORTFOLIS

14. PROPOSTES DE MILLORA

Tenim una sèrie de propostes de millora per a la nostra aplicació que ens agradaria poder implementar a futur. Les nostres principals propostes són les següents.

  • Funció de seguiment entre usuaris: Per tal d’afegir un extra de socialització a la nostra aplicació, ens agradaria poder afegir un sistema on els usuaris puguin seguir a altres usuaris. Això podria venir acompanyat d’un sistema de notificacions, o una nova pantalla d’últimes notícies o de seguiment on puguis veure l’activitat recent de les persones a les quals segueixes.

  • Funció de xat: Continuant amb la proposta de millora anterior, creiem que podria ser beneficiós un xat, sigui entre tots els usuaris o privat. En cas que fos entre tots els usuaris, hi hauria moderadors dins del xat. En cas que fos privat, hi hauria d’haver una nova funcionalitat d’incidències en cas que es donin situacions poc afortunades entre dos usuaris.

  • Servidor en el núvol: Per a portar la nostra aplicació als telèfons mòbils, haurem de fer servir servidors al núvol, ja que actualment depenem d’un servidor local.

  • Notificacions per correu electrònic: Per a aportar més seguretat, faríem la recuperació de contrasenya mitjançant un enllaç al correu electrònic. També ho faríem servir per a enviar notificacions com per exemple, si un administrador ha hagut de modificar el perfil d’un usuari o si s’ha esborrat algun comentari.

15. CONCLUSIÓ

Després d’haver estat treballant aproximadament un mes amb android studio i Kotlin, trobem que són dues eines molt intuïtives i senzilles de fer servir que ens aporten moltes facilitats i oportunitats. Així i tot, trobem que android studio té moltes àrees millorables com per exemple el seu rendiment o la pantalla de resolució de conflictes de merge entre d’altres.