Skip to content

FernandoJaime/Stockapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📦 StockApp

Aplicación web de gestión de stock orientada a compras, ventas, control de inventario, clientes, proveedores y visualización de indicadores operativos.

El proyecto está dividido en dos partes:

  • 💻frontend con React, TypeScript, Vite y Tailwind CSS
  • ⚙️backend con Node.js, Express, Prisma y PostgreSQL

📄 Características principales

  • Autenticación con JWT almacenado en cookies HttpOnly y refresh token.
  • Roles de usuario con acceso diferenciado entre administrador y empleado.
  • Gestión de productos, proveedores y clientes.
  • Registro de entradas de stock con detalle por producto y proveedor.
  • Registro de salidas de stock con control de pago y método de pago.
  • Vista de stock consolidado por producto y proveedor.
  • Dashboard administrativo con KPIs, actividad reciente y gráficos.
  • Resúmenes por cliente, producto y rangos de fechas.
  • Carga de documentos adjuntos en productos, entradas y salidas.

🛠️ Tecnologías

💻 Frontend

  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS
  • React Router
  • Redux Toolkit
  • TanStack Query
  • Axios
  • Recharts
  • Radix UI

⚙️ Backend

  • Node.js
  • Express
  • Prisma ORM
  • PostgreSQL
  • JWT
  • bcrypt
  • cookie-parser
  • cors

🗃️ Estructura del proyecto

Stockapp/
├── backend/
│   ├── controllers/
│   ├── middleware/
│   ├── prisma/
│   ├── routes/
│   ├── index.js
│   └── package.json
├── frontend/
│   ├── public/
│   ├── src/
│   │   ├── api/
│   │   ├── components/
│   │   ├── context/
│   │   ├── lib/
│   │   ├── pages/
│   │   ├── routes/
│   │   ├── services/
│   │   ├── store/
│   │   └── types/
│   └── package.json
|__ LICENSE
└── README.md

🧮 Módulos funcionales

  • Dashboard: panel administrativo con ingresos, gastos, ventas, alertas de stock y actividad reciente.
  • Stock: consulta del stock actual por producto y proveedor.
  • Entradas: registro de compras y actualización de stock.
  • Salidas: registro de ventas, control de cobro y descuento de stock.
  • Administración: ABM de productos, clientes y proveedores.
  • Resúmenes: reportes segmentados por cliente, producto o rango de fechas.

🪪 Requisitos

  • Node.js 20 o superior
  • npm 10 o superior
  • PostgreSQL disponible localmente o en servidor remoto

⚙️ Variables de entorno - Backend

Crear un archivo backend/.env tomando como base backend/.envexample:

DATABASE_URL="postgresql://USER:PASSWORD@HOST:5432/DB_NAME?schema=public"

JWT_SECRET=tu_access_secret
JWT_EXPIRES_IN=15m

JWT_REFRESH_SECRET=tu_refresh_secret
JWT_REFRESH_EXPIRES_IN=7d

NODE_ENV=development
PORT=3000

💻 Variables de entorno - Frontend

Crear un archivo frontend/.env tomando como base frontend/.envexample:

VITE_API_URL=http://localhost:3000/api

⬇️ Instalación

# 1. Clonar el repositorio
git clone https://github.com/TU_USUARIO/stockapp.git
cd stockapp

# 2. Instalar dependencias
cd backend
npm install
cd ../frontend
npm install

# 3. Configurar la base de datos
## Con la variable DATABASE_URL lista, ejecutar en backend/:
npx prisma generate
npx prisma migrate dev
## Si solo querés aplicar migraciones existentes en un entorno ya preparado:
npx prisma migrate deploy

📟 Ejecución local

# Desde `backend/`:
node index.js

## El servidor queda disponible en `http://localhost:3000`.

# Desde `frontend/`:
npm run dev

## La aplicación queda disponible en `http://localhost:5173`.

🔐 Autenticación y roles

  • El login se realiza contra /api/auth/login.
  • La sesión se mantiene mediante cookies HttpOnly (accessToken y refreshToken).
  • El dashboard y los resúmenes están restringidos al rol administrador.
  • Las operaciones operativas de stock pueden ser utilizadas por usuarios autenticados, según las validaciones del backend.

Roles presentes en el modelo de datos:

  • administrador
  • empleado

💾 Base de datos

El esquema Prisma modela las siguientes entidades principales:

  • Usuario
  • Rol
  • Producto
  • Proveedor
  • Cliente
  • Stock
  • Entrada y EntradaDetalle
  • Salida y SalidaDetalle

El archivo de esquema se encuentra en backend/prisma/schema.prisma.

🛰️ API principal

Rutas montadas en el backend:

  • /api/auth
  • /api/productos
  • /api/clientes
  • /api/proveedores
  • /api/entradas
  • /api/salidas
  • /api/stock
  • /api/resumenes
  • /api/dashboard

🪪 Licencia

Este proyecto se distribuye bajo la licencia ISC. Ver LICENSE.

  • Al redistribuir o reutilizar el código, debe mantenerse el aviso de copyright y licencia.

Última actualización: Abril 2026

About

Aplicación web de gestión de stock orientada a compras, ventas, control de inventario, clientes, proveedores y visualización de indicadores operativos. Sistema enfocado para negocios mayoristas o empresas con grandes volumenes.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors