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

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ñaadmin123 - Vendedor: usuario
vendedor, contraseñavendedor123
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.