Fase 1: Recolección de Requisitos
Requisitos Funcionales
Usuarios
Registro e inicio de sesión:
- Los usuarios deben poder registrarse, iniciar sesión y cerrar sesión.
- Roles: Cliente y Administrador.
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).
Recuperación de contraseña:
- Los usuarios deben poder recuperar su contraseña mediante un enlace enviado a su correo.
Autenticación de dos factores (2FA):
- Implementación futura para mayor seguridad. Integración opcional según las necesidades del proyecto.
Productos
CRUD de productos:
- El administrador puede crear, leer, actualizar y eliminar productos.
- Atributos: nombre, descripción, precio, inventario, imágenes.
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
Gestión del carrito de compras:
- Los clientes pueden agregar, editar o eliminar productos en su carrito.
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
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.
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
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
Frameworks y herramientas:
- Django como framework principal.
- Django REST Framework para API RESTful.
Autenticación:
- Basada en JWT con roles de usuario.
Base de datos:
- PostgreSQL para almacenamiento seguro y escalable.
Caché:
- Uso de Redis para mejorar el rendimiento.
Frontend
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.
Optimización:
- Lazy loading y code splitting para mejorar el rendimiento.
- Axios para el consumo de APIs.
Infraestructura
Contenedores:
- Docker Compose para orquestación.
- Backend, frontend y base de datos en contenedores separados.
Variables de entorno:
- Manejo seguro con archivos .env.
Despliegue
Hosting:
- Railway para backend.
- Vercel para frontend.
CI/CD:
- Flujo automatizado para pruebas y despliegue.