Tienda Online "Perfumes del Puro"

“Perfumes del Puro” es una tienda en línea moderna dedicada a la venta de perfumes exclusivos, diseñada para ofrecer una experiencia de compra fluida, segura e intuitiva. El sistema permite a los usuarios explorar una amplia gama de productos filtrando por marca, precio, categoría u ofertas, así como realizar pedidos y pagos de forma cómoda y eficiente. A nivel interno, el sistema incluye un panel administrativo profesional que permite al propietario y al personal autorizado gestionar perfumes, usuarios, promociones, pedidos y stock, garantizando un control total sobre la operación de la tienda.

Imagen del proyecto Tienda Online "Perfumes del Puro"

Technical Information

Implementation details and project architecture

--Arquitectura General:

El proyecto está compuesto por cinco servicios principales, los cuales interactúan de manera orquestada a través de protocolos HTTP y APIs REST, desplegados en un entorno productivo controlado dentro de un servidor VPS dedicado.

El sistema fue concebido bajo una arquitectura distribuida, donde cada módulo es autónomo, pero se comunica mediante una red de contendores de Docker configurada.

Los servicios que conforman el sistema son los siguientes:

1-) Frontend Público – Tienda Online (Next.js)

Framework: Next.js (React 19)

Función: Proporcionar la interfaz de usuario principal de la tienda, donde los clientes pueden explorar perfumes, aplicar filtros, añadir productos al carrito y realizar compras.

Características:

Renderizado híbrido (SSR/SSG) para mejorar SEO y tiempos de carga.

Rutas dinámicas para páginas de productos.

Sistema de filtrado avanzado y búsqueda interactiva.

Integración directa con la API central mediante peticiones HTTP seguras.

2-) Backend – API Principal (Nest.js)

Framework: Nest.js (Node.js)

Función: Servir como núcleo lógico del sistema, gestionando la lógica de negocio, la autenticación, el control de usuarios, los pedidos y la persistencia de datos.

Características:

Arquitectura modular con inyección de dependencias (DI).

Controladores y servicios organizados según dominio funcional.

Implementación de DTOs, Entities y Repositories para mantener una capa de acceso a datos limpia.

Uso de TypeORM como ORM para la comunicación con PostgreSQL.

Mecanismos de autenticación y autorización JWT.

3-) Panel Administrativo (Next.js)

Framework: Next.js

Función: Ofrecer una interfaz de administración privada que permita gestionar perfumes, usuarios, pedidos, ofertas y categorías.

Características:

Sistema de login.

Tableros de control con estadísticas de ventas y productos.

Formularios dinámicos para CRUD de entidades.

Interfaz desarrollada con Tailwind CSS y React Hooks.

4-) Servicio de Almacenamiento de Archivos (MinIO)

Tecnología: MinIO Server (S3 compatible)

Función: Gestionar el almacenamiento y acceso a recursos multimedia, principalmente imágenes de perfumes, banners y contenido estático.

Integración:

Conectado directamente al servicio Nest.js mediante SDK oficial.

Permite subida y recuperación de archivos con URLs firmadas.

6-) Base de Datos (PostgreSQL)

Motor: PostgreSQL 16

Función: Almacenamiento relacional de toda la información del negocio: perfumes, usuarios, pedidos, ofertas, roles, categorías, etc.

Características:

Diseño normalizado bajo modelo entidad-relación.

Uso de claves primarias, foráneas e índices para optimización.

Migraciones automatizadas a través de TypeORM CLI.

--Infraestructura y Despliegue:

*Servidor VPS:

-Sistema operativo: Ubuntu Server 22.04 LTS

-Servicios levantados en contendores de Docker.

*Proxy Inverso (NGINX):

-Configurado para enrutar tráfico HTTPS hacia los servicios Next.js y Nest.js.

-Implementación de certificados SSL (Let’s Encrypt) para asegurar la comunicación.

-Mecanismos de redirección de tráfico.

*Entornos:

-Desarrollo: despliegue local y sincronización con el VPS mediante ramas dev y pipelines de GitHub Actions.

-Producción: dominio público con HTTPS, versión estable del código desplegada automáticamente.

*Flujos de Integración Continua (CI/CD):

-Configurados con GitHub Actions y GitHub Apps.

-Ejecución automática de builds, tests y despliegues.

-Acceso SSH seguro al VPS mediante claves y tokens encriptados.

El Problema

El negocio enfrentaba la necesidad de contar con una plataforma:

Capaz de vender perfumes en línea de forma cómoda, moderna y accesible desde cualquier dispositivo.

Que agilizara el proceso de compra, reduciendo fricciones en la experiencia del usuario.

Que facilitara la gestión interna del catálogo, ofertas, pedidos y usuarios sin depender de herramientas externas.

Que ofreciera una arquitectura robusta y segura, capaz de sostener el crecimiento del negocio a largo plazo.

En resumen, el reto era unificar toda la operación del negocio —desde la exhibición del catálogo hasta la gestión administrativa— en un único sistema integrado y escalable.

La Solución

La solución se concretó mediante el desarrollo e implementación de una arquitectura distribuida basada en cinco servicios principales:

🛍️ Tienda Online (Next.js):

-Aplicación pública donde los clientes pueden explorar perfumes, aplicar filtros avanzados, consultar ofertas y realizar compras.

-Interfaz moderna, responsive y centrada en la experiencia del usuario.

⚙️ API Principal (Nest.js):

-Contiene la lógica del negocio, los controladores y los mecanismos de persistencia de datos.

-Expone endpoints seguros para la comunicación con las interfaces de usuario y el panel administrativo.

-Implementa prácticas limpias de arquitectura (DTOs, módulos, servicios, repositorios).

🧾 Panel Administrativo (Next.js):

-Plataforma privada para la gestión de perfumes, usuarios, pedidos, ofertas y reportes de ventas.

-Permite mantener actualizado el catálogo y controlar el negocio en tiempo real.

🗂️ Servicio de Archivos (MinIO):

-Almacenamiento de imágenes y recursos estáticos (fotografías de perfumes, banners, etc.) con acceso rápido y seguro.

-Integrado con la API y los servicios de frontend.

🧠 Base de Datos (PostgreSQL)

-Motor de base de datos relacional para la persistencia estructurada y confiable de toda la información del sistema.

-Modelo relacional optimizado y diseñado con integridad referencial.

El Impacto

-Experiencia de compra mejorada: los clientes pueden explorar perfumes de forma intuitiva y rápida, lo que aumenta la satisfacción y fidelización.

-Automatización de la gestión comercial: los administradores controlan inventario, ventas, usuarios y promociones desde un solo panel.

-Escalabilidad técnica: la arquitectura modular permite incorporar nuevos servicios y funcionalidades (por ejemplo, pasarelas de pago o analítica avanzada).

-Seguridad y disponibilidad: gracias al despliegue en VPS con SSL, los usuarios interactúan con un entorno confiable.

-Optimización operativa: se reducen costos y tiempos de mantenimiento mediante CI/CD y orquestación automatizada.

En conjunto, “Perfumes del Puro” logra digitalizar completamente el proceso de venta y gestión, mejorando la competitividad del negocio en el mercado online.

Aprendizajes

🔹Gestión de proyectos y extracción de requisitos:

-Análisis del flujo de compra y venta digital.

-Identificación de roles, entidades y necesidades clave del cliente.

-Planificación de funcionalidades mínimas viables (MVP) y escalamiento por fases.

🔹 Diseño de arquitectura

-Construcción de una arquitectura de microservicios escalable y desacoplada.

-Definición de la comunicación entre servicios mediante API REST y control de acceso.

-Configuración de NGINX como proxy inverso para el enrutamiento de dominios y certificados SSL.

🔹 Diseño y maquetación de tiendas online

-Implementación de interfaces modernas con Next.js y Tailwind CSS.

-Aplicación de principios UX/UI para mejorar la navegación, filtrado y experiencia de compra.

-Integración de componentes reutilizables y optimización de imágenes con MinIO.

🔹 Despliegue y orquestación de servicios

-Implementación completa en un servidor VPS autogestionado.

-Separación de entornos de desarrollo y producción, con configuración específica para cada uno.

-Gestión de servicios de backend, frontend, base de datos y almacenamiento bajo NGINX.

🔹 Flujos de integración continua

-Configuración de GitHub Actions para despliegue automático de nuevos cambios.

-Uso de GitHub Apps para conexión directa con el VPS.

-Control de versiones y despliegue seguro mediante pipelines.

Technologies Used

Linux

Linux

TypeORM

TypeORM

Docker

Docker

Github Actions

Github Actions

Nginx

Nginx

Next.js

Next.js

React.js

React.js

Nest.js

Nest.js

PostgreSQL

PostgreSQL

Git

Git

Cursor

Cursor

Visual Studio Code

Visual Studio Code

Github

Github

Typescript

Typescript

Github Apps

Github Apps

Javascript

Javascript

HTML

HTML

CSS

CSS

Node.js

Node.js

V0

V0

Npm

Npm

Tailwind CSS

Tailwind CSS