Arquitectura - ciscojuan/tourisplan GitHub Wiki
para explicar como esta diseñado el proyecto, a continuación se mostrará los siguiente diagramas UML:
-
Casos de Uso: Las principales interacciones que los usuarios pueden realizar con el sistema.
-
Despliegue: La arquitectura física del sistema, mostrando cómo se despliegan los componentes.
-
Paquetes: La organización del código fuente en módulos y sus dependencias.
-
Base de Datos: La estructura de la base de datos con las relaciones entre entidades.
%% Diagrama de Casos de Uso
graph TB
title[Diagrama de Casos de Uso]
%% Actores
Usuario((Usuario))
UsuarioAuth((Usuario Autenticado))
%% Casos de uso
Ver[Ver Planes Turísticos]
Detalles[Ver Detalles de Plan]
Reservar[Reservar Plan]
Auth[Autenticarse]
GestReservas[Gestionar Reservas]
%% Relaciones
Usuario --> Ver
Usuario --> Detalles
Usuario --> Auth
UsuarioAuth --> Reservar
UsuarioAuth --> GestReservas
%% Diagrama de Despliegue
graph TB
title[Diagrama de Despliegue]
%% Nodos
subgraph Cliente
Browser[Navegador Web]
end
subgraph Servidor
Next[Next.js Server]
DB[(PostgreSQL)]
Auth[NextAuth]
end
%% Conexiones
Browser <--> Next
Next <--> DB
Next <--> Auth
%% Diagrama de Paquetes
graph TB
title[Diagrama de Paquetes]
%% Paquetes principales
App[app]
Auth[auth]
Components[components]
PlanesTuristicos[planes-turisticos]
Utils[utils]
Lib[lib]
%% Subpaquetes
subgraph app
Pages[pages]
API[api]
end
subgraph auth
Actions[actions]
Middlewares[middlewares]
end
subgraph planes-turisticos
PTComponents[components]
Interfaces[interfaces]
end
%% Relaciones
App --> Auth
App --> Components
App --> PlanesTuristicos
PlanesTuristicos --> Components
Auth --> Lib
Components --> Lib
%% Diagrama de Base de Datos
erDiagram
User {
string id PK
string name
string email
string image
}
PlanTuristico {
string id PK
string titulo
string descripcion
float precio
string imagen
date fechaInicio
date fechaFin
int cupos
}
Reserva {
string id PK
string userId FK
string planId FK
date fechaReserva
string estado
int cantidadPersonas
}
User ||--o{ Reserva : tiene
PlanTuristico ||--o{ Reserva : tiene
graph TD
A[tourisplan/]
A --> B[src/]
B --> B1[app/ <br/>Rutas y páginas de la aplicación]
B --> B2[auth/ <br/>Configuración de autenticación]
B --> B3[components/ <br/>Componentes reutilizables]
B --> B4[lib/ <br/>Utilidades y configuraciones]
B --> B5[planes-turisticos/ <br/>Lógica de planes turísticos]
A --> C[prisma/ <br/>Esquema y migraciones de la base de datos]
A --> D[public/ <br/>Archivos estáticos]