Sistema web integral de comercio electrónico y gestión administrativa para la pastelería Valerianos Pastelería Fina, desarrollado con Django y PostgreSQL bajo una arquitectura limpia en tres capas.
- Características Principales
- Arquitectura del Proyecto
- Tecnologías Utilizadas
- Requisitos Previos
- Instalación y Configuración
- Estructura del Proyecto
- Uso del Sistema
- Módulo de Reportes
- Catálogo Interactivo: Visualización de postres y pasteles con filtros por categorías, sabores, niveles de dulzura y tamaños.
- Detalle de Producto: Ficha técnica completa de cada postre con promociones activas e insignias de oferta (
OFERTA,20% OFF). - Carrito de Compras en Sesión: Gestión dinámica de ítems, cálculo automático de subtotales, descuentos por promoción e impuestos.
- Checkout y Confirmación: Registro de datos de entrega (
DeliveryoRetiro en Tienda), selección de método de pago (Tarjeta,Efectivo,Transferencia/Yape,PayPal) y emisión de Recibo / Ticket de Compra. - Repetición de Pedidos: Opción para reordenar pedidos anteriores con un solo clic.
- Chatbot interactivo en tiempo real que responde consultas sobre productos disponibles, promociones vigentes, seguimiento de pedidos, métodos de pago y contacto.
- Stock en Tiempo Real: Sincronización automática de inventario al realizar compras o registrar productos nuevos (mediante Señales de Django
post_save). - Auditoría de Movimientos: Historial detallado de cada movimiento (
ENTRADA,SALIDA,AJUSTE) registrando el stock anterior, stock nuevo, fecha, motivo y usuario responsable.
- Módulo unificado dentro del panel de administración de Django (
100% Python nativo, sin dependencias HTML externas). - Tipos de reportes ejecutivos:
- Ventas por Periodo
- Movimientos de Inventario
- Productos Más Vendidos
- Pedidos por Estado
- Filtros laterales interactivos, navegación jerárquica por fecha (
date_hierarchy), buscador nativo y exportación masiva a CSV (Excel).
El sistema está diseñado bajo el patrón de Arquitectura en 3 Capas (3-Tier Layered Architecture) para garantizar mantenibilidad, escalabilidad y separación de responsabilidades:
Proyecto_Final/
├── Negocio/ # Capa de Dominio y Lógica de Negocio (Services, Models, Admin)
├── Controladora/ # Capa de Orquestación y Vistas (Controllers, Views)
├── Presentacion/ # Capa de Interfaz de Usuario (Templates HTML, Static CSS/JS)
└── core/ # Configuración Principal del Proyecto Django
- Lenguaje: Python 3.10+
- Framework Web: Django 4.x / 5.x
- Base de Datos: PostgreSQL
- Frontend: HTML5, CSS3 Vanilla (Responsive Design), JavaScript ES6
- Librerías / Utilidades: Google Fonts (Poppins, Material Symbols), CSV Module, Django Signals
Asegúrate de tener instalado en tu sistema:
- Python 3.10 o superior.
- PostgreSQL v13+ ejecutándose en
localhost:5432. - Git.
git clone https://github.com/tu-usuario/Proyecto_Final.git
cd Proyecto_FinalEn Windows (PowerShell):
python -m venv venv
.\venv\Scripts\activateEn Linux / macOS:
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtCrea una base de datos en PostgreSQL llamada pasteleria_db:
CREATE DATABASE pasteleria_db;(Opcional: Verifica que las credenciales en core/settings.py coincidan con tu servidor PostgreSQL local).
python manage.py makemigrations
python manage.py migratepython manage.py createsuperuserpython manage.py runserverAccede a la aplicación en tu navegador:
- Tienda Web: http://127.0.0.1:8000/
- Panel de Administración: http://127.0.0.1:8000/admin/
Proyecto_Final/
├── Controladora/
│ ├── catalogo_controller.py # Controlador de catálogo y pedidos
│ ├── reportes_controller.py # Controlador auxiliar de reportes
│ ├── usuario_controller.py # Controlador de autenticación
│ └── views.py # Enrutador principal de vistas
├── Negocio/
│ ├── admin.py # Configuración avanzada de Django Admin y Reportes
│ ├── models.py # Modelos relacionales + Proxy Model Reporte
│ ├── carrito_service.py # Lógica de negocio del carrito
│ ├── catalogo_service.py # Lógica de catálogo y productos
│ ├── chatbot_service.py # Lógica del asistente virtual chatbot
│ ├── pedido_service.py # Lógica de pedidos y transacciones atómicas
│ └── usuario_service.py # Lógica de gestión de usuarios y clientes
├── Presentacion/
│ ├── static/ # Estilos CSS e imágenes del frontend
│ └── templates/ # Plantillas HTML de la tienda web
├── core/
│ ├── settings.py # Configuración del proyecto y BD PostgreSQL
│ └── urls.py # Enrutamiento principal de URLs
├── manage.py # CLI de gestión de Django
└── requirements.txt # Dependencias del proyecto
El módulo de reportes está completamente integrado en el Django Admin:
- Ingresa a
/admin/con credenciales de administrador. - Haz clic en la sección Reportes.
- Utiliza la barra lateral derecha Filtro -> Tipo de Reporte para alternar entre:
- Ventas por Periodo
- Movimientos de Inventario
- Productos Más Vendidos
- Pedidos por Estado
- Selecciona las filas deseadas y utiliza la acción "Descargar registros seleccionados en CSV (Excel)" para exportar la información.