RashelePerfumeria.com



Resumen del Proyecto - Rashele Perfumería

Descripción General

Rashele Perfumería es una aplicación web de e-commerce full-stack especializada en la venta de perfumes y fragancias.

Tipo: Aplicación Web E-Commerce Propósito: Plataforma de retail especializada en perfumería con panel de administración, gestión de clientes y automatización de marketing.


Features Principales

Funcionalidades para Clientes

  • Catálogo de Productos: Navegación por categorías (Mujer, Hombre, Unisex, Ofertas Especiales)
  • Detalles de Producto: Información completa de perfumes (marca, tamaño, género, concentración: EDT, EDP, Parfum)
  • Carrito y Pedidos: Sistema completo de checkout con integración de pagos
  • Suscripción a Newsletter: Marketing por email con verificación double opt-in
  • Cuentas de Usuario: Registro, historial de pedidos y gestión de perfil
  • Multi-Moneda: Soporte para múltiples monedas con tasas de cambio
  • Multi-Idioma: Contenido bilingüe (Español/Inglés)

Panel de Administración

  • Gestión de Productos: CRUD completo con carga de imágenes
  • Gestión de Categorías: Organización jerárquica de productos
  • Gestión de Pedidos: Seguimiento y administración con estados
  • Gestión de Clientes: Visualización y administración de perfiles
  • Newsletter: Gestión de suscriptores y campañas segmentadas
  • Campañas de Marketing: Programación y envío de emails
  • Blog/Publicaciones: Creación de contenido con integración a redes sociales
  • Panel de Configuración: Ajustes del sitio, branding, métodos de pago
  • Dashboard Analítico: Métricas de ventas, seguimiento de pedidos, rendimiento de productos
  • Migración de Datos: Herramientas de importación CSV

Stack Tecnológico

Frontend

TecnologíaVersiónUso
Next.js15.5.4Framework principal con App Router
React19.1.0Librería UI
TypeScript5Lenguaje principal
Tailwind CSS3.4.17Framework de estilos
Radix UI-Biblioteca de componentes UI
React Hook Form7.63.0Gestión de formularios
Zod4.1.11Validación de esquemas
Lucide React0.544.0Iconos
Next-themes0.4.6Gestión de temas
Sonner2.0.7Notificaciones toast

Backend & Base de Datos

TecnologíaVersiónUso
Prisma6.17.0ORM
PostgreSQL-Base de datos (Neon cloud)
NextAuth.js4.24.11Autenticación
bcryptjs3.0.2Hash de contraseñas

Servicios Externos

ServicioPropósito
CloudinaryHosting de imágenes y CDN
ResendServicio de emails transaccionales
StripeProcesamiento de pagos
Vercel AnalyticsAnálisis de rendimiento

Herramientas de Desarrollo

  • ESLint 9: Linting con configuración Next.js
  • date-fns: Manejo de fechas
  • csv-parse: Procesamiento de CSV para migraciones

Arquitectura y Patrones

Estructura del Proyecto

/perfumeria-rashelle/
├── src/
│   ├── app/                    # Next.js App Router
│   │   ├── (public)/           # Páginas públicas
│   │   ├── admin/              # Dashboard admin (protegido)
│   │   └── api/                # API routes
│   ├── components/             # Componentes React
│   │   ├── admin/              # Componentes admin
│   │   └── ui/                 # Componentes reutilizables
│   ├── contexts/               # React contexts (LanguageContext)
│   ├── hooks/                  # Custom hooks (useCurrency, useSiteSettings)
│   ├── lib/                    # Utilidades y configuración
│   │   ├── auth.ts             # Config NextAuth
│   │   ├── db.ts               # Cliente Prisma
│   │   ├── validations.ts      # Esquemas Zod
│   │   └── email.ts            # Templates de email
│   └── middleware.ts           # Middleware Next.js (auth/CORS)
├── prisma/
│   ├── schema.prisma           # Esquema de base de datos (13 modelos)
│   └── seed.ts                 # Script de seeding
├── public/                     # Assets estáticos
├── scripts/
│   └── create-admin.ts         # Creación de usuario admin
└── MD Files/                   # Documentación (23+ archivos)

Patrones Implementados

  1. Next.js App Router: Server Components para renderizado del lado del servidor
  2. Autenticación por Capas: NextAuth.js con estrategia JWT, protección de rutas vía middleware
  3. Control de Acceso Basado en Roles: ADMIN/CLIENTE
  4. ORM & Base de Datos: Prisma con PostgreSQL, relaciones definidas
  5. Sistema de Diseño: Componentes reutilizables basados en Radix UI
  6. API RESTful: Rutas API con validación Zod y manejo de errores consistente

Modelos de Base de Datos (13)

  • User, Product, Category
  • Order, OrderItem
  • Newsletter, Campaign
  • Post, SocialMedia
  • SearchLog, SiteSettings
  • Configuration, PaymentMethod

Buenas Prácticas Implementadas

Seguridad

Autenticación & Autorización

  • Hash de contraseñas con bcryptjs
  • Sesiones JWT con expiración de 7 días
  • Control de acceso basado en roles
  • Protección CSRF en middleware
  • Protección CORS con orígenes permitidos

Validación de Datos

  • Validación de entrada con esquemas Zod
  • Prevención de SQL injection vía Prisma ORM
  • Requisitos de contraseña fuerte (12+ caracteres, mayúsculas, minúsculas, números, caracteres especiales)
  • Mensajes de error genéricos para prevenir enumeración de usuarios

Headers de Seguridad

  • X-Frame-Options
  • X-Content-Type-Options
  • Content Security Policy (CSP)

Gestión de Secretos

  • Variables de entorno separadas (.env)
  • Credenciales no comprometidas en código

Calidad de Código

TypeScript Strict Mode habilitado ✅ ESLint configurado con estándares Next.js ✅ Convenciones de nombres consistentes ✅ Modularización de componentes ✅ Separación Server/Client Components ✅ Type Safety completo con Zod ✅ Indexación de base de datos en campos frecuentemente consultados

Gestión de Datos

ORM Type-Safe con Prisma ✅ Versionamiento de esquema (migraciones) ✅ Integridad relacional (foreign keys) ✅ Eliminación en cascada para registros relacionados ✅ Script de seed para datos de prueba

Rendimiento

Optimización de imágenes Next.js ✅ CDN Cloudinary para medios ✅ Analytics integrado (Vercel) ✅ Optimización de queries con índices ✅ Estrategias de caché para assets estáticos


Generado: 2025-10-16 Versión del Proyecto: 1.0 Stack Principal: Next.js 15.5 + React 19 + TypeScript + Prisma + PostgreSQL