Sistema de punto de venta e inventario (DizzyPOS) Django Python

DizzyPOS es un sistema de punto de venta e inventario con Django Python para registrar ventas, controlar existencias, administrar compras y consultar reportes del negocio.

Está hecho con Django y Bootstrap 5, y reúne en un solo proyecto lo que una tienda pequeña necesita para operar desde el primer día: caja, inventario, catálogos, usuarios con roles y reportes en PDF.

Sirve como punto de partida para cualquier proyecto que necesite un POS en Django, o para aprender cómo se arma un sistema completo de ventas e inventario en Python. También puedes adaptarlo a tu proyecto o al de tus clientes sin empezar desde cero.

Capturas de Pantalla

Vista del punto de venta del sistema DizzyPOS creado en Django Python
Vista del punto de venta del sistema DizzyPOS creado en Django Python

Características Principales

  • Punto de venta: productos en cuadrícula con buscador en tiempo real y filtro por categorías, carrito de venta, cálculo de total y descuento, pago en efectivo con cambio instantáneo.
  • Validación estricta de stock: no permite vender productos agotados ni superar la existencia disponible.
  • Tickets: vista e impresión del ticket de cada venta, con descarga en PDF y mensaje personalizable al pie.
  • Inventario: control de existencias actuales (entradas menos salidas) con alertas de stock bajo o agotado.
  • Compras: punto de compra en cuadrícula con costos de adquisición y selección de proveedor, además de historial con comprobante de entrada en PDF.
  • Dashboard: resumen de ventas e ingresos del día, gráfica de ventas de los últimos 30 días con Chart.js y alertas de productos en stock mínimo.
  • Roles y permisos: el administrador accede a todos los módulos; el vendedor solo al punto de venta, las ventas del día, la consulta de productos y el directorio de clientes (puede agregar clientes, sin editar ni eliminar).
  • Catálogos: administración de productos, categorías, clientes y proveedores.
  • Reportes con exportación a PDF: ventas, compras y movimientos de inventario por rango de fechas.
  • Usuarios y configuración: creación y edición de usuarios con asignación de roles, y parámetros del negocio (nombre de empresa, teléfono, dirección y mensaje del ticket).
  • Pruebas automatizadas: suite incluida para verificar que el sistema siga funcionando después de cada cambio.

Especificaciones Técnicas

  • Lenguaje: Python 3
  • Framework: Django
  • Interfaz: Bootstrap 5
  • Gráficas: Chart.js
  • Base de datos: se crea al aplicar las migraciones de Django
  • Sistema: Windows, Linux y macOS

Instalación

1. Crear el entorno virtual e instalar dependencias

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

En Windows, activa el entorno con venv\Scripts\activate.

2. Preparar la base de datos

python manage.py migrate
python manage.py init_pos_data

El segundo comando carga datos iniciales de prueba y crea dos usuarios para que pruebes el sistema de inmediato.

3. Ejecutar

python manage.py runserver

Abre http://127.0.0.1:8000/ en tu navegador.

4. Iniciar sesión

  • Administrador: usuario admin, contraseña admin123
  • Vendedor: usuario vendedor, contraseña vendedor123

Cambia estas contraseñas o elimina las cuentas apenas entres, antes de usar el sistema con datos reales.

Descargar DizzyPOS

Descarga el código fuente completo de este sistema de punto de venta e inventario con Django y úsalo como base para tus proyectos o para los de tus clientes.