¡Hola bienvenido!, durante el presente repositorio encontrara un CRUD sencillo usando Python como lenguaje de programacion como tambien utilizamos Google Cloud Platform para alojar nuestra base de datos, Este repositorio es ideal para aquellos que están interesados en aprender cómo crear una aplicación sencilla con Python y GCP. También es perfecto para aquellos que desean mejorar sus habilidades en el manejo de bases de datos y el desarrollo de aplicaciones. Esperamos que encuentren útil este repositorio y lo disfruten. a continuacion encontrara el contenido jerarquico del repositorio
Puedes probar nuestro proyecto desplegado en la nube a traves de este link directo
- Instalar Python v3.11.3
https://www.python.org/ftp/python/3.11.3/python-3.11.3-amd64.exe
- Clonar el proyecto utilizando el comando de Git:
git clone https://github.com/HarryT08/gcloudApp.git
- Descargar la key o la información de la Base de Datos (Firebase) y pegar el contenido en la carpeta raíz del proyecto.
https://drive.google.com/file/d/1HWtGk_tmqjOCTSNkmTyRLvHslQVOrun2/view?usp=share_link
Ejemplo:
- En la raíz del proyecto ejecutar el siguiente comando para instalar las dependencias.
pip install -r requirements.txt
- Una vez realizado el paso anterior, podemos ejecutar el proyecto utilizando el siguiente comando en la raíz del proyecto.
py main.py
- Nos debería aparecer en la consola algo parecido a esto:
Dando click en el enlace de 'Running on', podemos visualizar la aplicación.
- Para probar la aplicación desplegada puede utilizar el siguiente link:
https://leafy-valor-314300.ue.r.appspot.com/
Puedes visualizar un video introductorio al proyecto aqui Video de explicacion
Este proyecto es un CRUD cuyo acrónimo significa Create, Read, Update y Delete (Crear, Leer, Actualizar y Eliminar). El objetivo principal de la aplicacion es la capacidad de crear, leer, actualizar y eliminar los usuarios en una base de datos. A continuacion se evidencia una breve descripcion y flujo de actividades de cada uno de los diferentes metodos en el software:
Envia una peticion al servidor para la creacion de un usuario, el flujo de pasos es el siguiente:
- El usuario toca el boton de "crear nuevo"
- El sistema renderiza una vista de formulario de 3 campos requeridos (correo, nombre y telefono)
- El usuario completa los campos requeridos y envia peticion al servidor
- El sistema responde con una notificacion de registro exitoso
Registro de usuario
El Sistema muestra los usuarios registrados en la base de datos, el flujo es relativamente sencillo:
- El usuario ingresa a la url del proyecto
- El sistema retorna en una tabla respecto a todos los usuarios registrados en el sistema, ademas de los campos anteriores, abarcan el id y la seccion de acciones (botones de editar/eliminar)
Consulta de usuario en la base de datos
El usuario elije un registro en especifico del listado de usuario para su posterior modificacion:
- El usuario consulta el listado de usuario
- El usuario acciona el boton de editar
- El sistema retorna en una ventana modal, el formulario de actualizacion donde trae los campos completos con la informacion registrada donde el usuario podra editar a su gusto
- El usuario envia peticion al servidor de actualizacion del usuario
- El Sistema retorna un mensaje de actualizacion de manera exitosa
Ediccion de un usuario en la base de datos
El Sistema muestra los usuarios registrados en la base de datos, el flujo es relativamente sencillo:
- El usuario ingresa a la url del proyecto
- El sistema retorna en una tabla respecto a todos los usuarios registrados en el sistema, ademas de los campos anteriores, abarcan el id y la seccion de acciones (botones de editar/eliminar)
- El usuario clickea el boton de eliminar en base a un registro en especifico
- El sistema envia peticion al usuario para la confirmacion de eliminacion del usuario
- El usuario confirma la accion de elimincacion permanente del registro
- El sistema retorna una ventana modal de confirmacion de eliminacion exitosa
Eliminacion de un usuario
Durante el desarrollo de la pratica se utilizo diferentes marco de trabajo y servicios como:
- Google Cloud Platform: Google Cloud Platform (GCP) es un conjunto de servicios y herramientas en la nube que Google ofrece para la construccion y administracion de aplicaciones y servicios en linea, en este caso, usamos herramientas ofrecidas por Gcloud como lo es Firebase y Google App Engine:
-
Firebase Admin: Es una biblioteca que permite interactuar con los servicios de firebase a traves de diversos lenguajes de programacion como Node Js, python, Java, entre otros. Se utiliza la libreria FireBase Admin para enviar peticiones al servidor de base de datos "Firestore Database" para el almacenamiento y persistencia de los datos a traves de una base de datos NOSQL
-
Google App Engine: Es uno de los servicios de Google Cloud que ofrece para el construccion, despliegue y alojamiento de aplicaciones web y moviles a traves de los servidores de Google, este proyecto fue desplegado en base al usa de dicha infraestructura
-
- Flask: Es un framework de python utilizado para la creacion de manera facil y rapida respecto al desarrollo de pagina web, junto a Ninja2 ayudan a renderizar los motores de plantilla en el proyecto
Basado en un modelo MVT (Modelo - Vista - Template), Esta arquitectura tiene como objetivo separar la lógica de la aplicación en tres componentes: el Modelo, la Vista y el Templado. A continuacion una breve descripcion de cada uno de estos componentes:
- Modelo: representa el acceso a los datos y la lógica de negocio de la aplicación
- Vista: Encargado de mostrar la información al usuarioa traves de interfaces graficas
- Template: Establece la estructura visual de la aplicación.
La separación de estos componentes facilita la gestión del código y su mantenimiento a largo plazo, ya que cada componente puede ser modificado o reemplazado sin afectar a los otros. Además, esta arquitectura promueve la reutilización de código y la escalabilidad de la aplicación
Santiago Alférez - 1151902 Carlos Contreras - 1151903 Harold Rueda - 1151904 Oscar Bayona - 1151906 Marlon Prado - 1151914