Arquitectura - ciscojuan/tourisplan GitHub Wiki

Arquitectura del Proyecto

para explicar como esta diseñado el proyecto, a continuación se mostrará los siguiente diagramas UML:

  1. Casos de Uso: Las principales interacciones que los usuarios pueden realizar con el sistema.

  2. Despliegue: La arquitectura física del sistema, mostrando cómo se despliegan los componentes.

  3. Paquetes: La organización del código fuente en módulos y sus dependencias.

  4. Base de Datos: La estructura de la base de datos con las relaciones entre entidades.

Diagrama de Caso de uso

%% 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
Loading

Diagrama de Despliegue

%% 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


Loading

Diagrama de Paquetes

%% 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
Loading

Diagrama de Bae de Datos

%% 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

Loading

Estructura del Proyecto

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]
Loading
⚠️ **GitHub.com Fallback** ⚠️