Skip to main content

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.

Ferred uses a pnpm workspace monorepo with three apps: renderer (React + Vite), server (Express), and electron (desktop wrapper). Getting started requires Node.js v22, pnpm v9+, and a Supabase project for cloud sync — though the system works fully offline without one.

Requisitos previos

HerramientaVersión mínimaNotas
Node.jsv22 LTSRequerido por Electron v30 y tsx
pnpmv9+Gestor de paquetes del monorepo
GitCualquier versión recientePara clonar el repositorio

Configurar el entorno

1

Clonar el repositorio

git clone https://github.com/Carlos-Gnd/FERRED-Inventario-y-Ventas.git
cd FERRED-Inventario-y-Ventas
2

Instalar dependencias

Desde la raíz del monorepo, pnpm instalará las dependencias de todos los workspaces a la vez:
pnpm install
3

Configurar variables de entorno

Copia el archivo de ejemplo y edita los valores con tus credenciales de Supabase:
cp .env.example apps/server/.env
Las variables más importantes para el primer arranque son:
VariableDescripción
DATABASE_URLURL pgBouncer de Supabase (puerto 6543) para queries
DIRECT_URLURL directa de Supabase (puerto 5432) para migraciones
JWT_SECRETCadena aleatoria de al menos 32 caracteres
SUPABASE_URLURL de tu proyecto en Supabase
SUPABASE_SERVICE_KEYClave de servicio de Supabase (con privilegios completos)
Consulta la página Variables de entorno para la referencia completa.
DATABASE_URL, DIRECT_URL, SUPABASE_URL y SUPABASE_SERVICE_KEY son necesarias para el modo online y las migraciones. Si aún no tienes un proyecto en Supabase, puedes omitirlas — el sistema arrancará en modo offline usando SQLite local.
4

Configurar la base de datos

Este comando crea la carpeta data/, ejecuta las migraciones de Prisma contra Supabase y carga los datos iniciales (seed):
pnpm db:setup
Internamente equivale a:
mkdir -p data
pnpm db:migrate   # prisma migrate dev
pnpm db:seed      # tsx src/adapters/db/prisma/seed.ts
5

Iniciar en desarrollo

Necesitas tres terminales — una por cada app — o usa el comando all para arrancarlas con concurrently:
pnpm dev:server
ProcesoPuertoDescripción
dev:server3001API Express con recarga automática vía tsx watch
dev:renderer5173Interfaz React con Hot Module Replacement de Vite
dev:electronVentana Electron; espera a que 5173 y 3001 estén listos
pnpm dev:electron usa wait-on para esperar a que el servidor Express responda en localhost:3001/health y a que Vite esté disponible en localhost:5173 antes de abrir la ventana de Electron. Arranca dev:server y dev:renderer primero.

Build docs developers (and LLMs) love