Un backend estructurado, escalable y basado en buenas prácticas.
El backend de iMirly se ha diseñado siguiendo principios de arquitectura limpia y buenas prácticas de desarrollo, con el objetivo de garantizar mantenibilidad, escalabilidad y seguridad.
iMirly se apoya en una arquitectura cliente-servidor, donde la aplicación móvil consume una API REST desarrollada en Spring Boot.
Aplicación Android desarrollada con Jetpack Compose que consume servicios REST
Servidor Spring Boot que expone endpoints RESTful para la gestión de datos
Persistencia de datos mediante JPA con base de datos H2 en desarrollo
Esta separación permite desacoplar el frontend del backend y facilita la evolución independiente de cada parte del sistema.
El backend sigue un patrón arquitectónico por capas que separa claramente las responsabilidades del sistema.
Esta estructura mejora la legibilidad, el mantenimiento y la escalabilidad del proyecto.
El modelo de datos de iMirly se ha diseñado para representar de forma clara la relación entre usuarios y servicios, permitiendo una futura ampliación del sistema.
Entidad central del sistema
Anuncio de servicio ofrecido
Clasificación jerárquica
Cardinalidad entre entidades
El modelo sigue una arquitectura relacional normalizada donde los usuarios pueden publicar múltiples servicios (relación 1:N), y cada servicio pertenece a una categoría específica. Las categorías pueden anidarse jerárquicamente mediante auto-referencia.
Esta estructura garantiza la integridad referencial de los datos, facilita consultas eficientes mediante joins y permite escalar el sistema añadiendo nuevas entidades sin modificar las existentes.
La aplicación contempla un sistema de autenticación basado en tokens, preparado para garantizar el acceso seguro a los recursos de la API.
Sistema de login que verifica credenciales y genera tokens de sesión para usuarios válidos
Protección de rutas sensibles mediante filtros de seguridad que validan la autenticación
Arquitectura lista para implementar JSON Web Tokens, estándar de la industria para autenticación stateless
Almacenamiento seguro de contraseñas mediante hash y prevención de vulnerabilidades comunes
Nota: En fase de desarrollo se utiliza una configuración simplificada, con vistas a reforzar la seguridad en fases posteriores.
Durante el desarrollo, iMirly utiliza una base de datos en memoria (H2), lo que permite pruebas rápidas, facilidad de configuración y un entorno controlado.
Cada clase tiene una única razón para cambiar, siguiendo el principio SOLID
Independencia entre presentación, lógica y datos
Nomenclatura clara, comentarios pertinentes y estructura organizada
Uso correcto de métodos HTTP, códigos de estado y formatos JSON
Diseño que permite crecer sin reestructurar el sistema
Control de versiones con Git y repositorio estructurado
Comentarios Javadoc en métodos y clases para facilitar el mantenimiento
Uso de Data Transfer Objects para separar entidades de la API pública
"Un backend bien estructurado es la base de un proyecto sostenible."
La arquitectura de iMirly permite incorporar nuevas funcionalidades sin necesidad de rehacer el sistema.
El modelo de categorías permite añadir nuevos tipos de servicios sin modificar la estructura existente.
Preparado para incorporar sistema de ratings y reviews mediante nuevas entidades relacionadas.
Arquitectura lista para integrar pasarelas de pago y gestión de transacciones.
Capacidad para añadir endpoints de gestión y roles administrativos.
Cambio transparente de H2 a MySQL o PostgreSQL para producción manteniendo JPA.
Estructura preparada para integrar servicios de mensajería y alertas en tiempo real.
La tecnología de iMirly no se ha planteado como un fin en sí mismo, sino como un soporte sólido para una solución real y escalable.
"Las buenas prácticas no se ven, pero se notan."
El backend de iMirly demuestra que el proyecto se apoya en una base técnica coherente, bien estructurada y alineada con los estándares actuales del desarrollo de aplicaciones.
Siguiente sección: Equipo