Analysis and diagrams - Josecgh/diagAuto-frontend GitHub Wiki
| Rol | Valor en backend | Descripción |
|---|---|---|
GUEST |
null (no session) |
Usuario no autenticado. Solo ve páginas públicas de bienvenida. |
USER |
ROLE_USER |
Usuario registrado. Dueño y gestor de su propia agenda de vehículos. |
| Ruta | Vista (component) |
Roles permitidos | Propósito |
|---|---|---|---|
/ |
HomeViewComponent |
Todos | Página de bienvenida, presentación de la herramienta y características. |
/login |
LoginViewComponent |
GUEST |
Formulario de inicio de sesión. |
/register |
RegisterViewComponent |
GUEST |
Formulario de registro para nuevos usuarios. |
/dashboard |
VehicleAgendaComponent |
USER |
Panel principal: Agenda visual, listado privado de coches y estados de avería. |
/vehicles/new |
VehicleFormComponent |
USER |
Formulario para registrar un coche. Se bloquea dinámicamente si ya tiene 4 vehículos. |
/checkout |
PaywallComponent |
USER |
Pantalla de pago/suscripción. Se activa al intentar registrar el 5.º vehículo. |
-
Protección de rutas: Las rutas privadas (
/dashboard,/vehicles/new,/checkout) están protegidas mediante una guarda funcionalauthGuardque verifica que el rol seaROLE_USER. -
Protección inversa: Las rutas
/loginy/registerusan una guarda que redirige automáticamente al/dashboardsi un usuario ya autenticado intenta entrar en ellas.
flowchart TD
A[Usuario navega a una URL] --> B{¿La ruta existe?}
%% Ruta No Existe
B -->|No| C{¿Tiene sesión?}
C -->|No| L[Vista Login]
C -->|Yes| D_Dash[Vista Dashboard / Agenda]
%% Ruta Existe
B -->|Yes| D{¿Requiere autenticación?}
%% Rutas Públicas (Home, Login, Register)
D -->|No| F{¿Es ruta exclusiva de Invitados?<br/>login, register}
F -->|Yes| F_Check{¿Ya inició sesión?}
F_Check -->|Yes| D_Dash
F_Check -->|No| V_Pub[Mostrar vista pública]
F -->|No| V_Pub
%% Rutas Privadas (Dashboard, New Vehicle, Checkout)
D -->|Yes| E{¿Tiene sesión activa?}
E -->|No| L
E -->|Yes| G{¿Intenta añadir vehículo?<br/>/vehicles/new}
%% Control Freemium (Paywall)
G -->|No| V_Priv[Mostrar vista privada / Agenda]
G -->|Yes| H{¿Tiene 4 o más vehículos<br/>y plan básico?}
H -->|Yes| P[Pantalla de Pago / Paywall]
H -->|No| V_Form[Mostrar Formulario de Registro]
%% Estilos Visuales para el diagrama
classDef public fill:#f9f,stroke:#333,stroke-width:2px;
classDef private fill:#bbf,stroke:#333,stroke-width:2px;
classDef paywall fill:#fbb,stroke:#333,stroke-width:2px;
class L,V_Pub public;
class D_Dash,V_Priv,V_Form private;
class P paywall;