DAM2 M06 UF3 Proyecto (Curso 2018-2019)

De Wiket
La revisió el 16:23, 29 març 2019 per Lzabala (discussió | contribucions)
(dif.) ← Versió més antiga | Versió actual (dif.) | Versió més nova → (dif.)
Salta a la navegació Salta a la cerca

volver a M06 Acceso a datos

Normativa

  • Tipus de Projecte: Individual
  • Lliurament: Moodle
  • Requereix demo: Si
  • Requereix prova pràctica: Si
  • Avaluació: Proyecte 70% (demo 30%, codi 40%), prova pràctica 30% (requisit >=5 per fer mitja)

Generador de baralles de cartes

Descripció

  • Es demana una aplicació per crear baralles de cartes d'un joc estil "Magic/Pokemon", la colecció de cartes es troba emmagatzemada en una base de dades eXist-db en format XML, el nom del ficher es card_collection.xml, la aplicació ha de permetre:
    • Carregar la col·lecció de cartes
    • Crear baralles cumplint amb les limitacions
    • Posar nom a les baralles
    • Guardar les baralles creades en MongoDB
    • Carregar baralles creades i fer modificacions

Especificacions

  • 1. L'aplicació ha de permetre mitjançant botons:
    • Botó1: Load cards, ha de permetre carregar les cartes emmagatzemades en una base de dades exist-db en format xml (consulta el format a l'apartat especificacions no funcionals)
    • Botó2: Rnd Deck, ha de generar una barralla de cartes aleatoria respectant la restricció de valors de cartes definit a l'apartat especificacions no funcionals
    • Botó3: Save Deck, ha de permetre guarda una barralla de cartes creada o per selecció manual de l'usuari o pel botó 2 en una base de dades MongoDB, una vegada guardada la baralla, ha de sortir un missatge per informar a l'usuari i netejar el panell de baralles.
    • Botó4: ->, ha de permetre moure una o més d'una carta de la col·lecció a la baralla
    • Botó5: <-, ha de permetre moure una o més d'una carta de la baralla a la col·lecció
    • Botó6 + input: Load Deck, carrega una baralla introduint en el input el nom de la baralla, si no existeix s'ha d'indicar a l'usuari, si existeix es carrega la baralla i permet fer modificacions i guardar-les
  • 2. Mitjançant dos panells (un per mostrar les cartes carregades de la col·lecció i aun altre per mostrar les cartes seleccionades per una baralla) ha de permetre moure cartes d'un costat cap a l'altre.
  • 3. Abans de guardar una baralla l'usuari ha de posar-li un nom a la baralla (amb un input o el que vulgueu)
  • 4. No es poden guardar 2 baralles amb el mateix nom

Especificacions NO funcionals

  1. Heu d'implementar l'accés a les bases de dades amb el patró de diseny DAO
  2. Una baralla no pot tenir un valor superior a 20 (la suma del value de les cartes ha de ser <= 20)
  3. Format d'una carta a la col·lecció:
    <cards>
      <card id=1>
        <name>Quimera</name>
        <summonCost>3</summonCost>
        <attack>5</attack>
        <defense>3</defense>
        <value>4</value>
      </card>
    </cards>
    
  4. Format d'una baralla:
    { "DeckName":"Deck1",
      "DeckValue: 6,
      "Deck":[
        {"cardId":1,"name":"Quimera","summonCost":3,"attack":5,"defense":3,"value":4},
        {"cardId":2,"name":"HobGoblin","summonCost":1,"attack":2,"defense":2,"value":2}
    ]}
    
  5. La lògica de l'aplicació ha de ser independent de l'accés a dades

Temporització

  • Data d'inici: 18/03/2019
  • Data de fi: 25/03/2019 (abans de les 16h)