Skip to main content

1. Enunciado proyecto: Almacén por terminal

Recomendación: Instalar VSCode

Instalar dependencias

sudo apt update
sudo apt install wget gpg apt-transport-https -y

Añadir clave de Microsoft

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/

Añadir repositorio

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list

Instalar VS code

sudo apt update
sudo apt install code -y

Encontrarás el acceso directo desde aplicaciones/desarrollo

Introducción

Se trata de desarrollar una aplicación gestionada exclusivamente mediante línea de comandos, dedicada al control y gestión de los productos de una tienda.

El proyecto combina scripts en Python y Bash, separando claramente las responsabilidades de cada tecnología:

  • Bash solicita los datos al usuario, los valida y se encarga de la creación, modificación y eliminación de directorios y archivos.
  • Python gestiona la lógica del programa y la modificación del contenido de los archivos .json.

Funcionamiento final: lanzar el programa

  1. Clonar el repositorio del sistema gitercilla utilizando el comando:
git clone <ruta_a_tu_repositorio>

La clonación puede realizarse en cualquier ubicación del sistema de archivos del usuario.

  1. Ejecutar el script instalar.sh, que realiza las siguientes acciones:
  • Pide al usuario si realmente desea ejecutar el programa.
  • Crea un directorio con el nombre de la aplicación dentro del directorio personal del usuario que ejecuta el script ($HOME).
  • Copia en dicho directorio todos los elementos del proyecto:
    • main.py
    • el directorio scripts/
    • el archivo programa.log
  • Crea en el directorio /tiendas la estructura de la tienda (categorías, marcas y productos).
  1. Tras ejecutar el script instalar.sh, la estructura general del sistema quedará de la siguiente manera:
estructura tienda

Aclaraciones

MUY IMPORTANTE

Al ejecutar el script instalar.sh, se asume que ya existe el directorio /tiendas con los permisos adecuados para permitir la creación de la estructura de la tienda.

Dado que el directorio raíz / es propiedad del usuario root y el resto de usuarios no dispone de permisos de escritura, será necesario utilizar sudo para crear inicialmente el directorio:

sudo mkdir /tiendas
sudo chmod 777 /tiendas

Estructura del proyecto

El programa principal y los scripts auxiliares se almacenan en el directorio personal del usuario, mientras que los datos de la tienda se ubican en /tiendas.


Descripción de archivos y directorios

  • main.py
    Archivo principal del programa. Contiene el punto de entrada de la aplicación y muestra un menú interactivo en Python, navegable mediante teclado.

  • scripts/python/
    Scripts auxiliares en Python encargados de la lectura y modificación del contenido de los archivos .json.

  • scripts/bash/
    Scripts en Bash que solicitan datos al usuario, los validan y realizan operaciones sobre el sistema de archivos.

  • programa.log
    Archivo de registro donde se almacenan los mensajes, acciones y errores generados durante la ejecución del programa.


Consideraciones adicionales

  • El archivo main.py no debe utilizar rutas absolutas.
  • Todas las llamadas a scripts se realizarán mediante rutas relativas.

Ejemplo correcto desde Python:

subprocess.run(["./scripts/bash/crear_categoria.sh", "bebidas"])

Objetivo del proyecto

Aplicar conceptos de:

  • uso de la línea de comandos,
  • validación de datos en Bash,
  • manipulación de archivos JSON con Python,
  • organización de proyectos en sistemas Linux.