1. Inicialització de l'entorn de treball i del repositori Git per al projecte en equip mitjançant GitHub…
Gestió i planificació de projectes
Pràctica Part A: Menú i gestió de pel·lícules en Bash
Desenvolupament d'un conjunt de scripts en Bash per a la gestió i consulta d'una base de dades de cinema en format CSV, utilitzant control de versions amb Git.
Context
Aquesta pràctica consisteix a desenvolupar una eina modular en Bash (script principal films.sh i scripts auxiliars per a cada tasca) que permeti administrar i consultar informació d'una base de dades cinèfila continguda al fitxer films.csv. El desenvolupament es realitza en equip utilitzant GitHub Classroom, seguint un flux de treball basat en branques per a cada funcionalitat i evitant les fusions fast-forward.
1. Inicialització de l'entorn de treball i repositori Git
Configureu el repositori del projecte per a la col·laboració en equip a través de GitHub Classroom seguint les instruccions següents:
a)
Trieu un membre del grup com a líder. Aquesta persona crearà localment el directori del projecte anomenat Films, inicialitzarà el repositori Git i hi afegirà el fitxer README.md (amb noms, cognoms i NIU dels integrants), el fitxer films.sh (amb el shebang #!/bin/bash com a primera línia) i la base de dades descarregada films.csv.
b)
Realitzeu el commit inicial d'aquests tres fitxers a la branca master, creeu la branca de desenvolupament Opcio-Menu, vinculeu el repositori local amb el remot assignat a GitHub Classroom i pugeu l'estat d'ambdues branques ( master i Opcio-Menu).
c)
La resta de membres clonarà el repositori remot al seu entorn local i comprovarà la presència de les branques i fitxers. Quines ordres de Git permeten visualitzar i crear una còpia de seguiment local de les branques remotes quan git branch no les mostra directament per pantalla?

2. Desenvolupament del menú principal interactiu films.sh amb gestió d'opcions en desenvolupament, opcions…
Gestió i planificació de projectes
Pràctica Part A: Menú i gestió de pel·lícules en Bash
Desenvolupament d'un conjunt de scripts en Bash per a la gestió i consulta d'una base de dades de cinema en format CSV, utilitzant control de versions amb Git.
Context
Aquesta pràctica consisteix a desenvolupar una eina modular en Bash (script principal films.sh i scripts auxiliars per a cada tasca) que permeti administrar i consultar informació d'una base de dades cinèfila continguda al fitxer films.csv. El desenvolupament es realitza en equip utilitzant GitHub Classroom, seguint un flux de treball basat en branques per a cada funcionalitat i evitant les fusions fast-forward.
2 Opció-Menú: Menú principal interactiu (films.sh)
L'administració del lloc web ha soŀlicitat desenvolupar el script principal films.sh, el qual ha de rebre com a primer argument el nom del fitxer de la base de dades (per exemple, films.sh films.csv) per tal de ser completament genèric.
Implementeu a la branca Opcio-Menu l'esquelet funcional d'aquest menú atenent a les següents especificacions:
a.
El script ha de mostrar el següent format d'interfície en un bucle interactiu:
----------------------------------------------------
Base de Dades de pel·lícules
----------------------------------------------------
1. Llistats de pel·lícules.
2. Cerca de pel·lícula.
3. Ets realment un Expert en pel·lícules?
4. Altes, baixes i modificacions de la base de dades.
0. Sortir.
b.
L'opció 0 finalitza l'execució. Per a les opcions 3 i 4 (i provisionalment 1 i 2 si no estan acabades), s'ha de cridar la funció enDesenvolupament, que mostri el text "En desenvolupament", esperi la pulsació d'una tecla per part de l'usuari i netegi la pantalla abans de retornar al menú.
c.
Si l'usuari introdueix un caràcter o valor invàlid, la funció opcioNoValida ha de notificar l'error, esperar 3 segons amb sleep 3, esborrar la pantalla i redibuixar el menú. A més, a cada canvi de pantalla s'ha de netejar el terminal amb clear per evitar l'acumulació de text.
d.
Un cop validat el comportament, descriviu el procediment de Git per fusionar Opcio-Menu a la branca master evitant el tipus fast-forward com s'iŀlustra al diagrama següent:

3. Opció 1: Llistats de pel·lícules (Tasca1-1, Tasca1-2 i Tasca1-3). Implementar els scripts autònoms…
Marc formal de resolució de problemes en enginyeria
Pràctica Part A: Menú i gestió de pel·lícules en Bash
Desenvolupament d'un conjunt de scripts en Bash per a la gestió i consulta d'una base de dades de cinema en format CSV, utilitzant control de versions amb Git.
Context
Aquesta pràctica consisteix a desenvolupar una eina modular en Bash (script principal films.sh i scripts auxiliars per a cada tasca) que permeti administrar i consultar informació d'una base de dades cinèfila continguda al fitxer films.csv. El desenvolupament es realitza en equip utilitzant GitHub Classroom, seguint un flux de treball basat en branques per a cada funcionalitat i evitant les fusions fast-forward.
3. Opció 1: Llistats de pel·lícules (Tasca1-1, Tasca1-2 i Tasca1-3)
Quan s'escull l'opció 1 des del menú principal, s'ha de desplegar un submenú amb les següents funcionalitats:
----------------------------------------
1 - Llistats de pel·lícules.
----------------------------------------
1 Mostrar llistat de pel·lícules (alfabètic per títol).
2 Mostrar llistat de pel·lícules ordenats cronològicament per any.
3 Mostrar llistat de pel·lícules ordenades per popularitat de més a menys.
Cadascuna de les tasques ha de residir en un script independent que rebi el fitxer de dades com a argument ( $1), permetent l'execució autònoma (p. ex.,./Tasca1-2.sh films.csv):
a)
Tasca 1-1 ( Tasca1-1.sh): Genereu el codi necessari per ordenar i llistar les pel·lícules alfabèticament a partir del fitxer passat com a primer paràmetre.
b)
Tasca 1-2 ( Tasca1-2.sh): Programeu el script que mostri les pel·lícules ordenades cronològicament pel camp de l'any. Considereu el delimitador per defecte (coma o tabulador) i l'ordre requerit.
c)
Tasca 1-3 ( Tasca1-3.sh): Escriviu el script que ordeni les pel·lícules segons la seva popularitat de major a menor (ordre numèric descendent).

4. Implementació del submenú de cerca interactiva (Opció 2) i els scripts Tasca2-1.sh (cerca per títol ordenada…
Marc formal de resolució de problemes en enginyeria
Pràctica Part A: Menú i gestió de pel·lícules en Bash
Desenvolupament d'un conjunt de scripts en Bash per a la gestió i consulta d'una base de dades de cinema en format CSV, utilitzant control de versions amb Git.
Context
Aquesta pràctica consisteix a desenvolupar una eina modular en Bash (script principal films.sh i scripts auxiliars per a cada tasca) que permeti administrar i consultar informació d'una base de dades cinèfila continguda al fitxer films.csv. El desenvolupament es realitza en equip utilitzant GitHub Classroom, seguint un flux de treball basat en branques per a cada funcionalitat i evitant les fusions fast-forward.
4. Opció 2: Cerca de pel·lícules (Tasca2-1, Tasca2-2 i Tasca2-3)
L'opció 2 obre un submenú de cerques interactives amb el disseny següent:
--------------------------------------------------
2 - Cerca de pel·lícula.
--------------------------------------------------
1 Cercar pel·lícules per títol.
2 Cercar pel·lícules fetes entre dos anys.
3 Cercar pel·lícules on ha intervingut una determinada persona.
0 Tornar al menú anterior Implementeu tant la funció d'interacció des del script principal com els scripts auxiliars corresponents, tenint en compte que si no es localitza cap coincidència cal mostrar el missatge "Pel·lícula no trobada" i oferir la possibilitat de reintentar la cerca o sortir al menú anterior:
a)
Tasca 2-1 ( Tasca2-1.sh <file> <cadena>): Cerca de títols que continguin la cadena indicada, ordenats alfabèticament. Mostreu la funció interactiva i el script de cerca.
b)
Tasca 2-2 ( Tasca2-2.sh <file> <any_petit> <any_gran>): Cerca de pel·lícules compreses entre dos anys concrets (ambdós inclosos), ordenades per any.
c)
Tasca 2-3 ( Tasca2-3.sh <file> <persona>): Cerca d'un nom que correspongui a la direcció, actor o actriu, classificant els resultats per popularitat descendent.
