Skip to main content

Estructura del proyecto Angular

frontend/src/
├── app/
│   ├── components/         # Componentes UI
│   │   ├── login/
│   │   ├── inventario-list/
│   │   ├── inventario-crear/
│   │   ├── inventario-editar/
│   │   ├── historial/
│   │   ├── registro-eliminados/
│   │   ├── anotaciones/
│   │   ├── generar-informe/
│   │   ├── upload-excel/
│   │   └── dialogo-*/
│   ├── services/           # Servicios
│   │   ├── auth.services.ts
│   │   ├── inventario.services.ts
│   │   ├── anotaciones.services.ts
│   │   └── eliminados.services.ts
│   ├── guards/            # Route guards
│   │   └── auth.guard.ts
│   ├── models/            # Interfaces TypeScript
│   └── app.routes.ts      # Configuración de rutas
└── styles.scss

Componentes principales

login

Formulario de autenticación con validación

inventario-list

Tabla de activos con filtros y búsqueda

inventario-crear/editar

Formularios para CRUD de activos

historial

Visualización de cambios históricos

registro-eliminados

Lista de activos eliminados

anotaciones

Sistema de propuestas de cambios

generar-informe

Diálogo para generar reportes PDF/Excel

upload-excel

Componente de carga masiva

Servicios

AuthService

Maneja autenticación JWT:
  • Login/logout
  • Almacenamiento de tokens
  • Refresh automático
  • Validación de permisos

InventarioService

Operaciones sobre activos:
  • CRUD completo
  • Filtros dinámicos
  • Búsqueda por placa

AnotacionesService

Gestión de anotaciones

EliminadosService

Consulta de activos eliminados

Routing

Angular Router con guards:
const routes: Routes = [
  { path: 'login', component: LoginComponent },
  { 
    path: 'inventario', 
    component: InventarioListComponent,
    canActivate: [AuthGuard]
  },
  // ...
];

Material Design

Uso extensivo de Angular Material:
  • MatTable para listas
  • MatDialog para modales
  • MatFormField para formularios
  • MatPaginator para paginación

Recursos

Backend

Arquitectura del backend Django

Build docs developers (and LLMs) love