iMirly Backend
API REST con Spring Boot y panel web para gestionar cuentas, anuncios y favoritos del marketplace iMirly
Sobre el proyecto
Es uno de los backends de iMirly, mi TFC en equipo: un marketplace que conecta a quien necesita un servicio con profesionales de su zona. Este repositorio expone una API REST para la app Android y además sirve, desde el propio Spring Boot, un panel web en HTML, CSS y JavaScript para probarla sin herramientas externas.
Está organizado por capas clásicas (controlador → servicio → repositorio) con DTO de entrada y salida, validación y un manejador global de errores. En desarrollo usa H2 en archivo y al arrancar carga las categorías y subcategorías del catálogo; para producción tiene un perfil con PostgreSQL.
La versión principal del backend, con arquitectura hexagonal, contratos y monedero, está en el repositorio iMirly/iMirly.
Características principales
JWT sin estado
Registro e inicio de sesión con Spring Security, contraseñas con BCrypt y token en cada petición.
29 endpoints
Usuarios, anuncios, categorías y favoritos, con listados públicos paginados y búsqueda.
Anuncios en dos pasos
Datos generales y luego campos propios de cada subcategoría; estados borrador, publicado y despublicado.
Panel web integrado
HTML, CSS y JavaScript servidos desde static/ para probar toda la API desde el navegador.
Cómo se atiende una petición
Filtro JWT
Valida el token y carga el usuario
Controller
Recibe el DTO y lo valida
Service
Aplica las reglas del negocio
Repository
JPA + Hibernate sobre H2 o PostgreSQL
Galería
Capturas del panel web con datos de ejemplo.
Stack Tecnológico
Backend
- Java 17
- Spring Boot 3.2
- Spring Security + JWT
- Bean Validation
Datos
- JPA + Hibernate
- H2 (desarrollo)
- PostgreSQL (producción)
- Datos iniciales con data.sql
Herramientas
- Maven
- Lombok y MapStruct
- Panel en HTML, CSS y JS
- GitHub (organización iMirly)