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.