Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Valerianos Pastelería Fina - Sistema de Gestión y Ventas Web

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.


Tabla de Contenidos


Características Principales

Tienda Web y Experiencia del Cliente

  • 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 (Delivery o Retiro 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.

Asistente Virtual (Chatbot Integrador)

  • Chatbot interactivo en tiempo real que responde consultas sobre productos disponibles, promociones vigentes, seguimiento de pedidos, métodos de pago y contacto.

Gestión de Inventario y Auditoría

  • 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 de Reportes Nativo en Django Admin

  • Módulo unificado dentro del panel de administración de Django (100% Python nativo, sin dependencias HTML externas).
  • Tipos de reportes ejecutivos:
    1. Ventas por Periodo
    2. Movimientos de Inventario
    3. Productos Más Vendidos
    4. Pedidos por Estado
  • Filtros laterales interactivos, navegación jerárquica por fecha (date_hierarchy), buscador nativo y exportación masiva a CSV (Excel).

Arquitectura del Proyecto

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

Tecnologías Utilizadas

  • 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

Requisitos Previos

Asegúrate de tener instalado en tu sistema:


Instalación y Configuración

1. Clonar el Repositorio

git clone https://github.com/tu-usuario/Proyecto_Final.git
cd Proyecto_Final

2. Crear y Activar el Entorno Virtual

En Windows (PowerShell):

python -m venv venv
.\venv\Scripts\activate

En Linux / macOS:

python3 -m venv venv
source venv/bin/activate

3. Instalar Dependencias

pip install -r requirements.txt

4. Configurar la Base de Datos en PostgreSQL

Crea 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).

5. Aplicar Migraciones

python manage.py makemigrations
python manage.py migrate

6. Crear un Superusuario (Administrador)

python manage.py createsuperuser

7. Iniciar el Servidor de Desarrollo

python manage.py runserver

Accede a la aplicación en tu navegador:


Estructura del Proyecto

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

Módulo de Reportes

El módulo de reportes está completamente integrado en el Django Admin:

  1. Ingresa a /admin/ con credenciales de administrador.
  2. Haz clic en la sección Reportes.
  3. 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
  4. Selecciona las filas deseadas y utiliza la acción "Descargar registros seleccionados en CSV (Excel)" para exportar la información.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages