/TP_EdP_2023

Trabajo Práctico Final de Entorno de Programación de la TUIA, año 2023

Primary LanguageShell

Trabajo Práctico Final - Entorno de Programación

Introducción

En este repositorio, se encuentran los archivos que componen el trabajo práctico final para la materia Entorno de Programación de la Tecnicatura Universitaria en Inteligencia Artificial. Este trabajo fue realizado por:

Estudiante Legajo
Alanis, Germán A-4616/7
Asad, Gonzalo A-4595/1
Castells, Sergio C-7334/2

El trabajo práctico consistió en la elaboración de un programa dividido en varios scripts que corren dentro de un contenedor. De ejecutarse el programa en el orden correcto, se obtendrá como resultado un archivo comprimido con imágenes de personas y tres archivos de texto. La nomenclatura de las imágenes corresponde a nombres de personas, de los cuáles sólo se consideran válidos aquellos que comienzan en mayúsculas y continúan en minúsculas. Las imágenes con nombres válidos son procesadas y modificadas en tamaño. Los archivos de texto contienen la siguiente información: lista de nombres válidos, cantidad de nombres válidos que terminan con la letra "a" y lista de nombres de todos los archivos.

Requisitos Previos

Para poder ejecutar el programa correctamente, se requerirá que el usuario

  • Cuente con un sistema operativo Linux
  • Posea conocimientos básicos del uso de Shell en Linux
  • Tenga instalado Docker en la PC donde se correrá el programa (si no lo tiene instalado, puede seguir el instructivo en el siguiente enlace: https://docs.docker.com/desktop/install/linux-install/)

Cómo Iniciar el Contenedor

Paso #1:

Al descargar el contenido del repositorio, el usuario deberá asegurarse que todos los archivos del mismo se encuentren dentro de un único directorio en la PC donde correrá el programa, como en el siguiente ejemplo:

imagen

Paso #2:

A continuación, se deberá abrir una terminal de Shell y navegar hasta el directorio que contiene los archivos del repositorio con el siguiente comando:

cd "Ruta_del_directorio"

Ejemplo:

imagen

Paso #3:

Una vez ubicado en el directorio del repositorio, deberá asignarle permisos de ejecución al archivo startdocker.sh con el comando:

chmod +x startdocker.sh

Ejemplo:

imagen

Paso #4:

Finalmente, deberá ejecutar el archivo startdocker.sh, lo que dará inicio a la creación de la imagen de Docker, al contenedor y a la ejecución del programa:

./startdocker.sh

Ejemplo:

imagen

Si todos los pasos fueron ejecutados satisfactoriamente, se deberá ver en la terminal la creación de la imágen y a continuación un mensaje de bienvenida al trabajo práctico de Entorno de Programación, dando inicio al programa:

imagen

Cómo Usar el Programa

Al iniciar el programa, el usuario verá en pantalla un menú con 5 opciones:
1) Generar
2) Descomprimir
3) Procesar
4) Comprimir
5) Salir

Si bien el usuario puede elegir cualquier opción en cualquier orden, para una correcta ejecución del programa se debe seguir una secuencia determinada que será indicada por el mismo acusando la opción que debe seleccionar en cursiva y parpadeando. De verse esta secuencia alterada, se le dará aviso al usuario para que ejecute los pasos en el orden correcto. Para elegir la opción, el usuario deberá ingresar el número asociado a la misma y a continuación presionar el botón Enter del teclado. La correcta ejecución arrojará como resultado el archivo comprimido antes mencionado que se alojará en la PC donde se ejecuta el programa.

Paso #1: Generar

Esta opción genera una cantidad de imágenes definida por el usuario haciendo uso de un servicio en internet, las descarga y las guarda dentro de un archivo comprimido, junto con su checksum, dentro del contenedor. Para ejecutar esta opción, teniendo el menú en pantalla, el usuario deberá ingresar 1 con el teclado y a continuación presionar la tecla Enter. Se le pedirá que ingrese cuántas imágenes desea generar, ingresar el número con el teclado y presionar Enter:

imagen

Verá mensajes indicando que las imágenes están siendo generadas:

imagen

Al finalizar, se le dará aviso al usuario de que el proceso se realizó exitosamente:

imagen

Paso #2: Descomprimir

Esta opción hace una suma de verificación entre el checksum y el archivo comprimido generados por la opción anterior. Posteriormente, descomprime las imágenes en un directorio dentro del contenedor. Para ejecutar esta opción, teniendo el menú en pantalla, el usuario deberá ingresar 2 con el teclado y a continuación presionar la tecla Enter. Al finalizar, se le dará aviso al usuario de que el proceso se realizó exitosamente:

imagen

Paso #3: Procesar

Esta opción modifica el tamaño de las imágenes generadas cuyo nombre es válido. Las que no tienen un nombre válido, se conservan sin alterar. Para ejecutar esta opción, teniendo el menú en pantalla, el usuario deberá ingresar 3 con el teclado y a continuación presionar la tecla Enter. Al finalizar, se le dará aviso al usuario de que el proceso se realizó exitosamente:

imagen

Paso #4: Comprimir

Esta opción genera un archivo comprimido que contiene las imágenes generadas además de tres archivos de texto que contienen: lista de nombres válidos, cantidad de nombres válidos que terminan con la letra "a" y lista de nombres de todos los archivos. Para ejecutar esta opción, teniendo el menú en pantalla, el usuario deberá ingresar 4 con el teclado y a continuación presionar la tecla Enter. Al finalizar, se le dará aviso al usuario de que el proceso se realizó exitosamente:

imagen

Paso #5: Salir

Esta opción finaliza la ejecución del programa y detiene el contenedor. Para ejecutar esta opción, teniendo el menú en pantalla, el usuario deberá ingresar 5 con el teclado y a continuación presionar la tecla Enter.

imagen

El usuario deberá verse de regreso a la terminal de Shell de su PC:

imagen

Paso 6: Obtención de Imágenes

Si todos los pasos fueron realizados exitosamente, el usuario deberá ver que se creó un nuevo directorio llamado output dentro del directorio del repositorio.

imagen

El directorio contendrá un archivo comprimido con las imágenes generadas y los archivos de texto antes mencionados.

imagen

Limpieza

Tras la ejecución del programa y la obtención del archivo comprimido, se realizará una rutina de limpieza automática que consiste en la eliminación del contenedor y de la imagen de Docker generados.