Proyecto integrado fin del Ciclo Formativo de Grado Superior en desarrollo de Aplicaciones Web

La finalidad principal de la aplicación, ha sido la demostración de la puesta en práctica de los conocimientos adquiridos a lo largo del ciclo formativo de desarrollo de aplicaciones web. He focalizado la aplicación en los conocimientos adquiridos sobre la gestión de privilegios de acceso de usuarios a distintos elementos (o módulos como me referiré a lo largo del documento) de la aplicación, la gestión de usuarios jerarquizados en distintos grupos (denominados roles) y la administración por parte de un usuario autorizado. No menos relevante ha sido la aplicación de los conocimientos en el diseño y gestión de bases de datos relacionales y las plataformas de implementación de estas. Otro factor que se ha tenido en cuenta ha sido la seguridad del entorno de uso (JWT) y de la aplicación (Angular), implementando funcionalidades como, la encriptación de datos sensibles, o la prevención en la utilización de elementos sensibles a la inyección de información automatizada (cracking o ataques de fuerza bruta).

Tecnologías

  • Frontend: Angular 16
  • Backend: Laravel 10 + JWT
  • API externa: IA (Flask)

Arquitectura

Esta es la arquitectura que se ha utilizado para el entorno de producción en una VPS.

Arquitectura en VPS

La separación lógica del frontend, el backend y la base de datos.

Arquitectura GesMerCa Frontend-Backend

Entorno de ejecución - Frontend

GesMerCa Logo Demostración web online

Documentación de la API - Backend

Swagger Logo Documentación api online


Repositorio con el contenido

Repositorio Frontend Repositorio Backend Repositorio IA


Fuentes:

Angular

LocalStorage y sessionStorage

Component Lifecycle

Unit testing

Auth guard with roles/permission based

Unsuscribing AJAX request

Laravel Creación del API rest en laravel con autenticación JWT

Spatie permissions

Faker y seed imagenes

Vínculo de storage -> public

Unit testing

Docker postgreSQL database backup