Ale Ponce | AlMa - Sistema de Punto de Venta
Este es un sistema de punto de venta (POS) simple y moderno basado en la web, diseñado para gestionar clientes, ventas y recibos de forma eficiente.
Características Principales
- Gestión de Ventas: Crea nuevos movimientos (ventas, pagos) y genera recibos imprimibles.
- Base de Datos de Clientes: Administra una lista de clientes con su información de contacto.
- Sistema de Roles:
- Administrador: Tiene acceso a todas las funciones, incluyendo un dashboard de estadísticas, la configuración del negocio y la gestión de usuarios.
- Usuario: Rol de vendedor con acceso limitado a la creación de ventas y gestión de clientes.
- Dashboard (Solo Admin): Visualiza estadísticas clave como ingresos totales, número de servicios y un gráfico de ingresos por tipo de servicio.
- Exportación de Datos: Exporta todos los movimientos a un archivo CSV.
- Persistencia de Datos: Toda la información se guarda en una base de datos SQLite (
ap-pos.db). - Listo para Docker: Incluye un
Dockerfilepara una fácil contenerización y despliegue.
Cómo Ejecutar la Aplicación
Prerrequisitos
Pasos para la Ejecución
-
Clonar el Repositorio:
git clone https://github.com/marcogll/ap_pos.git cd ap_pos/ap-pos -
Instalar Dependencias: Navega a la carpeta
ap-posy ejecuta el siguiente comando para instalar los paquetes necesarios:npm install -
Iniciar el Servidor: Una vez instaladas las dependencias, inicia el servidor con:
npm startEl servidor se ejecutará en
http://localhost:3000. -
Acceder a la Aplicación: Abre tu navegador web y ve a
http://localhost:3000. -
Credenciales por Defecto:
- Usuario:
admin - Contraseña:
password
¡Importante! Se recomienda cambiar la contraseña del administrador en la pestaña de "Configuración" después del primer inicio de sesión.
- Usuario:
Cómo Usar con Docker
-
Construir la Imagen de Docker: Desde la carpeta
ap-pos, ejecuta:docker build -t ap-pos-app . -
Ejecutar el Contenedor: Para ejecutar la aplicación en un contenedor, usa el siguiente comando. Esto mapeará el puerto 3000 y montará un volumen para que la base de datos persista fuera del contenedor, en una nueva carpeta
dataque se creará en tu directorio actual.docker run -p 3000:3000 -v $(pwd)/data:/usr/src/app/data ap-pos-appNota: La primera vez que ejecutes esto, se creará un directorio
dataen tu carpeta actual para almacenarap-pos.db.
Autores
- Gemini
- Marco G.
Diagnóstico de Impresión (CUPS en Linux)
Si tienes problemas para imprimir recibos en un entorno Linux, sigue estos pasos en la terminal de la computadora donde la impresora está conectada para diagnosticar el problema.
Paso 1: Verificar el Estado de la Impresora
Este comando lista todas las impresoras configuradas en el sistema y muestra su estado. Reemplaza TICKETS con el nombre real de tu impresora.
lpstat -p -d
Qué buscar:
- Deberías ver una línea como
printer TICKETS is idle.... - Si tu impresora no aparece en la lista, no está instalada o CUPS no la detecta.
- Anota el nombre exacto de la impresora, ya que lo necesitarás para los siguientes pasos y para la configuración de la aplicación.
Paso 2: Enviar una Página de Prueba Directa
Esto permite verificar si el sistema de impresión (CUPS) puede comunicarse con la impresora, ignorando cualquier problema de la aplicación.
-
Crea un archivo de texto de prueba:
echo "Prueba de impresión para la impresora TICKETS" > /tmp/prueba.txt -
Envía el archivo a imprimir: (Recuerda usar el nombre exacto de tu impresora)
lp -d TICKETS /tmp/prueba.txt
¿Se imprimió la página?
- Sí: El sistema de impresión funciona correctamente. El problema probablemente está en la configuración de la aplicación. Asegúrate de que esté usando el nombre correcto de la impresora.
- No: El problema está en la comunicación entre CUPS y la impresora. Continúa al siguiente paso.
Paso 3: Revisar la Cola y los Registros de Errores
Si la página de prueba no se imprimió, estos comandos pueden darte más pistas.
-
Revisar la cola de impresión:
lpq -aEsto te mostrará si el trabajo está atascado en la cola.
-
Consultar el registro de errores de CUPS:
tail -n 20 /var/log/cups/error_logBusca mensajes de error recientes que mencionen el nombre de tu impresora, "filter failed", "driver" o problemas de conexión.