viernes, 7 de noviembre de 2025

[NestJS + Angular] Game Library

Este proyecto es un sistema de gestión de juegos, construido con NestJS para el backend, Angular (integrado con Material Design) para el frontend, y una base de datos PostgreSQL.

## Funcionalidades principales

- Autenticación segura: Autenticación obligatoria basada en JWT con opciones para actualizar el perfil del usuario (nombre de usuario, contraseña y foto de perfil).

- Gestión integral de géneros: Operaciones CRUD completas (Crear, Leer, Actualizar, Eliminar) para géneros.

- Gestión avanzada de juegos:

    - Operaciones CRUD completas para juegos.

    - Motor de Búsqueda y Paginación: Búsqueda eficiente por nombre y géneros.

    - Filtros Persistentes: Utilización de Angular Signals para mantener los filtros de búsqueda activos (incluyendo la opción de favoritos) mientras el usuario navega por la aplicación, mejorando la coherencia y la usabilidad.

    - Gráficos Interactivos: Visualización clara de la distribución de juegos, mostrando de forma gráfica cuántos juegos hay por cada género.

## Capturas de pantalla

A continuación, se muestran algunas imágenes del sistema en funcionamiento:

 
 
 
 
 
 

## Instalación del proyecto

### Backend (NestJS)


Sigue estos pasos para configurar el backend de NestJS:

1. Configuración del entorno:

- Renombra el archivo .env.example a .env.

- Configura los parámetros de conexión a tu base de datos PostgreSQL dentro del archivo .env.

2. Instalación de dependencias:

- Ejecuta el siguiente comando para instalar todas las dependencias del proyecto:

npm install --legacy-peer-deps

3. Configuración de JWT:

Dentro del archivo .env, añade o verifica las siguientes variables necesarias para la autenticación:

JWT_SECRET=supersecret
JWT_EXPIRES_IN=1d


4. Configuración de la base de datos:

- Ejecuta las migraciones para crear las tablas en tu base de datos :

npm run migration:run:dev

- Carga los datos iniciales en la base de datos :

npm run seed:dev

5. Ejecución del Servidor

Una vez instaladas las dependencias, inicia la aplicación en modo desarrollo ejecutando:

npm run start:dev

### Frontend (Angular)

1. Instalación de Dependencias

- Abre tu terminal en el directorio raíz del proyecto frontend.

- Ejecuta el siguiente comando para instalar todas las dependencias de Angular:

npm install

2. Ejecución del Servidor

Una vez instaladas las dependencias, inicia la aplicación en modo desarrollo ejecutando:

ng serve

## Pruebas unitarias

#### Backend (NestJS)


Para ejecutar las pruebas unitarias de NestJS (usando Jest), ejecuta el siguiente comando:

npm run test:e2e --verbose

#### Frontend (Angular)

Para ejecutar las pruebas unitarias de Angular (usando Karma y Jasmine):

Configuración de Headless Browser

Si ejecutas las pruebas en un entorno sin interfaz gráfica, es posible que necesites configurar la ruta del navegador. 

Por ejemplo, para Chromium:

export CHROME_BIN=$(which chromium)
 

Ejecución

Ejecuta todas las pruebas de los componentes y servicios de Angular:

ng test

### Uso con Docker

Para poner en marcha los servicios de NestJS y Angular usando Docker, se deben seguir los siguientes pasos:

Configuración del entorno:

1. Renombra el archivo .env.example ubicado en la raíz del proyecto a .env.

2. Dentro del archivo .env que acabas de crear, establece la variable de entorno DOCKER_OP a 1. Esto es fundamental para que la aplicación se adapte a los servicios definidos en Docker Compose.

3. Iniciar servicios: Ejecuta el siguiente comando en tu terminal desde la raíz del proyecto para construir y levantar todos los servicios configurados:

docker compose up -d --build

Una vez que los servicios estén activos, se podran acceder desde las siguientes URLs:

Backend NestJS: http://localhost:7777

Frontend Angular: http://localhost:9991 

 Github 

No hay comentarios:

Publicar un comentario

[NestJS + Angular] Game Library

Este proyecto es un sistema de gestión de juegos, construido con NestJS para el backend, Angular (integrado con Material Design ) para el ...