Fase 1: Recolección de Requisitos

Requisitos Funcionales

Usuarios

  1. Registro e inicio de sesión:

    • Los usuarios deben poder registrarse, iniciar sesión y cerrar sesión.
    • Roles: Cliente y Administrador.
  2. Gestión de perfiles:

    • Los usuarios pueden editar su información personal (nombre, correo, contraseña).
    • El administrador puede gestionar los usuarios (consultar, actualizar, deshabilitar cuentas).
  3. Recuperación de contraseña:

    • Los usuarios deben poder recuperar su contraseña mediante un enlace enviado a su correo.
  4. Autenticación de dos factores (2FA):

    • Implementación futura para mayor seguridad. Integración opcional según las necesidades del proyecto.

Productos

  1. CRUD de productos:

    • El administrador puede crear, leer, actualizar y eliminar productos.
    • Atributos: nombre, descripción, precio, inventario, imágenes.
  2. Gestión de imágenes:

    • El sistema almacenará las imágenes en el directorio /static/images del backend utilizando el sistema de archivos de Railway.

Carrito y Pedidos

  1. Gestión del carrito de compras:

    • Los clientes pueden agregar, editar o eliminar productos en su carrito.
  2. Gestión de pedidos:

    • Los clientes pueden realizar pedidos y consultar su estado (pendiente, procesado, enviado, cancelado).
    • Seguimiento de pedidos: Los clientes podrán recibir notificaciones o actualizaciones del estado del pedido en tiempo real.

Pagos

  1. Integración con PayPal Sandbox:

    • Los usuarios podrán realizar pagos utilizando PayPal Sandbox.
    • Los pagos serán validados a través de un servidor externo que confirmará la transacción.
  2. Validación y actualización de pagos:

    • Una vez validado el pago, el sistema actualizará automáticamente el estado del pedido según el resultado de la transacción (pendiente, procesado, cancelado).

Accesibilidad y SEO

  1. Frontend accesible:

    • Cumplir con los estándares de accesibilidad (WCAG 2.1).
    • Aplicar buenas prácticas de SEO, como el uso de etiquetas semánticas, metadatos, y optimización de la velocidad de carga.

Requisitos Técnicos

Backend

  1. Frameworks y herramientas:

    • Django como framework principal.
    • Django REST Framework para API RESTful.
  2. Autenticación:

    • Basada en JWT con roles de usuario.
  3. Base de datos:

    • PostgreSQL para almacenamiento seguro y escalable.
  4. Caché:

    • Uso de Redis para mejorar el rendimiento.

Frontend

  1. Frameworks y tecnologías:

    • React con Vite para una configuración rápida.
    • TailwindCSS para diseño moderno y responsivo.
    • JavaScript para tipado estático y código robusto.
  2. Optimización:

    • Lazy loading y code splitting para mejorar el rendimiento.
    • Axios para el consumo de APIs.

Infraestructura

  1. Contenedores:

    • Docker Compose para orquestación.
    • Backend, frontend y base de datos en contenedores separados.
  2. Variables de entorno:

    • Manejo seguro con archivos .env.

Despliegue

  1. Hosting:

    • Railway para backend.
    • Vercel para frontend.
  2. CI/CD:

    • Flujo automatizado para pruebas y despliegue.