Skip to content

K1lluaZk/NodeStock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📦 NodeStock — Sistema de Gestión de Inventario

Una solución moderna para la administración de inventarios, control de movimientos, gestión de categorías y usuarios con autenticación segura basada en JWT.

Node.js Express Firebase JWT Tailwind EJS


🎯 Sobre el Proyecto

NodeStock es una plataforma de gestión de inventario diseñada para pequeñas y medianas empresas que necesitan un control preciso de sus productos, movimientos y usuarios.

La aplicación implementa una arquitectura organizada basada en repositorios y controladores, permitiendo administrar productos, categorías y movimientos de inventario mediante una interfaz intuitiva y segura.

El sistema incorpora autenticación mediante JWT, control de permisos por roles y almacenamiento persistente utilizando Firebase Firestore.


✨ Características Principales

📦 Gestión de Productos

  • Registro de nuevos productos.
  • Edición de información y precios.
  • Control automático de stock.
  • Asociación de productos a categorías.

📊 Control de Inventario

  • Registro de entradas y salidas.
  • Historial completo de movimientos.
  • Actualización automática del stock.
  • Trazabilidad por producto.

🗂️ Administración de Categorías

  • Creación de categorías personalizadas.
  • Edición y eliminación de categorías.
  • Organización eficiente del inventario.

👥 Gestión de Usuarios

  • Registro de usuarios.
  • Asignación de roles.
  • Administración centralizada.

🔐 Sistema de Roles y Permisos

  • Admin: acceso total al sistema.
  • Manager: gestión de inventario y categorías.
  • Viewer: acceso de solo consulta.

🔑 Autenticación Segura

  • Login mediante JWT.
  • Refresh Tokens.
  • Cookies HttpOnly.
  • Protección de rutas privadas.

📈 Historial de Movimientos

  • Registro detallado de cada operación.
  • Fecha y hora de movimientos.
  • Visualización por producto.
  • Seguimiento completo del inventario.

🛠️ Tecnologías Utilizadas

Backend

  • Node.js
  • Express.js
  • Firebase Firestore
  • Firebase Admin SDK
  • JSON Web Token (JWT)
  • bcrypt

Frontend

  • EJS
  • HTML5
  • Tailwind CSS
  • JavaScript (ES6+)

Seguridad

  • JWT Authentication
  • Refresh Tokens
  • Cookies HttpOnly
  • Middleware de autorización por roles

🚀 Cómo Ejecutar Localmente

1️⃣ Clonar el repositorio

git clone https://github.com/K1lluaZk/NodeStock.git
cd NodeStock

2️⃣ Instalar dependencias

npm install

3️⃣ Configurar variables de entorno

Crear un archivo .env en la raíz del proyecto:

PORT=3000

SECRET_JWT_KEY=tu_clave_jwt
REFRESH_SECRET_KEY=tu_clave_refresh

FIREBASE_PROJECT_ID=tu_project_id
FIREBASE_CLIENT_EMAIL=tu_client_email
FIREBASE_PRIVATE_KEY=tu_private_key

4️⃣ Ejecutar la aplicación

Modo desarrollo:

npm run dev

Modo producción:

npm start

5️⃣ Acceder al sistema

http://localhost:3000

📁 Estructura del Proyecto

NodeStock
│
├── server/
│   │
│   ├── controllers/
│   │   └── categoryController.js
│   │   └── movementController.js
│   │   └── productController.js
│   │
│   ├── middleware/
│   │   ├── authorizeRole.js
│   │   └── sessionMiddleware.js
│   │
│   ├── routes/
│   │   ├── movementRoutes.js
│   │   └── productRoutes.js
│   │   └── categoryRoutes.js
│   │
│   │
│   ├── category-repository.js
│   ├── config.js
│   ├── firebase.js
│   ├── index.js
│   └── user-repository.js
│
├── views/
│   │   │── partials/
│   │   │   │── modal-movimiento.ejs
│   │   │   │── modal-producto.ejs
│   ├── categories.ejs
│   ├── dashboard.ejs
│   ├── historial.ejs
│   └── index.ejs
│   └── users.ejs
│
├── .env
├── .gitignore
├── package-lock.json
├── package.json
└── README.md

🔒 Roles del Sistema

Rol Permisos
Admin Gestión completa de usuarios, productos, categorías y movimientos
Manager Gestión de productos, inventario y categorías
Viewer Consulta de información sin modificaciones

📌 Funcionalidades Futuras

  • Dashboard analítico con gráficos.
  • Exportación a Excel y PDF.
  • Alertas de stock mínimo.
  • Auditoría avanzada de movimientos.
  • Soporte multiempresa.
  • API pública documentada.

👨‍💻 Autores

Mario (K1lluaZk) Eddy (EddyMiguel)

GitHub: https://github.com/K1lluaZk https://github.com/EddyMiguel


📄 Licencia

Este proyecto está bajo la licencia MIT.

Imagenes

image image image image

About

NodeStock es una aplicación web de gestión de inventario desarrollada con Tailwind y Node.js, pensada para ofrecer un control claro, eficiente y confiable del stock de productos. La plataforma permite registrar, actualizar y supervisar productos en tiempo real, asegurando que cada entrada y salida quede debidamente reflejada.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors