← Volver a todos los proyectos

Inventario de TI

Controla equipos, componentes y piezas sueltas, y registra cada movimiento con solo escanear un código: con un lector USB especializado o con la cámara del móvil.

Portada del proyecto Inventario de TI

Lo que hace

Lector USB especializado

Lee códigos QR y de barras (EAN-13, Code 128, Code 39, UPC-A, EAN-8) con un lector USB dedicado. El servidor detecta el dispositivo en Linux por evdev y emite cada lectura en tiempo real por WebSocket, sin que ningún campo de texto tenga el foco.

Tres formas de escanear

Además del lector especializado, funciona como teclado (modo wedge, con análisis de la velocidad de las teclas) y con la cámara del móvil. La búsqueda resuelve etiquetas, códigos de activo, números de serie, cajas de piezas y frascos de tinta.

Etiquetas QR imprimibles

Genera un lote de etiquetas con UUID, las exporta a PDF listas para imprimir (QR de 21 mm) y las asocia a un equipo o a una caja de piezas.

Conteo de piezas con IA local

Cuenta las piezas de una caja a partir de una foto: con un modelo que corre en el propio navegador o con un modelo de visión local (Ollama). Una persona confirma el resultado y se guarda lo detectado frente a lo confirmado.

Evidencia cifrada

Las fotos de evidencia se guardan cifradas con AES-256-GCM y solo se descifran en el servidor.

Multi-sede y trazabilidad

Nueve estados, componentes dentro de equipos (por ejemplo, un ventilador en un PC), historial de movimientos, mantenimientos, niveles de tinta y un libro de stock para piezas a granel.

Cómo está hecho

Un único binario de Go sirve la API y el frontend estático (Astro con React y Tailwind) en un solo puerto, sin servidor de desarrollo en producción. Los datos viven en SQLite y el esquema está preparado para migrar a PostgreSQL. Las rutas del escáner exigen autenticación por token y el WebSocket se autentica con un primer mensaje, sin exponer el token en la URL.

Backend

Go con chi, SQLite, 18 tablas con migraciones idempotentes y más de 60 pruebas automáticas.

Frontend

Astro 7, React, Tailwind, html5-qrcode y pdf-lib para las etiquetas.

Hardware

Lector USB detectado con udev y evdev; regla udev incluida en el repositorio.

Móvil

Botones táctiles de 44 px, captura de fotos con la cámara y escaneo por vídeo.

Código fuente

El proyecto es de código abierto. Revisa la documentación técnica y las instrucciones de instalación.

Ver en GitHub