Diferència entre revisions de la pàgina «Projecte Configurador de vehicles»

De Wiket
Salta a la navegació Salta a la cerca
(Es crea la pàgina amb «'''volver a''' M06 Acceso a datos ==Product Backlog== <ul> <li>Feature 4: Para acceder a la aplicación (versión empleado) introducir nombre de empleado válido *...».)
 
 
(68 revisions intermèdies per 2 usuaris que no es mostren)
Línia 1: Línia 1:
'''volver a''' [[M06 Acceso a datos]]
 
==Product Backlog==
 
<ul>
 
<li>Feature 4: Para acceder a la aplicación (versión empleado) introducir nombre de empleado válido
 
*'''Como''' usuario
 
*'''Yo Quiero''' que si en la configuración está a True la clave ''employee_version''
 
*'''Y''' la clave ''employee_password'' contiene un password válido (que cumple el patrón nombre_empleado__mes__año)
 
*'''Y''' el nombre introducido es un nombre contenido en la lista ''employee_list''
 
*'''De manera que''' se valida y accedemos a la pantalla "introducción datos cliente" con un texto en parte superior central de esta y todas las pantallas posteriores con el texto indicativo de que es la versión para empleados
 
</li>
 
<li>Feature 5: Rellenado de datos del cliente (Fase 1)
 
*'''Como''' usuario
 
*'''Yo Quiero''' poder introducir los datos del cliente<sup>|3|</sup> (nombre, apellidos, dni)
 
*'''De manera que''' al terminar de introducir los datos del cliente y clicar el botón continuar los datos quedan almacenados en el fichero fs_employee.txt
 
*'''Criterios de aceptación:''' al pasar a la Fase 2 de configuración de vehículos llamada "Selección de modelo" los datos introducidos del cliente aparecen el documento fs_employee.txt
 
</li>
 
<li>Feature 6: Selección de modelo (Fase 2)
 
*'''Como''' usuario
 
*'''Yo Quiero''' Seleccionar un modelo de vehículo para configurar, donde los modelos se cargarán desde el fichero especificado en cv_config.xml
 
*'''De manera que''' teniendo a disposición todos los modelos disponibles seleccionamos el elegido y continuamos a la Fase 3. La selección aparece reflejada en el documento fs_employee.txt
 
*'''Criterios de aceptación'''Al seleccionar el modelo de vehículo y clicar el botón continuar la selección queda reflejada en el fichero fs_employee.txt
 
</li>
 
<li>Feature 7: Selección de motor (Fase 3)
 
*'''Como''' usuario
 
*'''Yo Quiero''' Seleccionar el motor del vehículo, donde los diferentes motores disponibles se cargarán desde el fichero especificado en cv_config.xml
 
*'''De manera que''' teniendo a disposición todos los motores disponibles seleccionamos uno y continuamos a la Fase 4.
 
*'''Criterios de aceptación''' Al seleccionar el motor y clicar el botón continuar la selección queda reflejada en el fichero fs_employee.txt
 
</li>
 
<li>Feature 8: Selección de accesorios (Fase 4)
 
*'''Como''' usuario
 
*'''Yo Quiero''' Seleccionar uno o varios accesorios del vehículo, donde los diferentes accesorios disponibles se cargarán desde el fichero especificado en cv_config.xml
 
*'''De manera que''' teniendo a disposición todos los accesorios disponibles seleccionamos uno o varios y continuamos a la Fase 5.
 
*'''Criterios de aceptación''' Al seleccionar los accesorios y clicar el botón continuar la selección queda reflejada en el fichero fs_employee.txt
 
</li>
 
<li>Feature 9: Visualización resumen y confirmación (Fase 5)
 
*'''Como''' usuario
 
*'''Yo Quiero''' Visualizar un resumen de todas las opciones seleccionadas y el precio total del vehículo configurado
 
*'''De manera que''' teniendo un resumen de todas las selecciones realizadas y el precio final al clicar el botón confirmar configuración aparece el mensaje "Configuración Finalizada" .
 
*'''Criterios de aceptación''' Al clicar el botón confirmar configurarión la selección queda reflejada en el fichero fs_employee.txt
 
</li>
 
<li>Feature 10: Retroceder a una fase anterior
 
*'''Como''' usuario
 
*'''Yo Quiero''' un botón que me permita retroceder a una fase anterior de la configuración siempre que no esté en la Fase 1
 
*'''De manera que''' al clicar el botón retroceder se elimine del fichero fs_employee.txt la fase de la cual se procedia.
 
*'''Criterios de aceptación''' al clicar el botón retroceder se visualiza la Fase anterior con los datos seleccionados anteriormente. En el fichero fs_employee.txt se elimina la información de la Fase de cual se procedia (Ej: Si en la fase 3 clicamos el botón retroceder, volvemos a la fase 2 y visualizamos la selección de la fase 2 y el en el fichero fs_employee se elimina la información de la fase 3)
 
 
</li>
 
</ul>
 
==Anexos==
 
<ol>
 
<li>Contenido del fichero cv_config.xml:
 
* '''Clave''': language, '''valores''' es, ca, en etc. Esta clave sirve para identificar el idioma en el que se quiere cargar el programa los valores (uno o más de uno) pueden estar separados por ',' la aplicación leerá los valores e intentará utilizar el primer idioma que encuentre, en caso de no estar disponible pasará al siguiente hasta acabar con todos los valores. Este valor puede ser nulo.
 
* '''Clave''': language_default, '''valores''' es o ca o en, etc. Esta clave define el idioma por defecto y solo puede ser un único valor. En caso que la clave ''language'' sea nulo o se hayan intentado aplicar todos los idiomas proporcionados por la clave y no haya sido posible el idioma definido en este campo será el utilizado
 
* '''Clave''': postfix_language_file_name '''valor un string que especifica el patrón para identificar los ficheros de idioma. (Ejemplo: postfix_language_file_name: _cv.language buscará ficheros con el formato es_cv.language, ca_cv.language o en_cv.language)
 
* '''Clave''': version, '''valores''' un string con el siguiente formato #.#.# donde # = un número entre 0 y 9. El primer número solo se usará para cambios o modificaciones de las funcionales principales, el segundo número para ampliación de funcionalidades y el tercer número para inidicar corrección de errores
 
* '''Clave''': language_files_path, '''valores''' la ruta donde estarán los ficheros de idiomas
 
* '''Clave''': car_configuration_path, '''valor''' la ruta donde encontrar el fichero con las opciones de configuración de los vehículos
 
* '''Clave''': car_configuration_file_name, '''valor''' el nombre del fichero con las opciones de configuración de los vehículos
 
* '''Clave''': employee_list, valores''' lista separada por ',' con los nombres de los empleados que pueden acceder a la aplicación
 
* '''Clave''': employee_version, '''valores''' True o False, si es False es la versión standart de la aplicación la que utilizaría un comercial para venderle un vehículo a un cliente. Si es True y la clave ''employee_password'' es correcto se aplicará un 20% de descuento al precio final y se indicará arriba en el centro de ventana que estas en la versión para empleados.
 
*'''Clave''': employee_password, '''valor un string que sigue el formato: nombre_empleado__mes__año
 
*'''Clave''': specifications_file_path, '''valor''' un string con la ruta donde se guardarán los presupuestos generados, el nombre y formato del documento presupuesto<sup>|3|</sup> en el apartado anexos
 
</li>
 
<li>Formato de los ficheros de idiomas:
 
*'''Nombre:''' idioma_cv.language
 
*'''Formato:''' Clave-Valor, importante en todos los ficheros de idioma la clave ha de ser la misma. Ejemplo: clave: lbl_user_access valor es: "Nombre de usuario", valor ca: "Nom d'usuari", valor en: "User name"
 
</li>
 
<li>Nombre y formato del fichero de presupuestos:
 
*'''Nombre:''' fs_employee.txt
 
*'''Formato''' un fichero de texto con el resumen de los datos seleccionados en la aplicación desde la fase 0 a la fase final. En cada linea un dato en el formato clave:valor. Ejemplo: nombre: Leandro Hernán Zabala Iglesias. Los datos de cada fase están separados por una linea de guiones (------)
 
</li>
 
</ol>
 
 
[[Fitxer:globos.jpeg|dreta]]
 
 
 
== Introducció ==
 
== Introducció ==
 
===Configurador de vehículos===
 
===Configurador de vehículos===
Línia 79: Línia 4:
 
<br>
 
<br>
 
Para realizar esta tarea se creará una lista priorizada de características de la aplicación.
 
Para realizar esta tarea se creará una lista priorizada de características de la aplicación.
<br>
 
 
==Requeriments ==
 
  
  
Línia 87: Línia 9:
  
 
==Product Backlog==
 
==Product Backlog==
 +
<ol>
 +
<li><del>A l'inici de l'apliació ha de carregar les configuracions inicials d'un fitxer xml anomenat cv_config.xml</del></li>
 +
<li><del>Genera una classe ConfigurationLoader que implementi el patró de diseny singleton que contigui totes las configuracions llegides des de cv_config.xml</del></li>
 +
<li><del>Implementar i llegir les claus: car_configuration_path, car_configuration_file_name, employee_list, employee_password, specifications_file_path</del></li>
 +
<li><del>La primera pantalla de l’aplicació serveix pel logueixar-se.</del> <br><br>
 +
[[Fitxer: Pantalla1.jpg | frameless | 300px ]]</li>
 +
<li><del>comprovarà el passsword quan es polsi el botó ENTRAR.</del></li>
 +
<li><del>Per accedir a l'apliació s'ha d'introduir un nom vàlid, es a dir, un nom que aparegui a la llista employee_list del fitxer de configuració. Si el nom no apareix a la llista mostrar un missatge de error.</del></li>
 +
<li><del>Implementar i llegir les claus: version, employee_version</del></li>
 +
<li><del>La segona pantalla és per introduir les dades del client</del> <br><br>
 +
[[Fitxer: Pantalla2.jpg | frameless | 400px ]]</li>
 +
<li><del>Els camps que porten * són obligatoris i no es pot passar a la següent pantalla si estan en blanc.</del></li>
 +
<li><del>Només es pot tenir seleccionat un gènere.</del></li>
 +
<li><del>Per accedir a l'aplicació a la versió per empleats a més del nom vàlid de l'empleat ha de introduir el password correcte i ha de estar activa la clau employee_version del fitxer de config</del></li>
 +
<li><del>La tercera pantalla serveix per escollir el model de cotxe de la marca SEAT:</del><br><br>
 +
[[Fitxer: Pantalla3.jpg | frameless | 400px ]]<br></li>
 +
<li><del>L'aplicació ha de accedir al fitxer de configuració de vehicle que es un fitxer xml amb les dades de MODEL, MOTOR i ACCESORIS disponibles. Al menys hi ha d'haver 4 models (id, nom, descripció, imatge_nom, preu) 2 motors(id, nom, descripció, imatge_nom, preu) i 6 accesoris(id, nom, descripció, imatge_nom, preu, models_disponibles)</del></li>
 +
<li><del>Implementa el patró de diseny DAO per accedir al fitxer xml de configuració de vehicle. La implementació ha de permetre afegir, treure o modificar dades del fitxer en temps d'execució</del></li>
 +
<li><del>La part esquerra són botons amb la imatge del diferents model. Al prémer un , apareix a la part central la imatge amb bona resolució i un text resumint les seves característiques en un JTextArea.</del></li>
 +
<li><del>A sota els botons per continuar i tornar enrere amb el comportament normal. Per defecte, un model s’ha de considerar seleccionat i és el que apareix inicialment a la foto.</del></li>
 +
<li><del>A la quarta pantalla, apareix els submodels del model escollit a  la pantalla anterior. Es mostra la informació en un JList ( cada opció és un String)</del> <br><br>
 +
[[Fitxer: Pantalla4.jpg | frameless | 400px ]]</li>
 +
<li><del>En la següent es seleccionen els extres que es volen</del> <br><br>
 +
[[Fitxer: Pantalla5.jpg | frameless | 400px ]]
 +
</li>
 +
<li><del>Al finalitzar es mostrarà una pantalla resum amb el resum del cotxe seleccionat i el preu final.</del></li>
 +
<li><del>A mesura que es van seleccionant les opcions de configuració s'han d'anar guardant en el fitxer resum fs_employee.txt indicant a la primera linea del fitxer "Dades temporals" una vegada hem acabat la configuració s'ha de borrar la linea "Dades temporals"</del></li>
 +
<li><del>Quan s'acaba la configuració s'ha de generar el fitxer de presupost en format XML</del></li>
 +
<li><del>Quan s'acaba la configuració als fitxers fs_employee.txt i fs_employee.xml s'ha de canviar el nom a fs_employee_data_i_hora.txt i fs_employee_data_i_hora.xml</del></li>
 +
<li><del>Quan el camp de password té el focus, si es clica la tecla ENTER ha de comprovar el password.</del> </li>
 +
<li><del>A partit d’estar logueixat, a la cantonada dreta superior de cada finestra, apareixerà el “Usuario: ‘nom_de_l’usuari’ “</del></li>
 +
<li><del>El camp de correu electrònic , té un format propi de les adreces electròniques i no s’accepta res que no pugui ser un mail.</del></li>
 +
<li><del>Data de naixement obre un JCalendar. </del></li>
 +
<li><del>El botó “GUARDAR” fa les mateixes comprovacions que per passar a la següent pantalla.</del></li>
 +
<li><del>SI l’operació de guardar dades ha anat bé, mostrarà aquest fet amb un JOptionPane.</del></li>
 +
<li><del>El comportament a l’hora de tancar aquesta finestra ha d’oferir la possibilitat de sortir gravant les dades, sortir sense gravar i no sortir. Ho podeu fer com  vulgueu.
 +
Una possibilitat és: Si tanco aquesta finestra em demana si vull desar les dades amb un JOptionPane amb opció OK.CANCEL. Si premo OK, es desen  i em demana de nou si vull sortir. Si diu CANCEL, ens quedem i si diem Ok sortim.
 +
Si al primer JOptionPane,  quan pregunta si vull desar les dades, he dit CANCEL,  ens pregunta un altre cop si volem Sortir sense desar. Si diem CANCEL, ho deixa tot obert i si diem que sí, tanca i no s’hauran desat les dades.</del></li>
 +
<li><del>Totes les finestres tenen un títul adequat i la icona del Esteve Terradas.</del></li>
 +
<li><del>Crear fitxer de textes de l'apliació tal i com s'exposa a les especificacions no funcionals</del></li>
 +
<li><del>Implementar i llegir les claus: language, language_default, postfix_language_file_name per implementar el multillenguatge</del></li>
 +
<li><del>S'han de carregar els textos de l'aplicació segons el valor configurat al fitxer de configuració (cv_config.xml)</del></li>
 +
<li><del>Permetre que l'aplicació tingui tots el textes en Català o Castellà</del></li>
 +
<li><del>Afegir l'anglès com a idioma a l'aplicació</del></li>
 +
<li><del>A la pantalla resum s'ha d'afegir un botó per anar a crear un presupost nou que ens porti a la pantalla d'introducció de dades del client</del>
 +
<li><del>Al finalitzar un presupost i renombrar els fitxers fs_employee.txt i fs_employee.xml, hem de crear el fitxer fs_employee.txt i deixar-lo vuit</del></li>
 +
<li><del>Una vegada fet el login a l'aplicació, s'ha de comprobar si el fitxer que emmagatzema dades temporals (fs_employee.txt) té dades, si es així hem de carregar l'aplicació amb les dades temporals, sino continuem com fins ara</del></li>
 +
<li><del>Si hi ha dades al fitxer fs_employee.txt ha de sortir un missatge informant que hi ha dades temporals i si volem carregar-les. Si es que si carreguem les dades i accedim directament a la pantalla corresponent, si es que no esborrem el contigut del fitxer</del></li>
 +
<li><del>La versió del empleat queda desahibilitada, afegirem per configuració la clau (descompte) els valors nomès poden ser positius i s'indicarà en percentatge, el descompte màxim es d'un 21%</del></li>
 +
<li>Crea una clau (codis_descomptes) al fitxer de config que emmagatzemi tots els codis que son válids per aplicar un descompte</li>
 +
<li> A la pantalla d'accessoris crea un apartat per introduir un codi de descompte, si aquest es troba en el llistat, aplica el descompte corresponent</li>
 +
<li>Si es configura algun descompte més gran que 21% la aplicació ha de donar el missatge: "Ha hagut un problema amb el codi de descompte, si us plau, contacta amb l'administrador de l'aplicació</li>
 +
</ol>
 
=== Especificacions funcionals ===
 
=== Especificacions funcionals ===
* M6: Accès a dades
+
==== M6: Accès a dades====
** A l'inici de l'apliació ha de carregar les configuracions inicials d'un fitxer xml anomenat cv_config.xml amb les claus-valors detallades a les especificacions NO funcionals
+
* A l'inici de l'apliació ha de carregar les configuracions inicials d'un fitxer xml anomenat cv_config.xml
** S'han de carregar els textos de l'aplicació segons el valor configurat al fitxer de configuració (cv_config.xml)
+
* Genera una classe ConfigurationLoader que implementi el patró de diseny singleton que contigui totes las configuracions llegides des de cv_config.xml
** Per accedir a l'apliació s'ha d'introduir un nom vàlid, es a dir, un nom que aparegui a la llista employee_list del fitxer de configuració. Si el nom no apareix a la llista mostrar un missatge de error.
+
* Implementar i llegir les claus: car_configuration_path, car_configuration_file_name, employee_list, employee_password, specifications_file_path
* M7: Disseny d'interficíes
+
* L'aplicació ha de accedir al fitxer de configuració de vehicle que es un fitxer xml amb les dades de MODEL, MOTOR i ACCESORIS disponibles. Al menys hi ha d'haver 4 models (id, nom, descripció, imatge_nom, preu) 2 motors(id, nom, descripció, imatge_nom, preu) i 6 accesoris(id, nom, descripció, imatge_nom, preu, models_disponibles)
* M8: Programació multimedia i dispositius mòbils
+
* Implementa el patró de diseny DAO per accedir al fitxer xml de configuració de vehicle. La implementació ha de permetre afegir, treure o modificar dades del fitxer en temps d'execució
 +
* Crear fitxer de textes de l'apliació tal i com s'exposa a les especificacions no funcionals
 +
* Permetre que l'aplicació tingui tots el textes en Català o Castellà
 +
* Implementar i llegir les claus: language, language_default, postfix_language_file_name per implementar el multillenguatge
 +
* Implementar i llegir les claus: version, employee_version
 +
* S'han de carregar els textos de l'aplicació segons el valor configurat al fitxer de configuració (cv_config.xml)
 +
* Per accedir a l'apliació s'ha d'introduir un nom vàlid, es a dir, un nom que aparegui a la llista employee_list del fitxer de configuració. Si el nom no apareix a la llista mostrar un missatge de error.
 +
* Per accedir a l'aplicació a la versió per empleats a més del nom vàlid de l'empleat ha de introduir el password correcte i ha de estar activa la clau employee_version del fitxer de config
 +
* Afegir l'anglès com a idioma a l'aplicació
 +
* A mesura que es van seleccionant les opcions de configuració s'han d'anar guardant en el fitxer resum fs_employee.txt indicant a la primera linea del fitxer "Dades temporals" una vegada hem acabat la configuració s'ha de borrar la linea "Dades temporals"
 +
* Quan s'acaba la configuració s'ha de generar el fitxer de presupost en format XML
 +
* Quan s'acaba la configuració als fitxers fs_employee.txt i fs_employee.xml s'ha de canviar el nom a fs_employee_data_i_hora.txt i fs_employee_data_i_hora.xml
 +
*Al finalitzar un presupost i renombrar els fitxers fs_employee.txt i fs_employee.xml, hem de crear el fitxer fs_employee.txt i deixar-lo vuit
 +
*Una vegada fet el login a l'aplicació, s'ha de comprobar si el fitxer que emmagatzema dades temporals (fs_employee.txt) té dades, si es així hem de carregar l'aplicació amb les dades temporals, sino continuem com fins ara
 +
*Si hi ha dades al fitxer fs_employee.txt ha de sortir un missatge informant que hi ha dades temporals i si volem carregar-les. Si es que si carreguem les dades i accedim directament a la pantalla corresponent, si es que no esborrem el contigut del fitxer
 +
*La versió del empleat queda desahibilitada, afegirem per configuració la clau (descompte) els valors nomès poden ser positius i s'indicarà en percentatge, el descompte màxim es d'un 21%
 +
*Crea una clau (codis_descomptes) al fitxer de config que emmagatzemi tots els codis que son válids per aplicar un descompte
 +
*Si es configura algun descompte més gran que 21% la aplicació ha de donar el missatge: "Ha hagut un problema amb el codi de descompte, si us plau, contacta amb l'administrador de l'aplicació
  
<br>
+
====M7: Disseny d'interficíes====
 +
*General:
 +
**Totes les finestres tenen un títul adequat i la icona del Esteve Terradas.
 +
**La finestra principal no es tanca mai ( obviament ) però les altres es van tancant a mesura que passem a la següent.
 +
*'''Pantalles'''
 +
**1. PRIMERA PANTALLA.
 +
***La primera pantalla de l’aplicació serveix pel logueixar-se.
 +
***[[Fitxer: Pantalla1.jpg | frameless | 300px ]]
 +
*** Quan el camp de password té el focus, si es clica la tecla ENTER ha de comprovar el password.
 +
*** Igualment comprovarà el passsword quan es polsi el botó ENTRAR.
 +
*** A partit d’estar logueixat, a la cantonada dreta superior de cada finestra, apareixerà el “Usuario: ‘nom_de_l’usuari’ “
 +
**2. SEGONA PANTALLA. <br>
 +
***La segona pantalla és per introduir les dades del client <br><br>
 +
***[[Fitxer: Pantalla2.jpg | frameless | 400px ]]
 +
*** Els camps que porten * són obligatoris i no es pot passar a la següent pantalla si estan en blanc.
 +
*** El camp de correu electrònic , té un format propi de les adreces electròniques i no s’accepta res que no pugui ser un mail.
 +
*** Només es pot tenir seleccionat un gènere.
 +
*** Data de naixement obre un JCalendar.
 +
*** El botó “GUARDAR” fa les mateixes comprovacions que per passar a la següent pantalla.
 +
*** SI l’operació de guardar dades ha anat bé, mostrarà aquest fet amb un JOptionPane.
 +
*** El comportament a l’hora de tancar aquesta finestra ha d’oferir la possibilitat de sortir gravant les dades, sortir sense gravar i no sortir. Ho podeu fer com  vulgueu.
 +
***Una possibilitat és: Si tanco aquesta finestra em demana si vull desar les dades amb un JOptionPane amb opció OK.CANCEL. Si premo OK, es desen  i em demana de nou si vull sortir. Si diu CANCEL, ens quedem i si diem Ok sortim. Si al primer JOptionPane,  quan pregunta si vull desar les dades, he dit CANCEL,  ens pregunta un altre cop si volem Sortir sense desar. Si diem CANCEL, ho deixa tot obert i si diem que sí, tanca i no s’hauran desat les dades
 +
**3. TERCERA PANTALLA.
 +
***La tercera pantalla serveix per escollir el model de cotxe de la marca SEAT:
 +
***[[Fitxer: Pantalla3.jpg | frameless | 400px ]]
 +
***La part esquerra són botons amb la imatge del diferents model. Al prémer un , apareix a la part central la imatge amb bona resolució i un text resumint les seves característiques en un JTextArea.
 +
***A sota els botons per continuar i tornar enrere amb el comportament normal. Per defecte, un model s’ha de considerar seleccionat i és el que apareix inicialment a la foto.
 +
**4. QUARTA PANTALLA.
 +
***A la quarta pantalla, apareix els submodels del model escollit a  la pantalla anterior. Es mostra la informació en un JList ( cada opció és un String)
 +
***[[Fitxer: Pantalla4.jpg | frameless | 400px ]]
 +
**5. CINQUENA PANTALLA. <br>
 +
***En la següent es seleccionen els extres que es volen
 +
***[[Fitxer: Pantalla5.jpg | frameless | 400px ]]
 +
**6. SEXTA PANTALLA <br>
 +
***Al finalitzar es mostrarà una pantalla resum amb el resum del cotxe seleccionat i el preu final
  
 
=== Especifiacions no funcionals ===
 
=== Especifiacions no funcionals ===
Línia 110: Línia 136:
 
* '''Clave''': employee_list, valores''' lista separada por ',' con los nombres de los empleados que pueden acceder a la aplicación
 
* '''Clave''': employee_list, valores''' lista separada por ',' con los nombres de los empleados que pueden acceder a la aplicación
 
* '''Clave''': employee_version, '''valores''' True o False, si es False es la versión standart de la aplicación la que utilizaría un comercial para venderle un vehículo a un cliente. Si es True y la clave ''employee_password'' es correcto se aplicará un 20% de descuento al precio final y se indicará arriba en el centro de ventana que estas en la versión para empleados.
 
* '''Clave''': employee_version, '''valores''' True o False, si es False es la versión standart de la aplicación la que utilizaría un comercial para venderle un vehículo a un cliente. Si es True y la clave ''employee_password'' es correcto se aplicará un 20% de descuento al precio final y se indicará arriba en el centro de ventana que estas en la versión para empleados.
*'''Clave''': employee_password, '''valor un string que sigue el formato: nombre_empleado__mes__año
+
*'''Clave''': employee_password, valores''' lista separada por ',' con los passwords de los empleados que pueden acceder a la aplicación
 
*'''Clave''': specifications_file_path, '''valor''' un string con la ruta donde se guardarán los presupuestos generados, el nombre y formato del documento presupuesto<sup>|3|</sup> en el apartado anexos
 
*'''Clave''': specifications_file_path, '''valor''' un string con la ruta donde se guardarán los presupuestos generados, el nombre y formato del documento presupuesto<sup>|3|</sup> en el apartado anexos
 +
</li>
 +
<li>Formato de los ficheros de idiomas:
 +
*'''Nombre:''' idioma_cv.language
 +
*'''Formato:''' Clave-Valor, importante en todos los ficheros de idioma la clave ha de ser la misma. Ejemplo: clave: lbl_user_access valor es: "Nombre de usuario", valor ca: "Nom d'usuari", valor en: "User name"
 +
</li>
 +
<li>Nombre y formato del fichero de presupuestos:
 +
*'''Nombre:''' fs_employee.txt
 +
*'''Formato''' un fichero de texto con el resumen de los datos seleccionados en la aplicación desde la fase 0 a la fase final. En cada linea un dato en el formato clave:valor. Ejemplo: nombre: Leandro Hernán Zabala Iglesias. Los datos de cada fase están separados por una linea de guiones (------)
 +
</li>
 +
<li>Nombre y formato del fichero de presupuestos:
 +
*'''Nombre:''' fs_employee.xml
 +
*'''Formato''' un fichero en formato xml con el resumen de los datos seleccionados en la aplicación desde la fase 0 a la fase final.
 
</li>
 
</li>
 
</ol>
 
</ol>
Línia 117: Línia 155:
 
<br>
 
<br>
  
 
+
== Definition of Done (DOD) ==
== Definition of Done (DOF) ==
 
 
# Tasca implementada
 
# Tasca implementada
 
# Tasca testejada
 
# Tasca testejada
Línia 125: Línia 162:
  
 
<br>
 
<br>
 +
 
==Gestió de projecte==
 
==Gestió de projecte==
=== Sprint #1 (27-30 hores)===
+
=== Sprint #1 (18 hores) 17/10/18 -- 24/10/18===
 
+
* 1.A l'inici de l'apliació ha de carregar les configuracions inicials d'un fitxer xml anomenat cv_config.xml
<br>
+
* 2.Genera una classe ConfigurationLoader que implementi el patró de diseny singleton que contigui totes las configuracions llegides des de cv_config.xml
 +
* 3.Implementar i llegir les claus: car_configuration_path, car_configuration_file_name, employee_list, employee_password, specifications_file_path
 +
* 4.La primera pantalla de l’aplicació serveix pel logueixar-se.
 +
* 5.comprovarà el passsword quan es polsi el botó ENTRAR.
 +
* 6.Per accedir a l'apliació s'ha d'introduir un nom vàlid, es a dir, un nom que aparegui a la llista employee_list del fitxer de configuració. Si el nom no apareix a la llista mostrar un missatge de error.
 +
* 7.Implementar i llegir les claus: version, employee_version
 +
* 8.La segona pantalla és per introduir les dades del client
 +
* 9.Els camps que porten * són obligatoris i no es pot passar a la següent pantalla si estan en blanc.
 +
* 10.Només es pot tenir seleccionat un gènere.
 +
* 11.Per accedir a l'aplicació a la versió per empleats a més del nom vàlid de l'empleat ha de introduir el password correcte i ha de estar activa la clau employee_version del fitxer de config
 +
* 12.La tercera pantalla serveix per escollir el model de cotxe de la marca SEAT
 +
* 13.L'aplicació ha de accedir al fitxer de configuració de vehicle que es un fitxer xml amb les dades de MODEL, MOTOR i ACCESORIS disponibles. Al menys hi ha d'haver 4 models (id, nom, descripció, imatge_nom, preu) 2 motors(id, nom, descripció, imatge_nom, preu) i 6 accesoris(id, nom, descripció, imatge_nom, preu, models_disponibles)
  
=== Sprint #2 (27-30 hores)===
+
=== Sprint #2 (24 hores) 24/10/18 -- 7/11/18===
 
+
* a.Finalitzar les tasques del Sprint 1 (2 hores)
<br>
+
* 14.Implementa el patró de diseny DAO per accedir al fitxer xml de configuració de vehicle. La implementació ha de permetre afegir, treure o modificar dades del fitxer en temps d'execució(2 hores)
 +
* 15.La part esquerra són botons amb la imatge del diferents model. Al prémer un , apareix a la part central la imatge amb bona resolució i un text resumint les seves característiques en un JTextArea.(1 hora)
 +
* 16.A sota els botons per continuar i tornar enrere amb el comportament normal. Per defecte, un model s’ha de considerar seleccionat i és el que apareix inicialment a la foto.(1 hora)
 +
* 17.A la quarta pantalla, apareix els submodels del model escollit a la pantalla anterior. Es mostra la informació en un JList ( cada opció és un String)(2 hores)
 +
* 18.En la següent es seleccionen els extres que es volen(3 hores)
 +
* 19.Al finalitzar es mostrarà una pantalla resum amb el resum del cotxe seleccionat i el preu final.(1 hora)
 +
* 20.A mesura que es van seleccionant les opcions de configuració s'han d'anar guardant en el fitxer resum fs_employee.txt indicant a la primera linea del fitxer "Dades temporals" una vegada hem acabat la configuració s'ha de borrar la linea "Dades temporals"(2 hores)
 +
* 21.Quan s'acaba la configuració s'ha de generar el fitxer de presupost en format XML(2 hores)
 +
* 22.Quan s'acaba la configuració als fitxers fs_employee.txt i fs_employee.xml s'ha de canviar el nom a fs_employee_data_i_hora.txt i fs_employee_data_i_hora.xml(1 hora)
 +
* 23.Quan el camp de password té el focus, si es clica la tecla ENTER ha de comprovar el password.(1 hora)
 +
* 25.El camp de correu electrònic , té un format propi de les adreces electròniques i no s’accepta res que no pugui ser un mail.(1 hora)
 +
* 27.El botó “GUARDAR” fa les mateixes comprovacions que per passar a la següent pantalla.(1 hora)
 +
* 28.SI l’operació de guardar dades ha anat bé, mostrarà aquest fet amb un JOptionPane.(1 hora)
 +
* 29.El comportament a l’hora de tancar aquesta finestra ha d’oferir la possibilitat de sortir gravant les dades, sortir sense gravar i no sortir. Ho podeu fer com vulgueu. Una possibilitat és: Si tanco aquesta finestra em demana si vull desar les dades amb un JOptionPane amb opció OK.CANCEL. Si premo OK, es desen i em demana de nou si vull sortir. Si diu CANCEL, ens quedem i si diem Ok sortim. Si al primer JOptionPane, quan pregunta si vull desar les dades, he dit CANCEL, ens pregunta un altre cop si volem Sortir sense desar. Si diem CANCEL, ho deixa tot obert i si diem que sí, tanca i no s’hauran desat les dades.(1 hora)
 +
* 31.Crear fitxer de textes de l'apliació tal i com s'exposa a les especificacions no funcionals (2 hores)
  
===Sprint #3 (27-30 hores)===
+
===Sprint #3 (18 hores) 7/11/18 -- 14/11/18===
 +
* B. hores destinades a finalitzar el Sprint 2 (3h)
 +
* 30.Totes les finestres tenen un títul adequat i la icona del Esteve Terradas (1h)
 +
* 32.Implementar i llegir les claus: language, language_default, postfix_language_file_name per implementar el multillenguatge (2h)
 +
* 33.S'han de carregar els textos de l'aplicació segons el valor configurat al fitxer de configuració (cv_config.xml) (1h)
 +
* 34.Permetre que l'aplicació tingui tots el textes en Català o Castellà (1h)
 +
* 35.Afegir l'anglès com a idioma a l'aplicació (1h)
 +
* 36.A la pantalla resum s'ha d'afegir un botó per anar a crear un presupost nou que ens porti a la pantalla d'introducció de dades del client (1h)
 +
* 37.Al finalitzar un presupost i renombrar els fitxers fs_employee.txt i fs_employee.xml, hem de crear el fitxer fs_employee.txt i deixar-lo vuit (2h)
 +
* 38.Una vegada fet el login a l'aplicació, s'ha de comprobar si el fitxer que emmagatzema dades temporals (fs_employee.txt) té dades, si es així hem de carregar l'aplicació amb les dades temporals, sino continuem com fins ara (3h)
 +
* 39.Si hi ha dades al fitxer fs_employee.txt ha de sortir un missatge informant que hi ha dades temporals i si volem carregar-les. Si es que si carreguem les dades i accedim directament a la pantalla corresponent, si es que no esborrem el contigut del fitxer (1h)
 +
* 40.La versió del empleat queda desahibilitada, afegirem per configuració la clau (descompte) els valors nomès poden ser positius i s'indicarà en percentatge, el descompte màxim es d'un 21% (3h)

Revisió de 15:48, 29 nov 2018

Introducció

Configurador de vehículos

Este proyecto consiste en crear una aplicación de escritorio en JAVA que permita configurar un vehículo. Podemos tomar como ejemplos el configurador de toyota o el configurador de seat. La idea es desarrollar una aplicación que en un futuro tenga todas las funcionalidades de un configurador.
Para realizar esta tarea se creará una lista priorizada de características de la aplicación.



Product Backlog

  1. A l'inici de l'apliació ha de carregar les configuracions inicials d'un fitxer xml anomenat cv_config.xml
  2. Genera una classe ConfigurationLoader que implementi el patró de diseny singleton que contigui totes las configuracions llegides des de cv_config.xml
  3. Implementar i llegir les claus: car_configuration_path, car_configuration_file_name, employee_list, employee_password, specifications_file_path
  4. La primera pantalla de l’aplicació serveix pel logueixar-se.

    Pantalla1.jpg
  5. comprovarà el passsword quan es polsi el botó ENTRAR.
  6. Per accedir a l'apliació s'ha d'introduir un nom vàlid, es a dir, un nom que aparegui a la llista employee_list del fitxer de configuració. Si el nom no apareix a la llista mostrar un missatge de error.
  7. Implementar i llegir les claus: version, employee_version
  8. La segona pantalla és per introduir les dades del client

    Pantalla2.jpg
  9. Els camps que porten * són obligatoris i no es pot passar a la següent pantalla si estan en blanc.
  10. Només es pot tenir seleccionat un gènere.
  11. Per accedir a l'aplicació a la versió per empleats a més del nom vàlid de l'empleat ha de introduir el password correcte i ha de estar activa la clau employee_version del fitxer de config
  12. La tercera pantalla serveix per escollir el model de cotxe de la marca SEAT:

    Pantalla3.jpg
  13. L'aplicació ha de accedir al fitxer de configuració de vehicle que es un fitxer xml amb les dades de MODEL, MOTOR i ACCESORIS disponibles. Al menys hi ha d'haver 4 models (id, nom, descripció, imatge_nom, preu) 2 motors(id, nom, descripció, imatge_nom, preu) i 6 accesoris(id, nom, descripció, imatge_nom, preu, models_disponibles)
  14. Implementa el patró de diseny DAO per accedir al fitxer xml de configuració de vehicle. La implementació ha de permetre afegir, treure o modificar dades del fitxer en temps d'execució
  15. La part esquerra són botons amb la imatge del diferents model. Al prémer un , apareix a la part central la imatge amb bona resolució i un text resumint les seves característiques en un JTextArea.
  16. A sota els botons per continuar i tornar enrere amb el comportament normal. Per defecte, un model s’ha de considerar seleccionat i és el que apareix inicialment a la foto.
  17. A la quarta pantalla, apareix els submodels del model escollit a la pantalla anterior. Es mostra la informació en un JList ( cada opció és un String)

    Pantalla4.jpg
  18. En la següent es seleccionen els extres que es volen

    Pantalla5.jpg
  19. Al finalitzar es mostrarà una pantalla resum amb el resum del cotxe seleccionat i el preu final.
  20. A mesura que es van seleccionant les opcions de configuració s'han d'anar guardant en el fitxer resum fs_employee.txt indicant a la primera linea del fitxer "Dades temporals" una vegada hem acabat la configuració s'ha de borrar la linea "Dades temporals"
  21. Quan s'acaba la configuració s'ha de generar el fitxer de presupost en format XML
  22. Quan s'acaba la configuració als fitxers fs_employee.txt i fs_employee.xml s'ha de canviar el nom a fs_employee_data_i_hora.txt i fs_employee_data_i_hora.xml
  23. Quan el camp de password té el focus, si es clica la tecla ENTER ha de comprovar el password.
  24. A partit d’estar logueixat, a la cantonada dreta superior de cada finestra, apareixerà el “Usuario: ‘nom_de_l’usuari’ “
  25. El camp de correu electrònic , té un format propi de les adreces electròniques i no s’accepta res que no pugui ser un mail.
  26. Data de naixement obre un JCalendar.
  27. El botó “GUARDAR” fa les mateixes comprovacions que per passar a la següent pantalla.
  28. SI l’operació de guardar dades ha anat bé, mostrarà aquest fet amb un JOptionPane.
  29. El comportament a l’hora de tancar aquesta finestra ha d’oferir la possibilitat de sortir gravant les dades, sortir sense gravar i no sortir. Ho podeu fer com vulgueu. Una possibilitat és: Si tanco aquesta finestra em demana si vull desar les dades amb un JOptionPane amb opció OK.CANCEL. Si premo OK, es desen i em demana de nou si vull sortir. Si diu CANCEL, ens quedem i si diem Ok sortim. Si al primer JOptionPane, quan pregunta si vull desar les dades, he dit CANCEL, ens pregunta un altre cop si volem Sortir sense desar. Si diem CANCEL, ho deixa tot obert i si diem que sí, tanca i no s’hauran desat les dades.
  30. Totes les finestres tenen un títul adequat i la icona del Esteve Terradas.
  31. Crear fitxer de textes de l'apliació tal i com s'exposa a les especificacions no funcionals
  32. Implementar i llegir les claus: language, language_default, postfix_language_file_name per implementar el multillenguatge
  33. S'han de carregar els textos de l'aplicació segons el valor configurat al fitxer de configuració (cv_config.xml)
  34. Permetre que l'aplicació tingui tots el textes en Català o Castellà
  35. Afegir l'anglès com a idioma a l'aplicació
  36. A la pantalla resum s'ha d'afegir un botó per anar a crear un presupost nou que ens porti a la pantalla d'introducció de dades del client
  37. Al finalitzar un presupost i renombrar els fitxers fs_employee.txt i fs_employee.xml, hem de crear el fitxer fs_employee.txt i deixar-lo vuit
  38. Una vegada fet el login a l'aplicació, s'ha de comprobar si el fitxer que emmagatzema dades temporals (fs_employee.txt) té dades, si es així hem de carregar l'aplicació amb les dades temporals, sino continuem com fins ara
  39. Si hi ha dades al fitxer fs_employee.txt ha de sortir un missatge informant que hi ha dades temporals i si volem carregar-les. Si es que si carreguem les dades i accedim directament a la pantalla corresponent, si es que no esborrem el contigut del fitxer
  40. La versió del empleat queda desahibilitada, afegirem per configuració la clau (descompte) els valors nomès poden ser positius i s'indicarà en percentatge, el descompte màxim es d'un 21%
  41. Crea una clau (codis_descomptes) al fitxer de config que emmagatzemi tots els codis que son válids per aplicar un descompte
  42. A la pantalla d'accessoris crea un apartat per introduir un codi de descompte, si aquest es troba en el llistat, aplica el descompte corresponent
  43. Si es configura algun descompte més gran que 21% la aplicació ha de donar el missatge: "Ha hagut un problema amb el codi de descompte, si us plau, contacta amb l'administrador de l'aplicació

Especificacions funcionals

M6: Accès a dades

  • A l'inici de l'apliació ha de carregar les configuracions inicials d'un fitxer xml anomenat cv_config.xml
  • Genera una classe ConfigurationLoader que implementi el patró de diseny singleton que contigui totes las configuracions llegides des de cv_config.xml
  • Implementar i llegir les claus: car_configuration_path, car_configuration_file_name, employee_list, employee_password, specifications_file_path
  • L'aplicació ha de accedir al fitxer de configuració de vehicle que es un fitxer xml amb les dades de MODEL, MOTOR i ACCESORIS disponibles. Al menys hi ha d'haver 4 models (id, nom, descripció, imatge_nom, preu) 2 motors(id, nom, descripció, imatge_nom, preu) i 6 accesoris(id, nom, descripció, imatge_nom, preu, models_disponibles)
  • Implementa el patró de diseny DAO per accedir al fitxer xml de configuració de vehicle. La implementació ha de permetre afegir, treure o modificar dades del fitxer en temps d'execució
  • Crear fitxer de textes de l'apliació tal i com s'exposa a les especificacions no funcionals
  • Permetre que l'aplicació tingui tots el textes en Català o Castellà
  • Implementar i llegir les claus: language, language_default, postfix_language_file_name per implementar el multillenguatge
  • Implementar i llegir les claus: version, employee_version
  • S'han de carregar els textos de l'aplicació segons el valor configurat al fitxer de configuració (cv_config.xml)
  • Per accedir a l'apliació s'ha d'introduir un nom vàlid, es a dir, un nom que aparegui a la llista employee_list del fitxer de configuració. Si el nom no apareix a la llista mostrar un missatge de error.
  • Per accedir a l'aplicació a la versió per empleats a més del nom vàlid de l'empleat ha de introduir el password correcte i ha de estar activa la clau employee_version del fitxer de config
  • Afegir l'anglès com a idioma a l'aplicació
  • A mesura que es van seleccionant les opcions de configuració s'han d'anar guardant en el fitxer resum fs_employee.txt indicant a la primera linea del fitxer "Dades temporals" una vegada hem acabat la configuració s'ha de borrar la linea "Dades temporals"
  • Quan s'acaba la configuració s'ha de generar el fitxer de presupost en format XML
  • Quan s'acaba la configuració als fitxers fs_employee.txt i fs_employee.xml s'ha de canviar el nom a fs_employee_data_i_hora.txt i fs_employee_data_i_hora.xml
  • Al finalitzar un presupost i renombrar els fitxers fs_employee.txt i fs_employee.xml, hem de crear el fitxer fs_employee.txt i deixar-lo vuit
  • Una vegada fet el login a l'aplicació, s'ha de comprobar si el fitxer que emmagatzema dades temporals (fs_employee.txt) té dades, si es així hem de carregar l'aplicació amb les dades temporals, sino continuem com fins ara
  • Si hi ha dades al fitxer fs_employee.txt ha de sortir un missatge informant que hi ha dades temporals i si volem carregar-les. Si es que si carreguem les dades i accedim directament a la pantalla corresponent, si es que no esborrem el contigut del fitxer
  • La versió del empleat queda desahibilitada, afegirem per configuració la clau (descompte) els valors nomès poden ser positius i s'indicarà en percentatge, el descompte màxim es d'un 21%
  • Crea una clau (codis_descomptes) al fitxer de config que emmagatzemi tots els codis que son válids per aplicar un descompte
  • Si es configura algun descompte més gran que 21% la aplicació ha de donar el missatge: "Ha hagut un problema amb el codi de descompte, si us plau, contacta amb l'administrador de l'aplicació

M7: Disseny d'interficíes

  • General:
    • Totes les finestres tenen un títul adequat i la icona del Esteve Terradas.
    • La finestra principal no es tanca mai ( obviament ) però les altres es van tancant a mesura que passem a la següent.
  • Pantalles
    • 1. PRIMERA PANTALLA.
      • La primera pantalla de l’aplicació serveix pel logueixar-se.
      • Pantalla1.jpg
      • Quan el camp de password té el focus, si es clica la tecla ENTER ha de comprovar el password.
      • Igualment comprovarà el passsword quan es polsi el botó ENTRAR.
      • A partit d’estar logueixat, a la cantonada dreta superior de cada finestra, apareixerà el “Usuario: ‘nom_de_l’usuari’ “
    • 2. SEGONA PANTALLA.
      • La segona pantalla és per introduir les dades del client

      • Pantalla2.jpg
      • Els camps que porten * són obligatoris i no es pot passar a la següent pantalla si estan en blanc.
      • El camp de correu electrònic , té un format propi de les adreces electròniques i no s’accepta res que no pugui ser un mail.
      • Només es pot tenir seleccionat un gènere.
      • Data de naixement obre un JCalendar.
      • El botó “GUARDAR” fa les mateixes comprovacions que per passar a la següent pantalla.
      • SI l’operació de guardar dades ha anat bé, mostrarà aquest fet amb un JOptionPane.
      • El comportament a l’hora de tancar aquesta finestra ha d’oferir la possibilitat de sortir gravant les dades, sortir sense gravar i no sortir. Ho podeu fer com vulgueu.
      • Una possibilitat és: Si tanco aquesta finestra em demana si vull desar les dades amb un JOptionPane amb opció OK.CANCEL. Si premo OK, es desen i em demana de nou si vull sortir. Si diu CANCEL, ens quedem i si diem Ok sortim. Si al primer JOptionPane, quan pregunta si vull desar les dades, he dit CANCEL, ens pregunta un altre cop si volem Sortir sense desar. Si diem CANCEL, ho deixa tot obert i si diem que sí, tanca i no s’hauran desat les dades
    • 3. TERCERA PANTALLA.
      • La tercera pantalla serveix per escollir el model de cotxe de la marca SEAT:
      • Pantalla3.jpg
      • La part esquerra són botons amb la imatge del diferents model. Al prémer un , apareix a la part central la imatge amb bona resolució i un text resumint les seves característiques en un JTextArea.
      • A sota els botons per continuar i tornar enrere amb el comportament normal. Per defecte, un model s’ha de considerar seleccionat i és el que apareix inicialment a la foto.
    • 4. QUARTA PANTALLA.
      • A la quarta pantalla, apareix els submodels del model escollit a la pantalla anterior. Es mostra la informació en un JList ( cada opció és un String)
      • Pantalla4.jpg
    • 5. CINQUENA PANTALLA.
      • En la següent es seleccionen els extres que es volen
      • Pantalla5.jpg
    • 6. SEXTA PANTALLA
      • Al finalitzar es mostrarà una pantalla resum amb el resum del cotxe seleccionat i el preu final

Especifiacions no funcionals

  1. Es treballarà amb fitxers (no es poden fer servir bbdd)
  2. Contenido del fichero cv_config.xml:
    • Clave: language, valores es, ca, en etc. Esta clave sirve para identificar el idioma en el que se quiere cargar el programa los valores (uno o más de uno) pueden estar separados por ',' la aplicación leerá los valores e intentará utilizar el primer idioma que encuentre, en caso de no estar disponible pasará al siguiente hasta acabar con todos los valores. Este valor puede ser nulo.
    • Clave: language_default, valores es o ca o en, etc. Esta clave define el idioma por defecto y solo puede ser un único valor. En caso que la clave language sea nulo o se hayan intentado aplicar todos los idiomas proporcionados por la clave y no haya sido posible el idioma definido en este campo será el utilizado
    • Clave: postfix_language_file_name valor un string que especifica el patrón para identificar los ficheros de idioma. (Ejemplo: postfix_language_file_name: _cv.language buscará ficheros con el formato es_cv.language, ca_cv.language o en_cv.language)
    • Clave: version, valores un string con el siguiente formato #.#.# donde # = un número entre 0 y 9. El primer número solo se usará para cambios o modificaciones de las funcionales principales, el segundo número para ampliación de funcionalidades y el tercer número para inidicar corrección de errores
    • Clave: language_files_path, valores la ruta donde estarán los ficheros de idiomas
    • Clave: car_configuration_path, valor la ruta donde encontrar el fichero con las opciones de configuración de los vehículos
    • Clave: car_configuration_file_name, valor el nombre del fichero con las opciones de configuración de los vehículos
    • Clave: employee_list, valores lista separada por ',' con los nombres de los empleados que pueden acceder a la aplicación
    • Clave: employee_version, valores True o False, si es False es la versión standart de la aplicación la que utilizaría un comercial para venderle un vehículo a un cliente. Si es True y la clave employee_password es correcto se aplicará un 20% de descuento al precio final y se indicará arriba en el centro de ventana que estas en la versión para empleados.
    • Clave: employee_password, valores lista separada por ',' con los passwords de los empleados que pueden acceder a la aplicación
    • Clave: specifications_file_path, valor un string con la ruta donde se guardarán los presupuestos generados, el nombre y formato del documento presupuesto|3| en el apartado anexos
  3. Formato de los ficheros de idiomas:
    • Nombre: idioma_cv.language
    • Formato: Clave-Valor, importante en todos los ficheros de idioma la clave ha de ser la misma. Ejemplo: clave: lbl_user_access valor es: "Nombre de usuario", valor ca: "Nom d'usuari", valor en: "User name"
  4. Nombre y formato del fichero de presupuestos:
    • Nombre: fs_employee.txt
    • Formato un fichero de texto con el resumen de los datos seleccionados en la aplicación desde la fase 0 a la fase final. En cada linea un dato en el formato clave:valor. Ejemplo: nombre: Leandro Hernán Zabala Iglesias. Los datos de cada fase están separados por una linea de guiones (------)
  5. Nombre y formato del fichero de presupuestos:
    • Nombre: fs_employee.xml
    • Formato un fichero en formato xml con el resumen de los datos seleccionados en la aplicación desde la fase 0 a la fase final.


Definition of Done (DOD)

  1. Tasca implementada
  2. Tasca testejada
  3. Tasca comitejada
  4. Tasca pujada a producció


Gestió de projecte

Sprint #1 (18 hores) 17/10/18 -- 24/10/18

  • 1.A l'inici de l'apliació ha de carregar les configuracions inicials d'un fitxer xml anomenat cv_config.xml
  • 2.Genera una classe ConfigurationLoader que implementi el patró de diseny singleton que contigui totes las configuracions llegides des de cv_config.xml
  • 3.Implementar i llegir les claus: car_configuration_path, car_configuration_file_name, employee_list, employee_password, specifications_file_path
  • 4.La primera pantalla de l’aplicació serveix pel logueixar-se.
  • 5.comprovarà el passsword quan es polsi el botó ENTRAR.
  • 6.Per accedir a l'apliació s'ha d'introduir un nom vàlid, es a dir, un nom que aparegui a la llista employee_list del fitxer de configuració. Si el nom no apareix a la llista mostrar un missatge de error.
  • 7.Implementar i llegir les claus: version, employee_version
  • 8.La segona pantalla és per introduir les dades del client
  • 9.Els camps que porten * són obligatoris i no es pot passar a la següent pantalla si estan en blanc.
  • 10.Només es pot tenir seleccionat un gènere.
  • 11.Per accedir a l'aplicació a la versió per empleats a més del nom vàlid de l'empleat ha de introduir el password correcte i ha de estar activa la clau employee_version del fitxer de config
  • 12.La tercera pantalla serveix per escollir el model de cotxe de la marca SEAT
  • 13.L'aplicació ha de accedir al fitxer de configuració de vehicle que es un fitxer xml amb les dades de MODEL, MOTOR i ACCESORIS disponibles. Al menys hi ha d'haver 4 models (id, nom, descripció, imatge_nom, preu) 2 motors(id, nom, descripció, imatge_nom, preu) i 6 accesoris(id, nom, descripció, imatge_nom, preu, models_disponibles)

Sprint #2 (24 hores) 24/10/18 -- 7/11/18

  • a.Finalitzar les tasques del Sprint 1 (2 hores)
  • 14.Implementa el patró de diseny DAO per accedir al fitxer xml de configuració de vehicle. La implementació ha de permetre afegir, treure o modificar dades del fitxer en temps d'execució(2 hores)
  • 15.La part esquerra són botons amb la imatge del diferents model. Al prémer un , apareix a la part central la imatge amb bona resolució i un text resumint les seves característiques en un JTextArea.(1 hora)
  • 16.A sota els botons per continuar i tornar enrere amb el comportament normal. Per defecte, un model s’ha de considerar seleccionat i és el que apareix inicialment a la foto.(1 hora)
  • 17.A la quarta pantalla, apareix els submodels del model escollit a la pantalla anterior. Es mostra la informació en un JList ( cada opció és un String)(2 hores)
  • 18.En la següent es seleccionen els extres que es volen(3 hores)
  • 19.Al finalitzar es mostrarà una pantalla resum amb el resum del cotxe seleccionat i el preu final.(1 hora)
  • 20.A mesura que es van seleccionant les opcions de configuració s'han d'anar guardant en el fitxer resum fs_employee.txt indicant a la primera linea del fitxer "Dades temporals" una vegada hem acabat la configuració s'ha de borrar la linea "Dades temporals"(2 hores)
  • 21.Quan s'acaba la configuració s'ha de generar el fitxer de presupost en format XML(2 hores)
  • 22.Quan s'acaba la configuració als fitxers fs_employee.txt i fs_employee.xml s'ha de canviar el nom a fs_employee_data_i_hora.txt i fs_employee_data_i_hora.xml(1 hora)
  • 23.Quan el camp de password té el focus, si es clica la tecla ENTER ha de comprovar el password.(1 hora)
  • 25.El camp de correu electrònic , té un format propi de les adreces electròniques i no s’accepta res que no pugui ser un mail.(1 hora)
  • 27.El botó “GUARDAR” fa les mateixes comprovacions que per passar a la següent pantalla.(1 hora)
  • 28.SI l’operació de guardar dades ha anat bé, mostrarà aquest fet amb un JOptionPane.(1 hora)
  • 29.El comportament a l’hora de tancar aquesta finestra ha d’oferir la possibilitat de sortir gravant les dades, sortir sense gravar i no sortir. Ho podeu fer com vulgueu. Una possibilitat és: Si tanco aquesta finestra em demana si vull desar les dades amb un JOptionPane amb opció OK.CANCEL. Si premo OK, es desen i em demana de nou si vull sortir. Si diu CANCEL, ens quedem i si diem Ok sortim. Si al primer JOptionPane, quan pregunta si vull desar les dades, he dit CANCEL, ens pregunta un altre cop si volem Sortir sense desar. Si diem CANCEL, ho deixa tot obert i si diem que sí, tanca i no s’hauran desat les dades.(1 hora)
  • 31.Crear fitxer de textes de l'apliació tal i com s'exposa a les especificacions no funcionals (2 hores)

Sprint #3 (18 hores) 7/11/18 -- 14/11/18

  • B. hores destinades a finalitzar el Sprint 2 (3h)
  • 30.Totes les finestres tenen un títul adequat i la icona del Esteve Terradas (1h)
  • 32.Implementar i llegir les claus: language, language_default, postfix_language_file_name per implementar el multillenguatge (2h)
  • 33.S'han de carregar els textos de l'aplicació segons el valor configurat al fitxer de configuració (cv_config.xml) (1h)
  • 34.Permetre que l'aplicació tingui tots el textes en Català o Castellà (1h)
  • 35.Afegir l'anglès com a idioma a l'aplicació (1h)
  • 36.A la pantalla resum s'ha d'afegir un botó per anar a crear un presupost nou que ens porti a la pantalla d'introducció de dades del client (1h)
  • 37.Al finalitzar un presupost i renombrar els fitxers fs_employee.txt i fs_employee.xml, hem de crear el fitxer fs_employee.txt i deixar-lo vuit (2h)
  • 38.Una vegada fet el login a l'aplicació, s'ha de comprobar si el fitxer que emmagatzema dades temporals (fs_employee.txt) té dades, si es així hem de carregar l'aplicació amb les dades temporals, sino continuem com fins ara (3h)
  • 39.Si hi ha dades al fitxer fs_employee.txt ha de sortir un missatge informant que hi ha dades temporals i si volem carregar-les. Si es que si carreguem les dades i accedim directament a la pantalla corresponent, si es que no esborrem el contigut del fitxer (1h)
  • 40.La versió del empleat queda desahibilitada, afegirem per configuració la clau (descompte) els valors nomès poden ser positius i s'indicarà en percentatge, el descompte màxim es d'un 21% (3h)