Netbin Storage es un sistema de inventario para el laboratorio de Redes y Telecomunicaciones. Esta es una primera entrega enfocada en cumplir funcionalidad basica y una arquitectura clara para continuar mejorando.
- Backend: Node.js + Express
- Frontend: HTML5, CSS3 y JavaScript Vanilla
- Persistencia: Archivo JSON simulado (
data/users.json)
server.js: punto de entrada del servidor (API + recursos estaticos)routes/: rutas REST de autenticacioncontrollers/: controladores (login/logout/token validation)middleware/:AuthGuarden backend (protect) para proteger endpoints privadosrepositories/: acceso a datos (lectura deusers.json)data/: datos de prueba (ej. usuarios)frontend/: SPAfrontend/login.html: pantalla de loginfrontend/index.html: dashboard principalfrontend/css/styles.css: estilos (paleta definida por el prompt)frontend/js/authGuard.js: proteccion de rutas en frontend mediantelocalStoragefrontend/js/login.js: flujo de login confetchfrontend/js/dashboard.js: interaccion del dashboard (navegacion por secciones y tabla inicial)
- Endpoint:
POST /api/auth/login - Valida credenciales contra
data/users.json(users simulados). - Si es exitoso: retorna un
tokende sesion. - Si es exitoso: retorna los datos del usuario (para mostrar en el dashboard).
- En el frontend se guarda
nb_tokenenlocalStorage. - En el frontend se guarda
nb_userenlocalStorage(JSON). - Logout: endpoint
POST /api/auth/logout. - Logout: el frontend envia
Authorization: Bearer <token>. - Logout: el backend invalida el token y el frontend limpia
localStorage.
- Archivo:
frontend/js/authGuard.js - Si no existe
nb_tokenenlocalStorage, redirige alogin.html. - Si existe, inyecta
window.NB_SESSION(token + usuario) para que el resto de scripts lo usen.
- Archivo:
frontend/index.html - Muestra cards/opciones para acceder a
Usuarios,Revison de Activos,ReportesyRoles. - Incluye barra superior con hora, rol y nombre de usuario.
- Incluye boton de salida (logout) en la parte superior.
- Secciones “Activos/Reportes/Usuarios/Roles” existen como placeholders en esta entrega inicial.
- Logo de la empresa incluido en
frontend/assets/netbin-logo.pngy usado enlogin.htmly el dashboard. - En la tabla de activos se elimino la columna Ubicacion (ya no se maneja en la aplicacion).
Los estilos del proyecto usan la paleta indicada en el prompt:
- Azul Petroleo:
#007b99 - Naranja:
#f39200 - Gris:
#848585
- Instalar dependencias:
npm install - Levantar el servidor:
npm start - Abrir en el navegador:
http://localhost:3000/login.html - Entrar al dashboard:
http://localhost:3000/index.htmlohttp://localhost:3000/(redirige al login si no hay sesion)
El archivo data/users.json incluye usuarios de ejemplo.
Ejemplo (segun el JSON actual):
admin/admin123monitor/monitor123
POST /api/auth/loginPOST /api/auth/logout(requiereAuthorization: Bearer <token>)
Esta entrega esta pensada como base. Proximas mejoras tipicas:
- Persistencia real (BD) en lugar de JSON plano
- Manejo mas robusto de tokens/sesiones (ej. JWT firmado + expiracion real)
- Hash de contrasenas (bcrypt/argon2)
- Render dinamico real de modulos (activos/reportes/usuarios/roles) con endpoints correspondientes
- Tests basicos (unitarios e integracion)