estructura del foro - ManuelJDonoso/Proyecto_daw GitHub Wiki

Estructura del Foro

Propósito y Alcance

Este documento detalla la arquitectura estructural del sistema de foros en Crónicas de Mérida. Explica la organización jerárquica de los componentes del foro (categorías, temas y publicaciones), su representación en la base de datos y cómo se muestran en la interfaz de usuario. Para información sobre la interacción del usuario con el sistema de foros, consulta Interacción del Foro.

Jerarquía del Foro

El sistema de foros sigue una jerarquía de tres niveles que organiza el contenido de lo general a lo específico:

imagen

Categorías

Las categorías forman el nivel superior de la jerarquía del foro. Sirven como contenedores para agrupar temas relacionados.

Propiedades clave:

  • Las categorías solo pueden ser creadas por administradores.
  • Cada categoría tiene un nombre y un ID.
  • Las categorías pueden activarse o desactivarse para permitir o no la creación de nuevos temas.
  • Las categorías pueden ser eliminadas por administradores (solo si no tienen temas).

Temas

Los temas son hilos de discusión individuales dentro de una categoría. Representan asuntos específicos para discusión.

Propiedades clave:

  • Creados por usuarios (cuando la configuración de la categoría lo permite).
  • Cada tema tiene un título, contenido, autor y marca de tiempo de creación.
  • Los temas pueden activarse o desactivarse para permitir o no nuevas publicaciones.
  • Los temas pueden ser eliminados por su creador, moderadores o administradores.

Publicaciones

Las publicaciones son mensajes individuales dentro de un tema. Representan respuestas y contribuciones de los usuarios a la discusión.

Propiedades clave:

  • Creadas por usuarios (cuando la configuración del tema lo permite).
  • Cada publicación tiene contenido, autor y marca de tiempo de creación.
  • Las publicaciones pueden recibir "me gusta" de otros usuarios.
  • Las publicaciones pueden ser eliminadas por su creador, moderadores o administradores.

Me Gusta

Los "me gusta" son reacciones de los usuarios a las publicaciones, indicando aprobación o aprecio.

Propiedades clave:

  • Los usuarios pueden dar o quitar "me gusta" a las publicaciones.
  • Cada "me gusta" está asociado a una publicación y un usuario específicos.
  • El conteo de "me gusta" se muestra para cada publicación.

Esquema de la Base de Datos

El sistema de foros se respalda en cuatro tablas principales en la base de datos:

imagen

  • categorias: almacena las categorías del foro.
  • temas: almacena los temas dentro de las categorías.
  • publicaciones: almacena las publicaciones dentro de los temas.
  • me_gusta: almacena las reacciones de "me gusta" de los usuarios a las publicaciones.

Estructura de la Interfaz de Usuario

La interfaz del foro se divide en tres secciones redimensionables que corresponden a la jerarquía del foro:

imagen

Sección 1: Categorías

Esta sección muestra una lista de todas las categorías del foro. Para los administradores, también incluye controles para:

  • Crear nuevas categorías.
  • Eliminar categorías existentes.
  • Activar o desactivar la posibilidad de que los usuarios creen temas dentro de una categoría.

La sección puede colapsarse o expandirse usando el botón toggleSection1.

Sección 2: Temas

Esta sección muestra los temas dentro de una categoría seleccionada. Muestra:

  • Título del tema.
  • Autor del tema.
  • Fecha de creación.
  • Número de publicaciones.
  • Controles para eliminar o activar/desactivar el tema (según los permisos del usuario).

Sección 3: Publicaciones

Esta sección muestra las publicaciones dentro de un tema seleccionado. Muestra:

  • Contenido de la publicación.
  • Autor de la publicación.
  • Fecha de creación.
  • Número de "me gusta".
  • Controles para eliminar la publicación (según los permisos del usuario).

Controles de permisos

El foro implementa un sistema de permisos basado en roles que determina qué acciones pueden realizar los usuarios:

Rol Ver contenido Crear temas Crear publicaciones Me gusta las publicaciones Eliminar contenido propio Eliminar cualquier contenido Alternar configuración
Visitante
Jugador
Moderador
Administrador

Además, los permisos se pueden restringir a nivel de categoría y tema:

  1. Las categorías pueden tener deshabilitada la creación de temas
  2. Los temas pueden tener deshabilitada la creación de publicaciones

Controles de estado de categorías y temas

Los administradores pueden controlar el estado de las categorías y los temas para administrar el contenido del foro:

imagen