Imageboard

Tablones y publicaciones con Node.js, Express y Sequelize

Práctica de clase
Backend Node.js Express Sequelize SQLite Nunjucks
Imageboard Node.js · Express · Sequelize · SQLite · bcrypt

Sobre el proyecto

Imageboard es una aplicación web al estilo de los foros por tablones: hay varios tablones temáticos y dentro de cada uno los usuarios publican mensajes. Cualquiera puede leer, pero para publicar o crear tablones hay que registrarse e iniciar sesión.

El servidor está hecho con Express y renderiza las páginas con Nunjucks. Los datos se guardan en SQLite a través del ORM Sequelize, y las sesiones en otra base de datos SQLite aparte. Me sirvió para practicar validación, autenticación, autorización y sesiones.

Flujo de autenticación

Registro

La contraseña se guarda hasheada con bcrypt y nunca se devuelve

Login

Se comprueban las credenciales y se crea la sesión

Sesión

Guardada en SQLite con connect-sqlite3 durante un día

Rutas protegidas

Un middleware isAuthenticated protege publicar y crear tablones

Características principales

Tablones

Lista ordenada y página de cada tablón con sus publicaciones y su autor.

Publicaciones

Formulario de título y contenido, disponible solo con la sesión iniciada.

Relaciones

Usuarios y tablones con muchas publicaciones (hasMany / belongsTo).

Logs

morgan registra cada petición; también hay un logger con colores usando chalk.

Stack Tecnológico

Servidor

  • Node.js (ESM)
  • Express 5
  • Nunjucks

Datos

  • SQLite
  • Sequelize (ORM)
  • express-session

Seguridad & Logs

  • bcrypt
  • Middleware de autenticación
  • morgan + chalk