Introducción

En el marco de la Actividad Grupal 01 de la Unidad 2 del curso de Base de Datos II, desarrollamos TaskFlow NoSQL, una aplicación web para gestionar tareas utilizando Google Cloud Firestore como base de datos NoSQL.

El objetivo fue construir una aplicación funcional que permita administrar información mediante operaciones CRUD, alojarla en una plataforma pública y automatizar su despliegue utilizando GitHub Actions.

Tecnologías utilizadas

  • HTML5, CSS3 y JavaScript: desarrollo de la interfaz y funcionalidades.
  • Google Cloud Firestore: almacenamiento de tareas en documentos NoSQL.
  • Firebase Authentication: registro e inicio de sesión mediante correo y contraseña.
  • Firebase Hosting: alojamiento de la aplicación web.
  • GitHub: repositorio público del código fuente.
  • GitHub Actions: automatización del despliegue continuo.
  • GitHub Codespaces: entorno de desarrollo en la nube.

Arquitectura de la solución

La aplicación utiliza una arquitectura web conectada a servicios administrados de Firebase.

El usuario interactúa con la interfaz desarrollada en JavaScript. Firebase Authentication valida su identidad y Cloud Firestore permite almacenar y consultar las tareas correspondientes a su cuenta.

Cada documento de la colección tasks contiene información como el título, descripción, prioridad, estado, identificador del usuario y fechas de creación y actualización.

Desarrollo de la aplicación

Implementamos las siguientes operaciones CRUD:

  1. Create: registrar nuevas tareas con título, descripción y prioridad.
  2. Read: visualizar las tareas almacenadas en Cloud Firestore.
  3. Update: modificar los datos de una tarea y marcarla como completada.
  4. Delete: eliminar tareas que ya no sean necesarias.

También incorporamos búsqueda, filtros por prioridad y estado, además de indicadores de tareas pendientes y finalizadas.

Seguridad y autenticación

Configuramos Firebase Authentication utilizando el método de correo electrónico y contraseña.

Asimismo, implementamos reglas de seguridad de Firestore para restringir el acceso a los documentos según el usuario autenticado. De esta manera, cada cuenta puede gestionar únicamente sus propias tareas.

Publicación en Firebase Hosting

Una vez configurada la base de datos, publicamos TaskFlow NoSQL en Firebase Hosting mediante Firebase CLI.

La aplicación quedó disponible públicamente en:

https://taskflow-nosql-bd2.web.app

Automatización con GitHub Actions

Uno de los principales objetivos de la actividad fue implementar un despliegue automatizado.

Para conseguirlo, configuramos un workflow de GitHub Actions mediante el archivo .github/workflows/deploy.yml.

La automatización utiliza las credenciales almacenadas en GitHub Secrets y se ejecuta cuando se envían cambios a la rama main. También admite ejecución manual.

Comprobamos su funcionamiento mediante una ejecución exitosa del workflow, lo que demuestra que el proceso de publicación puede realizarse automáticamente.

Pruebas realizadas

Verificamos el funcionamiento de las principales características:

  • Registro e inicio de sesión.
  • Creación y consulta de tareas.
  • Modificación de tareas existentes.
  • Actualización del estado de las tareas.
  • Eliminación de registros.
  • Publicación de la aplicación en Internet.
  • Ejecución exitosa del despliegue mediante GitHub Actions.

Resultados y conclusiones

El desarrollo de TaskFlow NoSQL permitió aplicar conocimientos de bases de datos documentales, autenticación de usuarios, desarrollo web y automatización de despliegues.

Cloud Firestore facilitó el almacenamiento de documentos sin requerir una base de datos relacional tradicional. Firebase Hosting permitió publicar la aplicación y GitHub Actions permitió automatizar el proceso.

Este proyecto demuestra cómo integrar diferentes servicios en la nube para construir y desplegar una aplicación NoSQL funcional.

Enlaces del proyecto

Repositorio público: https://github.com/Mirandaasd/taskflow-nosql-firebase-Copiar

Aplicación web: https://taskflow-nosql-bd2.web.app

GitHub Actions: https://github.com/Mirandaasd/taskflow-nosql-firebase-Copiar/actions/workflows/deploy.yml

Tecnologías: Firebase Firestore, Firebase Authentication, Firebase Hosting, JavaScript y GitHub Actions.

Actividad Grupal 01 – Unidad 2: NoSQL App Development. Curso: Base de Datos II.