Skip to main content

Visión General de la Arquitectura

Descripción del Sistema

AlojaPlus implementa una arquitectura de microservicios moderna con separación clara entre frontend, backend, base de datos y servicios externos. La arquitectura está diseñada para ser escalable, mantenible y segura.

graph TB
subgraph "Cliente"
WEB[Web Browser]
MOB[Mobile Browser]
end

subgraph "Frontend - Next.js "
APP[Next.js Application]
UI[Chakra UI Components]
STATE[Redux Store]
AI_CLIENT[Gemini AI Client]
end

subgraph "Backend - Django"
API[Django REST API]
AUTH[Authentication Layer]
VIEWS[Views Layer]
MODELS[Models Layer]
UTILS[Utils & Helpers]
end

subgraph "Base de Datos"
DB[MySQL 8.0]
end

subgraph "Servicios Externos"
S3[AWS S3]
STRIPE[Stripe API]
GEMINI[Google Gemini AI]
EMAIL[AWS SES]
end

WEB --> APP
MOB --> APP
APP --> UI
APP --> STATE
APP --> AI_CLIENT

APP <--> API
API --> AUTH
API --> VIEWS
VIEWS --> MODELS
MODELS --> DB

API <--> S3
API <--> STRIPE
AI_CLIENT <--> GEMINI
API <--> EMAIL

Principios Arquitectónicos

Separación de Responsabilidades

  • Frontend: Interfaz de usuario y experiencia
  • Backend: Lógica de negocio y APIs
  • Base de Datos: Persistencia de datos
  • Servicios Externos: Funcionalidades especializadas

Escalabilidad

  • Arquitectura horizontal preparada
  • Balanceadores de carga
  • Caché distribuido
  • Auto-scaling configurado

Seguridad

  • Autenticación JWT
  • Encriptación AES-256
  • HTTPS obligatorio
  • Validación de entrada

Mantenibilidad

  • Código modular
  • Documentación completa
  • Testing automatizado
  • Monitoreo continuo

Stack Tecnológico

Frontend

  • Framework: Next.js con App Router
  • Lenguaje: TypeScript
  • UI Library: Chakra UI
  • Estado: Redux Toolkit + Redux Persist
  • Styling: Tailwind CSS + Emotion

Backend

  • Framework: Django 5.1.2
  • API: Django REST Framework 3.15.2
  • Lenguaje: Python 3.8+
  • Base de Datos: MySQL 8.0
  • Autenticación: JWT + BCrypt

Servicios

  • Almacenamiento: AWS S3
  • Pagos: Stripe
  • IA: Google Gemini 2.5 Flash
  • Email: AWS SES
  • Hosting: AWS EC2 + RDS

Patrones de Diseño

Frontend

  • Component Pattern: Componentes reutilizables
  • Container Pattern: Separación UI/Lógica
  • Hook Pattern: Lógica compartida
  • Redux Pattern: Estado global

Backend

  • MVC Pattern: Modelo-Vista-Controlador
  • Repository Pattern: Abstracción de datos
  • Service Pattern: Lógica de negocio
  • Decorator Pattern: Middleware y permisos

Flujo de Datos

Request Flow

Usuario → Frontend → API Gateway → Backend → Base de Datos

Response Flow

Base de Datos → Backend → JSON API → Frontend → Usuario

Authentication Flow

Login → JWT Token → Headers → Validation → Access

Ambiente de Desarrollo vs Producción

Desarrollo

  • Frontend: localhost:3002
  • Backend: localhost:8000
  • Base de Datos: Docker MySQL
  • Debug: Habilitado

Producción

  • Frontend: CDN + Load Balancer
  • Backend: EC2 Auto Scaling
  • Base de Datos: RDS Multi-AZ
  • Monitoring: CloudWatch