Skip to content

Aplicación web desarrollada con Angular 18 que consume una API de Dragon Ball para mostrar información sobre personajes de esta franquicia. La aplicación permite a los usuarios filtrar personajes por nombre, género, raza y afiliación, y visualizar detalles específicos de cada personaje seleccionado.

Notifications You must be signed in to change notification settings

mariocodev/ng-dragon-ball-api

Repository files navigation

Badge en Desarollo Release_date Python_versionx Python_versionx

Este proyecto es una aplicación Angular que consume una API de Dragon Ball (https://web.dragonball-api.com) para mostrar información sobre los personajes de esta franquicia. La aplicación permite a los usuarios filtrar personajes por nombre, género, raza y afiliación, y visualizar detalles específicos de cada personaje seleccionado en un modal. La interfaz de usuario es responsiva y admite un tema oscuro que se puede alternar manualmente por el usuario.

La aplicación utiliza Angular como framework de desarrollo frontend, implementando formularios reactivos para la gestión de los filtros de búsqueda. La comunicación con la API se maneja a través de un servicio dedicado (DragonBallService), que realiza peticiones HTTP para obtener los datos de los personajes y maneja posibles errores en las respuestas.

El proyecto está configurado para ser desplegado tanto en modo desarrollo como en producción, con instrucciones específicas para la instalación de dependencias, configuración de un proxy local para el desarrollo, y comandos para la compilación y despliegue de la aplicación. Además, se utiliza Tailwind CSS para el diseño y estilización de la interfaz, aprovechando su sistema de utilidades para un diseño rápido y eficiente.

El código fuente incluye componentes Angular específicos para la visualización de los personajes y sus detalles, así como la configuración necesaria para el manejo de temas oscuros y claros, basado en las preferencias del sistema del usuario o una selección manual.

Content

  1. Features
  2. Installation

Features

El siguiente proyecto ha sido levantado en un entorno local con las siguientes configuraciones.

- OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"

Entorno de desarrollo

$ nvm -v && node -v && npm -v

- Node Version Manager: 1.1.12
- Node: v22.9.0
- Package Manager: npm 10.8.3

$ ng v # después de instalar el proyecto

- Angular CLI: 18.2.7

Installation

Instalar nvm (Node Version Manager)

nvm permite gestionar múltiples versiones de Node.js y npm de manera sencilla.

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v1.1.12/install.sh | bash
# Este comando descargará e instalará nvm en tu sistema.

Cierra y abre la terminal.

Instalar Node.js y npm con nvm

$ nvm install 22.9.0

Esto instalará Node.js en la versión 22.9.0 y también configurará la versión adecuada de npm para esa versión de Node.js.

Configurar proxy local

Abrir el archivo /frontend/proxy.config.example.json y renombrarlo a proxy.config.json. Modificar los valores del target para acceso al backend.

{
    "/api":{
      "target": "https://dragonball-api.com/api",
      "secure": false,
      "changeOrigin": true,
      "loglevel": "debug",
      "pathRewrite": {
        "^/api": ""
      }
    }
}

Important

Para el despliegue en ambiente de production es importante tener el flag {production:true} en el archivo environment.production.ts

Instalación de CLI de angular

$ cd /angular
$ npm install -g @angular/cli

Instalar paquetes y librerias del package.json

$ npm install

Levantar instancia de desarrollo usando variables de entorno.

El archivo package.json está preparado para desplegar la aplicación dependiendo de la configuración seleccionada a través de las instancias de start y build.

$ npm run start:uat

Compilar el proyecto frontend para el ambiente seleccionado. Dentro del directorio src/environments se debe copiar el archivo environment.ts, renombrarlo y actualizar las configuraciones necesarias.

Por ejemplo para un ambiente de pre-producción se debe crear el archivo environment.staging.ts basado en environment.ts y actualizar los valores.

Note

Los ambientes predefinidos a través de variables son: development con dev para el archivo development, pre-producción con uat para el archivo staging y producción con prod para el archivo production. Por defecto se compila el ambiente production pero se recomienda usar la nomenclatura del comando de todas formas.

$ npm run build:uat --output-hashing=all

# $ npm run build:dev --output-hashing=all
# $ npm run build:prod

Tip

--output-hashing=all borra/renueva el caché del proyecto

FAQ

About

Aplicación web desarrollada con Angular 18 que consume una API de Dragon Ball para mostrar información sobre personajes de esta franquicia. La aplicación permite a los usuarios filtrar personajes por nombre, género, raza y afiliación, y visualizar detalles específicos de cada personaje seleccionado.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published