En producción
Obsidian Library
Next.jsStripePostgreSQL

Obsidian Library

Sistema integral de gestión de biblioteca con préstamos, suscripciones y pagos automatizados

Año

2026

Duración

3 meses

Rol

Full Stack Developer

Tipo

Proyecto Personal

Resumen

69

Endpoints

API completa y modular

JWT

Auth

Access token y refresh token

Stripe

Pagos

Integración con Stripe

PageResponse

Paginación

PageResponse reutilizable

El Problema

Se necesitaba una plataforma robusta para administrar libros, préstamos, reservas, suscripciones y pagos dentro de una sola solución, con seguridad, trazabilidad y lógica de negocio bien definida.

La Solución

Diseñé y desarrollé una arquitectura full stack con backend en Spring Boot y frontend en Next.js, integrando autenticación segura, pagos con Stripe, webhooks, notificaciones por correo y una experiencia fluida para administración y usuarios finales.

Arquitectura

01

Arquitectura en capas

Backend organizado en layers de configuración, controller, domain, exception, mapper, model, payload, repository, service y util para mantener separación de responsabilidades.

02

Seguridad de sesión

Autenticación basada en access token y refresh token, con manejo de cookies HTTP-only para mejorar la protección de la sesión.

03

Procesos asíncronos

Implementación de webhooks, envío de correos con Thymeleaf y flujos automáticos para pagos, multas y reembolsos.

Stack Tecnológico

Frontend

Next.jsTypeScriptTailwind CSSZustandTanStack QueryZod

Backend

Spring BootJavaSpring SecurityJWTRefresh TokenThymeleaf

Database

PostgreSQL

DevOps

DockerVercel

Other

StripeWebhookHTTP-only CookiesREST API

Características Clave

Catálogo completo

Gestión de géneros, subgéneros, libros y búsquedas organizadas.

Préstamo y reservas

Control de préstamos, reservas y disponibilidad de libros.

Planes y suscripciones

Administración de planes de suscripción con lógica de negocio asociada.

Pagos y reembolsos

Cobros, refunds, multas y confirmaciones automatizadas con Stripe.

Lista de deseos

Funcionalidad para guardar libros de interés.

Reseñas

Sistema de opiniones para enriquecer la experiencia del usuario.

Retos Técnicos

01

Flujos de pago

Problema

Era necesario manejar pagos, multas, suscripciones y devoluciones sin romper la consistencia del sistema.

Solución

Integré Stripe con webhooks y reglas de negocio claras para procesar pagos, refunds y estados de suscripción de forma confiable.

02

Autenticación segura

Problema

La sesión debía mantenerse segura sin exponer tokens en el cliente.

Solución

Usé cookies HTTP-only junto con access token y refresh token para reforzar la seguridad de autenticación.

03

Paginación consistente

Problema

Varias listas necesitaban respuestas uniformes y reutilizables.

Solución

Implementé PageResponse para estandarizar la paginación en endpoints como libros, reseñas y usuarios.

Resultados

01

Plataforma con 69 endpoints funcionales y organizados por dominio

02

Sistema completo de préstamos, reservas, suscripciones y pagos

03

Arquitectura escalable y mantenible con separación clara de responsabilidades

04

Integración de correo, webhooks y Stripe para automatización del negocio

Lecciones Aprendidas

"Una buena arquitectura por capas simplifica mantenimiento y crecimiento."

"Los webhooks y los flujos de pago necesitan manejo cuidadoso de estados e idempotencia."

"La seguridad mejora mucho al combinar HTTP-only cookies con tokens bien gestionados."

"Estandarizar respuestas como PageResponse reduce complejidad en frontend y backend."

Interesado en mi trabajo?

Trabajemos juntos

Contáctame