Tienda Virtual.
Descripción del Proyecto
El objetivo es construir una tienda virtual básica utilizando Django para el backend, React con Vite y TailwindCSS para el frontend, y PostgreSQL como base de datos. Se empleará Docker para un entorno de desarrollo consistente, con contenedores separados para el backend y base de datos. El sistema incluirá funcionalidades básicas para gestión de usuarios, productos y pedidos.
Objetivo General
Crear una tienda virtual funcional y accesible, enfocada en simplicidad y rendimiento, con un diseño modular y tecnología moderna.
Funcionalidades Principales
Usuarios:
- Registro e inicio de sesión.
- Gestión de perfiles.
Productos:
- CRUD de productos con imágenes.
Carrito y Pedidos:
- Agregar productos al carrito.
- Crear y gestionar pedidos.
Pagos:
- Integración básica con PayPal Sandbox para validación de pagos.
Frontend:
- Diseño responsivo y accesible con TailwindCSS.
Infraestructura:
- Configuración con Docker Compose para desarrollo local.
Fases del Proyecto
Fase 1: Configuración Inicial
Crear estructura del proyecto:
- Backend: Django con Django REST Framework.
- Frontend: React con Vite y TailwindCSS.
Configurar un archivo docker-compose.yml para el backend y base de datos.
Crear archivo .env con variables esenciales:
- Backend: DATABASE_URL, SECRET_KEY.
- Frontend: URL del backend.
Fase 2: Desarrollo del Backend
Modelos:
- User: Roles (cliente y administrador).
- Product: Nombre, precio, inventario, imágenes.
- Order: Asociado a usuarios y productos.
Endpoints:
- Usuarios: Registro, login, perfil.
- Productos: CRUD.
- Pedidos: Crear y listar.
Autenticación:
- Implementar autenticación con JWT.
Fase 3: Desarrollo del Frontend
Configurar React con Vite y TailwindCSS.
Crear componentes básicos:
- Navbar, ProductList, ProductDetails, Cart, CheckoutForm.
Implementar rutas principales con React Router:
- Home: Lista de productos.
- Product Details: Detalles de un producto.
- Cart: Resumen del carrito.
- Checkout: Confirmación de pedido.
Consumir APIs del backend con Axios.
Fase 4: Integración de Pagos
Configurar PayPal Sandbox en el backend.
Implementar lógica básica en el frontend para manejar pagos.
Fase 5: Pruebas
Pruebas unitarias en backend (modelos y vistas).
Pruebas de integración básica:
- Flujo completo (registro → carrito → pedido).
Fase 6: Despliegue
Configurar despliegue en:
- Backend: Railway.
- Frontend: Vercel.
Validar funcionalidad en producción.
Resultado Esperado
Una tienda virtual básica funcional, lista para ser extendida en el futuro con más características como métodos de pago adicionales, monitoreo y accesibilidad avanzada.