Este proyecto consiste en una aplicación de gestión de ventas y compras para una florería llamada 'Flora Vibrante'. La aplicación está desarrollada utilizando el framework Flask de Python y establece una comunicación con una base de datos para almacenar y recuperar información relevante.
Las siguientes etiquetas se utilizarán en los mensajes de commit en GitHub para indicar la naturaleza de los cambios realizados:
- Update: Se utiliza cuando se actualiza o modifica un archivo existente.
- Create: Se utiliza al crear un nuevo archivo.
- Delete: Se utiliza al eliminar un archivo.
- Fix: Para correcciones de errores.
- Refactor: Para cambios en el código que no alteran su funcionalidad pero mejoran su estructura o legibilidad.
- Merge: Para commits de fusión de ramas.
- Document: Para cambios relacionados con la documentación.
Update: Actualizar el estilo del botón de inicio de sesión.
Create: Agregar archivo README.md con instrucciones de instalación.
Delete: Eliminar archivo de configuración obsoleto.
Fix: Corregir error de ortografía en el archivo de documentación.
Refactor: Simplificar la lógica de la función de validación de formularios.
Merge: Fusionar cambios de la rama de desarrollo.
Document: Agregar comentarios explicativos al código.
- Python 3.9 - https://www.python.org/ftp/python/3.9.0/python-3.9.0-amd64.exe
- MySQL Installer - https://dev.mysql.com/downloads/file/?id=526407 (Descargar modo 'Full Service').
- Visual Studio Code - https://code.visualstudio.com/sha/download?build=stable&os=win32-x64-user
Estando dentro de la carpeta del proyecto una vez descargado, tenemos que seguir esta lista de comandos desde una terminal de PowerShell (IMPORTANTE). (Suponiendo que nos encontramos en $:/flower_shop_app)
- python -m venv environment
- .\environment\Scripts\activate
- python -m pip install --upgrade pip
- cd database/client
- pip install *.whl
- cd ../..
- pip install -r requirements.txt
- Cerrar Visual Studio Code
- Asegurarse que en el archivo de configuración ./source/config.py sean el usuario y contraseña correctos. (Recomiendo que sea root-root respectivamente)
- Conectarse a 'localhost' en Workbench e importar base de datos ubicada en '/database/dumps'.
- python .\source\app.py
- Acceder a la aplicación desde localhost:5000
La aplicación incluye las siguientes funcionalidades:
Gestión de Ventas y Compras: Permite realizar el registro y seguimiento de las transacciones de ventas y compras de la florería.
Gestión de Usuarios: Permite realizar el registro, edición y eliminación de usuarios dentro de la aplicación.
Gestión de Productos: Permite realizar el registro, edición y eliminación de products dentro de la aplicación.
Gestión de Recibos: Permite visualizar los recibos de compra por parte de los usuarios.
Base de Datos: Se han modelado entidades y tablas en la base de datos para almacenar información sobre clientes, productos, ventas y compras.
Comunicación con el Servidor: El servidor de la aplicación se encarga de manejar las solicitudes y respuestas entre la base de datos y las vistas de la aplicación. Garantiza la obtención y envío de información relevante de manera eficiente.
La estructura del proyecto sigue un diseño organizado en varios directorios:
-
database/
: Contiene scripts y archivos relacionados con la configuración y gestión de la base de datos MySQL. -
environment/ (No Incluido)
: Incluye archivos relacionados con la configuración del entorno de desarrollo, como variables de entorno. -
source/
: Es el directorio principal que contiene el código fuente de la aplicación Flask.-
static/
: Contiene archivos estáticos como hojas de estilo (CSS) e imágenes. -
templates/
: Almacena las plantillas HTML utilizadas por las vistas.-
auth/
: Aquí se encuentran los archivos de las vistas de autentificación. -
public/
: Aquí se encuentran los archivos de las vistas generales.
-
-
models/
: Contiene los modelos de la aplicación.entities/
: Aquí se encuentran los archivos que modelan las entidades y tablas de la base de datos.
-
Asegúrese de tener instalados los siguientes requisitos antes de ejecutar la aplicación:
-
Python 3.x: Si no tiene instalado Python, puede descargarlo desde el sitio oficial python.org.
-
MySQL: Para instalar MySQL, siga las instrucciones específicas para su sistema operativo desde el sitio oficial de MySQL.
Siga estos pasos para configurar la base de datos:
-
Importar el Dump de la Base de Datos:
-
Método 1 (Consola):
-
Asegúrese de tener MySQL Shell instalado y ejecutándose.
-
Desde la terminal, use el siguiente comando de MySQL Shell para importar el dump de la base de datos. Ajuste la ruta del archivo según la ubicación de su proyecto.
mysql -u root -p root flower_shop < database/dumps/flower-shop-dump.sql
Ingrese la contraseña cuando se le solicite.
-
-
Método 2 (Recomendado) (MySQL Workbench Community):
-
Inicie sesión como usuario
root
en MySQL Workbench Community. -
Vaya al apartado de importación.
-
Seleccione el dump desde
database/dumps/flower-shop-dump.sql
. -
Inicie la importación.
-
-
-
Configurar Credenciales de la Aplicación:
-
Si desea cambiar las credenciales predeterminadas para el usuario y la contraseña de la base de datos en la aplicación (Por defecto son 'root' y 'root', para usuario y contraseña respectivamente), modifique el archivo
source/config.py
.# Configuraciones class development_config(): DEBUG = True SECRET_KEY = "qhrf$edjYTJ)*21nsThdK" MYSQL_HOST = "localhost" MYSQL_USER = "" # Cambie al nuevo nombre de usuario MYSQL_PASSWORD = "" # Cambie a la nueva contraseña MYSQL_DB = "flower_shop" # Configuraciones # Configuraciones (Entorno) config = {"development": development_config} # Configuraciones (Entorno)
Reemplace
MYSQL_USER
yMYSQL_PASSWORD
con sus preferencias.
-
-
Permisos:
- Asegúrate de que el archivo tenga permisos de ejecución:
chmod +x run_program.sh
- Asegúrate de que el archivo tenga permisos de ejecución:
-
Ejecución:
- Ejecuta el script:
./run_program.sh
- Ejecuta el script:
-
Selección de Opciones:
-
El script presentará un menú interactivo como el siguiente:
Selecciona una opción: 1. Crear entorno virtual con una versión específica de Python 2. Activar entorno virtual 3. Instalar dependencias desde requirements.txt 4. Visualizar dependencias de requirements.txt 5. Ejecutar programa 6. Desactivar entorno virtual 7. Salir
-
Se deberán seleccionar las opciones de manera secuencial hasta llegar a la opción 5.
-
-
Pasos Detallados:
-
Crear entorno virtual con una versión específica de Python:
- Solicita al usuario que ingrese la versión de Python deseada.
- Utiliza
python$python_version -m venv environment
para crear un entorno virtual llamado "environment" con la versión específica de Python proporcionada. - Muestra un mensaje indicando que el entorno virtual se creó con éxito.
-
Activar entorno virtual:
- Intenta activar el entorno virtual utilizando
source ./environment/bin/activate
o. ./environment/bin/activate
. - Muestra un mensaje indicando que el entorno virtual se ha activado.
- Intenta activar el entorno virtual utilizando
-
Instalar dependencias desde requirements.txt:
- Verifica si el entorno virtual está activado.
- Si es así, utiliza
pip install -r requirements.txt
para instalar las dependencias del archivorequirements.txt
. - Muestra un mensaje indicando que las dependencias se han instalado.
-
Visualizar dependencias de requirements.txt:
- Verifica si el entorno virtual está activado.
- Si es así, utiliza
cat requirements.txt
para mostrar las dependencias listadas en el archivorequirements.txt
.
-
Ejecutar programa:
- Utiliza
python3 ./source/app.py
para ejecutar el programa Flask. - El script asume que el punto de entrada del programa Flask es
app.py
. - Ahora podrá acceder a la aplicación desde 'localhost' o 'http://127.0.0.1:5000/'.
- Utiliza
-
Desactivar entorno virtual:
- Utiliza
deactivate
para desactivar el entorno virtual. - Muestra un mensaje indicando que el entorno virtual se ha desactivado.
- Utiliza
-
Salir:
- Muestra un mensaje indicando que el script está saliendo.
- Finaliza la ejecución del script con
exit 0
.
-
-
Ejecución:
- Ejecuta el script en PowerShell:
.\run_program.ps1
- Ejecuta el script en PowerShell:
-
Selección de Opciones:
-
El script presentará un menú interactivo como el siguiente:
Selecciona una opción: 1. Crear entorno virtual con una versión específica de Python 2. Activar entorno virtual 3. Instalar dependencias desde requirements.txt 4. Visualizar dependencias de requirements.txt 5. Ejecutar programa 6. Desactivar entorno virtual 7. Salir
-
Se deberán seleccionar las opciones de manera secuencial hasta llegar a la opción 5.
-
-
Pasos Detallados:
-
Crear entorno virtual con una versión específica de Python:
- Solicita al usuario que ingrese la versión de Python deseada.
- Utiliza
python$python_version -m venv environment
para crear un entorno virtual llamado "environment" con la versión específica de Python proporcionada. - Muestra un mensaje indicando que el entorno virtual se creó con éxito.
-
Activar entorno virtual:
- Intenta activar el entorno virtual utilizando
source ./environment/bin/activate
o. ./environment/bin/activate
. - Muestra un mensaje indicando que el entorno virtual se ha activado.
- Intenta activar el entorno virtual utilizando
-
Instalar dependencias desde requirements.txt:
- Verifica si el entorno virtual está activado.
- Si es así, utiliza
pip install -r requirements.txt
para instalar las dependencias del archivorequirements.txt
. - Muestra un mensaje indicando que las dependencias se han instalado.
-
Visualizar dependencias de requirements.txt:
- Verifica si el entorno virtual está activado.
- Si es así, utiliza
cat requirements.txt
para mostrar las dependencias listadas en el archivorequirements.txt
.
-
Ejecutar programa:
- Utiliza
python3 ./source/app.py
para ejecutar el programa Flask. - El script asume que el punto de entrada del programa Flask es
app.py
. - Ahora podrá acceder a la aplicación desde 'localhost' o 'http://127.0.0.1:5000/'.
- Utiliza
-
Desactivar entorno virtual:
- Utiliza
deactivate
para desactivar el entorno virtual. - Muestra un mensaje indicando que el entorno virtual se ha desactivado.
- Utiliza
-
Salir:
- Muestra un mensaje indicando que el script está saliendo.
- Finaliza la ejecución del script con
exit 0
.
-