Ricardo Yalico - Portfolio

Proyecto - Glossy

Glossy es una plataforma de e-commerce completa con gestión de productos, carrito de compras e inventario administrativo.

Industria
E-commerce
Año
Servicio
E-commerce Platform

Challenge

Diseñar y desarrollar una plataforma de e-commerce completa que abarque dos áreas principales: experiencia de usuario (catálogo de productos y carrito de compras) y gestión administrativa (inventario y control de productos). El sistema debe cumplir con los siguientes requisitos:

  1. Frontend de E-commerce: Visualización de productos, carrito de compras, detalle de productos, banners y secciones especiales por campaña.
  2. Panel de Administración: Sistema de login con autenticación segura para acceder a funciones administrativas.
  3. Gestión de Productos: Crear, editar y eliminar productos, gestionar categorías e imágenes.
  4. Servidor de Imágenes: Sistema de almacenamiento de imágenes similar a S3 para gestionar assets multimedia.
  5. Autenticación OAuth2: Servidor dedicado para autenticación y autorización de usuarios.
  6. Infraestructura: Implementar CI/CD con despliegue automatizado usando Docker y GitHub Actions.
  7. Seguridad: Gestionar rutas públicas y privadas con control de acceso basado en autenticación.

Solution

Arquitectura de alto nivel de la aplicación.

Arquitectura de alto nivel de la plataforma Glossy.

El proyecto está compuesto por 4 aplicaciones principales más un repositorio de orquestación:

1. Glossy Web (Frontend) - Aplicación Angular con Tailwind CSS que sirve como interfaz principal:

  • Catálogo de productos con búsqueda y filtros
  • Sistema de carrito de compras
  • Detalle de productos con imágenes y especificaciones
  • Banners y secciones especiales por campaña
  • Portal de administración con login
  • Panel de gestión de productos, categorías e imágenes
  • Rutas públicas (catálogo) y privadas (administración)
  • Dominio: glossy-web.mimarca.pe

2. Glossy Backend - Servidor Java Spring Boot con Maven que coordina la lógica de negocio:

  • API RESTful para gestión de productos
  • Gestión de inventario
  • Operaciones CRUD de productos y categorías
  • Integración con servidor de imágenes
  • Validación de tokens OAuth2
  • Lógica de negocio del carrito y pedidos
  • Dominio: glossy-backend-server.mimarca.pe

3. Glossy Image Server - Servidor Python FastAPI dedicado para almacenamiento de imágenes:

  • Sistema de almacenamiento similar a S3
  • Upload y gestión de imágenes de productos
  • Optimización y compresión de imágenes
  • Servicio de CDN para assets multimedia
  • Dominio: glossy-image-server.mimarca.pe

4. Glossy OAuth2 Server - Servidor Java Spring Boot de autenticación:

  • Implementación completa de OAuth2
  • Gestión de tokens de acceso y refresh
  • Autenticación de usuarios y administradores
  • Control de sesiones
  • Validación de permisos y roles
  • Consumido por Frontend y Backend para proteger rutas
  • Dominio: glossy-oauth2-server.mimarca.pe

5. Docker Compose Repository - Repositorio de orquestación:

  • Archivo docker-compose.yml centralizado
  • Configuración de red entre contenedores
  • Variables de entorno y secrets
  • Configuración de volúmenes persistentes
  • Scripts de despliegue

Catálogo de Productos

Vista principal del catálogo con productos, filtros de búsqueda, carrito de compras y secciones especiales por campaña. Los usuarios pueden navegar fácilmente entre categorías y agregar productos al carrito.

Glossy Platform Screenshot 1

Panel de Administración

Portal administrativo con sistema de autenticación OAuth2. Permite a los administradores gestionar productos, crear y editar categorías, subir imágenes y controlar el inventario completo.

Glossy Platform Screenshot 2

Gestión de Inventario

Sistema completo de gestión de inventario con estadísticas en tiempo real, control de stock, historial de transacciones y reportes detallados para la toma de decisiones.

Glossy Platform Screenshot 3
  • Infraestructura y CI/CD: Cada proyecto tiene su propio Dockerfile y repositorio en GitHub. Al hacer push a la rama principal, GitHub Actions ejecuta un pipeline que construye la imagen Docker y la publica en Docker Hub. En el servidor Ubuntu 24.04.03, un GitHub Runner self-hosted ejecuta automáticamente el docker-compose pull y restart para desplegar las nuevas versiones.

  • Base de Datos: PostgreSQL ejecutándose como contenedor Docker en el servidor, con volúmenes persistentes para garantizar la integridad de los datos. Todas las aplicaciones backend se conectan a esta instancia centralizada.

  • Networking y Seguridad: Cloudflare Tunnel gestiona el acceso a través del dominio mimarca.pe, proporcionando SSL/TLS automático y protección DDoS. Cada servicio tiene su subdominio dedicado y las comunicaciones internas entre contenedores utilizan la red Docker privada.

  • Flujo de Autenticación: El usuario inicia sesión en el Frontend, que solicita un token al OAuth2 Server. El token es almacenado en el cliente y enviado en cada petición al Backend. El Backend valida el token con el OAuth2 Server antes de procesar cualquier operación administrativa. Las rutas públicas (catálogo) no requieren autenticación.

  • Gestión de Imágenes: Cuando un administrador sube una imagen de producto desde el panel de administración, el Frontend la envía al Image Server, que retorna una URL. Esta URL se almacena en la base de datos asociada al producto y es servida públicamente a través del catálogo.

Visit website

Technologies

HTML5

CSS3

TypeScript

Angular

TailwindCSS

Java

SpringBoot

Maven

Python

FastAPI

PostgreSQL

OAuth2

Docker

GitHub

Cloudflare

Ubuntu

Git

main*
Go Live