← Volver a proyectos

Tienda online de muebles CR con panel admin

Plataforma de comercio electrónico construida con Next.js App Router y arquitectura por dominios. Incluye autenticación, carrito, checkout, órdenes, pagos y control de inventario, con reglas especiales para productos por encargo.

Reto

Construir una tienda online robusta con operaciones transaccionales seguras, control de inventario por tipo de producto y panel admin para operar pagos/órdenes sin inconsistencias.

Solución

Se implementó arquitectura modular con casos de uso por dominio, contratos estables de server actions y reglas transaccionales en checkout, cancelación y confirmación de pagos. Se agregaron guards de autorización, rate limiting y validación de entorno para endurecer seguridad operativa.

Resultados

  • - Flujo completo de compra desde catálogo hasta orden confirmada
  • - Panel admin funcional para operaciones diarias de órdenes y pagos
  • - Manejo correcto de productos por encargo sin bloqueo de stock
  • - Consistencia de montos monetarios usando enteros en colones
  • - Base escalable para evolucionar promociones, envíos y catálogo

Ficha técnica del sistema

Resumen

Tienda online de muebles para Costa Rica con experiencia pública de compra y panel administrativo privado para operar catálogo, inventario, órdenes y pagos con reglas de negocio seguras.

Qué problema resuelve

  • - Centraliza venta online y operación administrativa en una sola plataforma
  • - Controla inventario de forma distinta para productos normales y por encargo
  • - Evita inconsistencias en órdenes/pagos mediante reglas de estado
  • - Reduce errores de cálculo monetario guardando montos enteros en CRC

Stack y tecnologías

  • - Next.js 16 + React 19 + TypeScript
  • - PostgreSQL + Prisma
  • - better-auth (email/password y opcional Google)
  • - Zustand para estado cliente (carrito, dirección, UI)
  • - Zod para validación
  • - Tailwind + componentes custom y Radix

Cómo está organizado

  • - src/app: rutas y layouts de shop/auth/admin
  • - src/features: dominios (products, orders, payments, checkout, inventory, account)
  • - src/shared: UI reusable y lógica pura de dominio
  • - src/lib: infraestructura (prisma, auth, env, email, rate limit)
  • - Reglas de capas documentadas en ARCHITECTURE.md

Flujo principal

  • - Cliente navega catálogo, agrega al carrito y realiza checkout
  • - Servidor recalcula totales y valida disponibilidad
  • - Si no es por encargo, descuenta stock dentro de transacción
  • - Admin confirma/rechaza pagos según reglas de estado
  • - Cancelación admin restaura inventario y sincroniza pagos pendientes

Módulos clave

  • - Orders: place-order y cancel-order transaccionales
  • - Payments: confirmación/rechazo con guardas de estado
  • - Inventory: control por producto y modo made-to-order
  • - Auth: guards requireAdmin/requireAdminAction
  • - Checkout: pasos de dirección y verificación final

Fortalezas

  • - Excelente separación por dominio y mantenibilidad
  • - Flujos críticos protegidos por transacciones
  • - Seguridad operativa con rate limit + validación de env
  • - Pipeline de calidad y despliegue bien definido

Riesgos / deuda técnica

  • - Reglas de negocio de estados pueden crecer en complejidad
  • - Dependencia de Redis externo para rate limiting
  • - Manejo de concurrencia en inventario requiere monitoreo continuo
  • - Costos de email/notificaciones pueden crecer con volumen

¿Tienes un sistema que necesitas construir o mejorar?

Te ayudo a convertir tu necesidad en una solución técnica sólida, mantenible y alineada al negocio.