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.
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.
- Registro de nuevos productos.
- Edición de información y precios.
- Control automático de stock.
- Asociación de productos a categorías.
- Registro de entradas y salidas.
- Historial completo de movimientos.
- Actualización automática del stock.
- Trazabilidad por producto.
- Creación de categorías personalizadas.
- Edición y eliminación de categorías.
- Organización eficiente del inventario.
- Registro de usuarios.
- Asignación de roles.
- Administración centralizada.
- Admin: acceso total al sistema.
- Manager: gestión de inventario y categorías.
- Viewer: acceso de solo consulta.
- Login mediante JWT.
- Refresh Tokens.
- Cookies HttpOnly.
- Protección de rutas privadas.
- Registro detallado de cada operación.
- Fecha y hora de movimientos.
- Visualización por producto.
- Seguimiento completo del inventario.
- Node.js
- Express.js
- Firebase Firestore
- Firebase Admin SDK
- JSON Web Token (JWT)
- bcrypt
- EJS
- HTML5
- Tailwind CSS
- JavaScript (ES6+)
- JWT Authentication
- Refresh Tokens
- Cookies HttpOnly
- Middleware de autorización por roles
git clone https://github.com/K1lluaZk/NodeStock.git
cd NodeStocknpm installCrear 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_keyModo desarrollo:
npm run devModo producción:
npm starthttp://localhost:3000
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
| 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 |
- 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.
Mario (K1lluaZk) Eddy (EddyMiguel)
GitHub: https://github.com/K1lluaZk https://github.com/EddyMiguel
Este proyecto está bajo la licencia MIT.