Getting started - Josecgh/diagAuto-frontend GitHub Wiki

Requisitos

Asegúrate de tener instalado lo siguiente:

  • Angular CLI — ng v (Se recomienda instalación global: npm install -g @angular/cli).
  • Node.js 22 LTS — node -v (La misma versión utilizada en el pipeline de CI).
  • npm — npm -v.
  • Git.
  • mkcert — para crear certificados HTTPS locales de confianza (guía de instalación).
  • DiagAuto Backend ejecutándose localmente en https://localhost:8443 — consulta el repositorio del backend.
  • Un IDE de tu elección (Se recomienda VSCode) con la extensión Angular Language Service instalada.
  • Chrome o Edge — • necesario para características específicas de diagnóstico (Web Speech API / funciones web OBD).

1. Clonar repositorio:

git clone https://github.com/Josecgh/diagAuto-frontend
cd diagAuto-frontend

2. Instalar dependencias:

npm install

3. Crear los certificados HTTPS locales:

El backend se ejecuta a través de HTTPS y envía la sesión en cookies seguras (SameSite=None), por lo que el frontend también debe ejecutarse bajo HTTPS. El servidor de desarrollo de Angular busca los certificados en una carpeta certs ubicada junto a la carpeta del repositorio:

Visual Studio/                      # (o cualquier carpeta padre)
├── certs/
│   ├── localhost+2.pem
│   └── localhost+2-key.pem
└── diagAuto-frontend/
# Desde la carpeta padre del repositorio
mkdir certs
cd certs
mkcert -install                     # Solo la primera vez: confía en la CA local
mkcert localhost 127.0.0.1 ::1      # Crea localhost+2.pem y localhost+2-key.pem

⚠️ Importante: Los certificados nunca se suben al repositorio (no se hace commit). Si faltan, Angular volverá a HTTP normal, pero las cookies de sesión de autenticación no funcionarán contra el backend HTTPS.

4. Configurar el entorno:

Angular utiliza la carpeta src/environments/ para la configuración. Crea tu archivo de entorno local a partir de la plantilla:

cp src/environments/environment.example.ts src/environments/environment.development.ts

Configura la URL del backend (HTTPS) dentro de environment.development.ts:

export const environment = {
  production: false,
  apiUrl: 'https://localhost:8443'
};

Nunca guardes claves privadas o credenciales de producción dentro de los archivos de entorno, ya que terminan expuestas en el código público del navegador.

Lista de dependencias:

Framework: Angular 19+ · Herramienta de compilación: Angular CLI (Esbuild/Vite builder bundle)

Núcleo y estado (Core & state)

Dependencia Propósito
@angular/core Framework basado en componentes que utiliza la API de Signals
@angular/router Enrutamiento en el lado del cliente, carga perezosa (lazy loading) y guardas de ruta funcionales
@angular/common/http Cliente HTTP integrado para la interacción con la API REST e interceptores
rxjs Librería de programación reactiva para el manejo de flujos de eventos

Estilos (Styling)

Dependencia Propósito
tailwindcss Framework de CSS basado en utilidades para el diseño de la interfaz

Pruebas (Testing)

Dependencia Propósito
jasmine-core Framework de desarrollo guiado por comportamiento (BDD) para pruebas
karma Ejecutor de pruebas (test runner) para los tests unitarios de los componentes

5. Ejecutar el servidor de desarrollo:

ng serve
ng serve -o

La aplicación se iniciará en https://localhost:4200 (las opciones SSL se configuran localmente dentro de angular.json haciendo referencia a la carpeta ../certs/).

Problemas comunes

Problema Causa probable
"Cannot load fleet data" + net::ERR_CONNECTION_REFUSED + net::ERR_CONNECTION_REFUSED El servidor del backend no se está ejecutando, o la apiUrl en tu archivo de entorno es incorrecta.
Blocked by CORS policy El backend solo acepta peticiones desde https://localhost:4200. Verifica que Angular se esté sirviendo explícitamente a través de HTTPS en el puerto 4200.
NET::ERR_CERT_AUTHORITY_INVALID No se ejecutó correctamente mkcert -install o tu navegador necesita un reinicio completo para confiar en el nuevo certificado de la CA local.
Login returns 403 / Session cookies not saved El navegador bloquea las cookies de sitios cruzados en localhost. En Chrome, haz clic en el icono del ojo en la barra de direcciones y permite explícitamente las cookies para localhost:8443.

Useful commands

npm run dev             # Iniciar el servidor de desarrollo
npm run build           # Compilación de producción en la carpeta /dist
npm run preview         # Servir la compilación de producción localmente
npm run test            # Ejecutar toda la suite de pruebas una vez
npm run test:watch      # Ejecutar pruebas en modo observador (watch) durante el desarrollo
npm run test:coverage   # Ejecutar pruebas con reporte de cobertura (terminal + coverage/index.html)