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

De Wiket
Salta a la navegació Salta a la cerca
Línia 47: Línia 47:
 
  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.
 
  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.</li>
 
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.</li>
 +
<li>Totes les finestres tenen un títul adequat i la icona del Esteve Terradas.</li>
 +
<li>La finestra principal no es tanca mai ( obviament ) però les altres es van tancant a mesura que passem a la següent.</li>
 
<li>Crear fitxer de textes de l'apliació tal i com s'exposa a les especificacions no funcionals</li>
 
<li>Crear fitxer de textes de l'apliació tal i com s'exposa a les especificacions no funcionals</li>
 
<li>Implementar i llegir les claus: language, language_default, postfix_language_file_name per implementar el multillenguatge</li>
 
<li>Implementar i llegir les claus: language, language_default, postfix_language_file_name per implementar el multillenguatge</li>

Revisió del 17:06, 16 oct 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. La finestra principal no es tanca mai ( obviament ) però les altres es van tancant a mesura que passem a la següent.
  32. Crear fitxer de textes de l'apliació tal i com s'exposa a les especificacions no funcionals
  33. Implementar i llegir les claus: language, language_default, postfix_language_file_name per implementar el multillenguatge
  34. S'han de carregar els textos de l'aplicació segons el valor configurat al fitxer de configuració (cv_config.xml)
  35. Permetre que l'aplicació tingui tots el textes en Català o Castellà
  36. Afegir l'anglès com a idioma a 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

M7: Disseny d'interficíes


General:

  1. Totes les finestres tenen un títul adequat i la icona del Esteve Terradas.
  2. 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 1.1. Quan el camp de password té el focus, si es clica la tecla ENTER ha de comprovar el password. 1.2. Igualment comprovarà el passsword quan es polsi el botó ENTRAR. 1.3. 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 2.1. Els camps que porten * són obligatoris i no es pot passar a la següent pantalla si estan en blanc. 2.2. 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. 2.3. Només es pot tenir seleccionat un gènere. 2.4. Data de naixement obre un JCalendar. 2.5. El botó “GUARDAR” fa les mateixes comprovacions que per passar a la següent pantalla. 2.6. SI l’operació de guardar dades ha anat bé, mostrarà aquest fet amb un JOptionPane. 2.7. 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 (DOF)

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


Gestió de projecte

Sprint #1 (18 hores) 11/10/18 -- 18/10/18


Sprint #2 (18 hores) 18/10/18 -- 25/10/18


Sprint #3 (18 hores) 25/10/18 -- 1/11/18