Ferred es un sistema de punto de venta (POS) diseñado para ferreterías con múltiples sucursales. Antes de Ferred, cada sucursal controlaba su stock en hojas de cálculo independientes, sin visibilidad consolidada entre tiendas y sin forma de emitir facturas electrónicas conforme al Ministerio de Hacienda de El Salvador. Ferred resuelve estos tres problemas en una sola aplicación de escritorio: opera 100 % sin internet usando SQLite local por sucursal, sincroniza automáticamente con Supabase (PostgreSQL) cuando detecta conexión, y emite DTE directamente a la API del Ministerio de Hacienda.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Carlos-Gnd/FERRED-Inventario-y-Ventas/llms.txt
Use this file to discover all available pages before exploring further.
Funcionalidades principales
POS sin internet
Registra ventas, consulta stock y genera tickets aunque no haya conexión. Todo queda en SQLite local y se sincroniza al reconectar.
Inventario multisucursal
Cada sucursal mantiene su propio stock. El administrador tiene vista consolidada y puede gestionar transferencias entre tiendas.
DTE Hacienda
Emite facturas electrónicas tipo 01 conformes al Ministerio de Hacienda de El Salvador, con soporte para modo sandbox y producción.
Sincronización offline
El
SyncService corre cada 30 segundos. Cuando hay internet, sube los registros pendientes de sync_log a Supabase automáticamente.Roles diferenciados
Tres roles con permisos distintos: Administrador, Cajero y Bodeguero. Cada usuario ve y opera únicamente las funciones que le corresponden.
Desktop con Electron
Empaquetado con ElectronJS v30. El servidor Express corre embebido en el proceso principal; no se necesita instalar nada más.
Stack tecnológico
| Capa | Tecnología | Versión |
|---|---|---|
| Frontend | React + Vite + Tailwind CSS | v18 / v5 / v3 |
| Estado global | Zustand | v4 |
| Desktop | ElectronJS | v30 |
| Backend | Express.js (Arquitectura Hexagonal) | v4 |
| ORM | Prisma ORM | v5 |
| Base de datos local | SQLite (better-sqlite3) | — |
| Base de datos nube | Supabase / PostgreSQL 15 | hosted |
| Autenticación | JWT + bcryptjs | v9 / v3 |
| Seguridad HTTP | Helmet + express-rate-limit | v7 / v7 |
Roles y permisos
| Acción | Admin | Cajero | Bodega |
|---|---|---|---|
| Gestionar usuarios | ✓ | — | — |
| Configurar precios | ✓ | — | — |
| Ver reportes consolidados | ✓ | — | — |
| Registrar ventas | ✓ | ✓ | — |
| Gestionar inventario | ✓ | — | ✓ |
| Consultar stock | ✓ | ✓ | ✓ |
| Recepción de proveedores | ✓ | — | ✓ |
Credenciales de prueba
Las siguientes cuentas están disponibles en el entorno de producción en ferred.netlify.app.Estas credenciales son para demostración. No almacenes datos de clientes reales con ellas. En producción, el Administrador debe crear usuarios propios y deshabilitar o cambiar las contraseñas de prueba.
| Rol | Correo | Contraseña | Permisos |
|---|---|---|---|
| Administrador | admin@ferred.com | admin123 | Acceso total al sistema |
| Cajero | cajero@ferred.com | cajero123 | Ventas y consulta de stock |
| Bodeguero | bodega@ferred.com | bodega123 | Inventario y recepción |