iMirly Backend

API REST con Spring Boot y panel web para gestionar cuentas, anuncios y favoritos del marketplace iMirly

Parte del TFC iMirly · Proyecto en equipo
Java 17 Spring Boot Spring Security JWT JPA H2 / PostgreSQL
Mockup del panel web del backend de iMirly en un portátil

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.

Pantalla de acceso con inicio de sesión y registro
Acceso: inicio de sesión y registro
Panel con la cuenta del usuario y el formulario para publicar un servicio
Mi cuenta y publicación de un servicio (paso 1)
Listado de mis anuncios con sus estados
Mis anuncios con su estado y acciones
Explorador de servicios de otros usuarios con favoritos
Explorar servicios de otros usuarios y marcar favoritos

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)