Ing. Sistemas Computacionales

sábado, 7 de diciembre de 2024

Proyecto | Angular v18 + Spring Boot v3 + Laravel v11 | LibHubTec

diciembre 07, 2024 Creado por Victor Jesus Maximo Abundio Sin comentarios

 

Proyecto | LibHubTec

Introducción

El proyecto consiste en reservar libros de una biblioteca de universidad desde un portal web llamada “LibHubTec” que es usado por alumnos de la universidad, el proyecto cuenta con una API para realizar peticiones desde el portal web “LibHubTec”. Adicionalmente, el proyecto tiene una aplicación web llamada “AdminPanel” con una arquitectura de “Monolitica”, que es usado por usuarios administradores.


LibHubTec 

Es un portal web con una arquitectura de “FrontEnd y BackEnd desacoplados”,  creada con Angular v18, PrimeNG, PrimeFlex, PrimeIcons.  Está conectado con una API para realizar peticiones. Este portal web, es usado por alumnos, con un correo electrónico y una contraseña para poder ingresar. 


API

Este un API para ser consumido desde el portal “LibHubTec”, está creado con Spring Boot v3, Spring Data JPA, Spring Security, JWT, Spring Email, Spring Web, Lombok, etc. 

Utiliza MySQL como base de datos para almacenar y recuperar la información, y proporcionar para el portal web “LibHubTec”.


AdminPanel

Este es una aplicación web con una arquitectura “Monolitica”, creada con Laravel 11, Moonshine Laravel, MySQL. Esta aplicación web es usada por administradores, para registrar administradores, alumnos, libros, enviar notificaciones, ver dashboard, etc.


Ver proyecto (GitHub Pages)

Funciones

El proyecto está conformado con dos aplicaciones web y una API, adicionalmente se usa Docker y Docker Compose para levantar todos los servicios.


LibHubTec 

  • Login 

  • Notificaciones 

    • Listar notificaciones de la cuenta

    • Marcar como leído

  • Libros 

    • Ver libros disponibles

    • Reservar libros

    • Listar libro reservados

  • Anuncios 

    • Ve anuncios de la universidad

  • Búsquedas

    • Ver búsquedas realizadas

    • Eliminar búsquedas realizadas


API

  • Leer libros

  • Consultar un libro

  • Consultar una cuenta

  • Autenticarte desde portal de LibHub (con Angular 18.x)

  • Refrescar un token de autenticación

  • Verificar un token de autenticación

  • Enviar un código y token para recuperación de cuenta desde portal de LibHub (con Angular 18.x)

  • Verificar un token de recuperación de cuenta

  • Recuperar una cuenta desde portal de LibHub (con Angular 18.x)

  • etc.


AdminPanel

  • Un dashboard

  • CRUD para anuncios

  • CRUD para administradores

  • CRUD para cuentas

  • CRUD para libros

  • CRUD para reservar libros

  • CRUD para notificar cuentas

  • Logs para recuperación de cuentas

  • Logs para búsquedas realizadas


¿Cómo funciona?

Para arrancar el proyecto, es necesario instalar docker y docker-compose, para automatizar e iniciar los servicios de forma automática. 


Arrancar servicios (del proyecto) usando Docker-compose


Paso 1) 

Acceder a la ruta raíz (root) el proyecto, a la par de archivo `docker-compose.yml`

Ejecuta el siguiente comando, desde la terminal.

```shell

$ cd workspace

```


Paso 2)

Convertir el archivo `setup.sh` en un archivo ejecutable o script de linux y ejecutarlo. 

Además de crear variable de entorno, instalar nodejs, y crear alias para linux

Ejecuta el siguiente comando, desde la terminal.

```shell

$ dos2unix ./setup.sh && ./setup.sh && source ~/.bashrc 

```


Paso 3) 

Construir todos los servicios de docker-compose

Se construye la imagen, contenedor y ejecuta cada servicio que compone docker-compose 

```shell

$ doc-again

```


Paso 4)

Comienza a probar el proyecto


Felicidades ya puedes acceder a los sitios del proyecto, que son:


- Sitio de servicio Laravel 11.x: [http://192.168.33.99:8000](http://192.168.33.99:8000)


    usuario: admin@admin.com


    contraseña: password


- Sitio de servicio Angular 18.x: [http://192.168.33.99:4200](http://192.168.33.99:4200)


    usuario: victor.maximo@example.com

    

    contraseña: password


- Sitio de servicio SpringBoot 3.x: [http://192.168.33.99:5800](http://192.168.33.99:5800)


- Sitio de servicio Mailpit: [http://192.168.33.99:8025](http://192.168.33.99:8025)


Vista previas

















0 comentarios:

Publicar un comentario