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ía | Versión | Uso |
---|---|---|
Next.js | 15.5.4 | Framework principal con App Router |
React | 19.1.0 | Librería UI |
TypeScript | 5 | Lenguaje principal |
Tailwind CSS | 3.4.17 | Framework de estilos |
Radix UI | - | Biblioteca de componentes UI |
React Hook Form | 7.63.0 | Gestión de formularios |
Zod | 4.1.11 | Validación de esquemas |
Lucide React | 0.544.0 | Iconos |
Next-themes | 0.4.6 | Gestión de temas |
Sonner | 2.0.7 | Notificaciones toast |
Backend & Base de Datos
Tecnología | Versión | Uso |
---|---|---|
Prisma | 6.17.0 | ORM |
PostgreSQL | - | Base de datos (Neon cloud) |
NextAuth.js | 4.24.11 | Autenticación |
bcryptjs | 3.0.2 | Hash de contraseñas |
Servicios Externos
Servicio | Propósito |
---|---|
Cloudinary | Hosting de imágenes y CDN |
Resend | Servicio de emails transaccionales |
Stripe | Procesamiento de pagos |
Vercel Analytics | Aná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
- Next.js App Router: Server Components para renderizado del lado del servidor
- Autenticación por Capas: NextAuth.js con estrategia JWT, protección de rutas vía middleware
- Control de Acceso Basado en Roles: ADMIN/CLIENTE
- ORM & Base de Datos: Prisma con PostgreSQL, relaciones definidas
- Sistema de Diseño: Componentes reutilizables basados en Radix UI
- 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