Referencia

Arquitectura general

Visión general de la arquitectura de ServiciosApp

Arquitectura general

ServiciosApp está compuesto por tres grandes componentes que trabajan juntos para ofrecer la experiencia completa.

Diagrama general

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   Mobile     │     │     Web      │     │   Documentación
│  (Android)   │     │  (Frontend)  │     │   (Docus)    │
│  (iOS)       │     │              │     │              │
└──────┬───────┘     └──────┬───────┘     └──────────────┘
       │                    │
       └─────────┬──────────┘
                 │ API HTTP
                 ▼
        ┌────────────────┐
        │    Backend      │
        │  (Spring Boot)  │
        │  Hexagonal +    │
        │  CQRS           │
        └───────┬────────┘
                │
        ┌───────▼────────┐
        │   PostgreSQL    │
        │   (Base datos)  │
        └────────────────┘

Backend

El backend está desarrollado con Spring Boot 3.4 y Java 21, siguiendo una arquitectura hexagonal con CQRS estricto.

Tecnologías principales:

  • Spring Boot 3.4.4
  • Spring Security con JWT
  • PostgreSQL con Flyway (migraciones)
  • QueryDSL para consultas tipadas
  • Documentación OpenAPI (Swagger)
  • Azure Storage para imágenes
  • Testcontainers para pruebas de integración

Arquitectura:

  • Domain: Modelos de negocio y puertos (interfaces)
  • Application: Casos de uso, comandos y queries
  • Infrastructure: Adaptadores web (REST), repositorios, servicios externos

Modelos de dominio principales (~35 entidades):

  • Usuarios, autenticación y perfiles
  • Empresas y usuarios de empresa
  • Sucursales e imágenes
  • Servicios, canales de servicio y precios
  • Horarios (sucursales y canales)
  • Favoritos
  • Reviews y calificaciones
  • Categorías y atributos de búsqueda
  • Notificaciones
  • Estadísticas de interacción

Mobile

La aplicación móvil está desarrollada con Expo 54 + React Native 0.81 + TypeScript.

Tecnologías principales:

  • Expo SDK 54
  • React Native 0.81
  • TypeScript con tipado estricto
  • NativeWind (Tailwind CSS para React Native)
  • Zustand para estado global
  • Zod para validación de esquemas
  • React Navigation (Expo Router)
  • Axios para peticiones HTTP

Arquitectura en capas:

  • Schemas: Esquemas de API y dominio con validación Zod
  • Services: Lógica de negocio y comunicación HTTP
  • Mappers: Transformaciones entre DTOs y modelos de dominio
  • Hooks: Lógica de datos reutilizable
  • Controllers: Coordinación de UI y vista
  • Components: Componentes reutilizables

Web (Frontend de usuarios)

La versión web para usuarios está en desarrollo, compartiendo la misma API del backend.

Documentación

Este sitio de documentación está construido con Nuxt 4 + Docus y todo el contenido está en archivos Markdown.


← Volver a referencia · Siguiente: API del backend →

Copyright © 2026