Volver a Proyectos

Supercontrolador

Panel de administración dinámico — arquitectura table-agnostic con PHP

Descripción General

Panel de administración de base de datos cuyo concepto central es la genericidad total: un único conjunto de controladores PHP es capaz de listar, mostrar e insertar registros en cualquier tabla de la base de datos sin necesidad de escribir código específico para ninguna entidad.

El sistema interroga al propio motor de MySQL (SHOW TABLES, SELECT * LIMIT 1) para descubrir qué tablas existen y qué columnas tienen, y construye la interfaz al vuelo. Añadir una nueva tabla a la BD la hace aparecer automáticamente en el panel.

Tecnologías Utilizadas


PHP 8

MySQL

HTML5

CSS3

MVC

Características Clave

  • Menú lateral dinámico: Generado automáticamente con SHOW TABLES — sin configuración manual
  • Visualización universal: Lee las columnas reales de cada tabla para construir la cabecera HTML
  • Formulario de inserción automático: Infiere los campos del esquema de la tabla con SELECT * LIMIT 1
  • INSERT universal: Construye la sentencia SQL dinámicamente desde los datos del formulario
  • Router por parámetros URL: ?tabla=X&operacion=Y dirige a cada controlador
  • Frontend integrado: La tienda online comparte la misma base de datos
  • Layout sidebar + main: Panel de dos columnas con navegación lateral fija

Cómo Funciona

El router central (index.php) delega en el controlador correcto según los parámetros de la URL:

?tabla=producto → read.php (lista registros) ?tabla=producto&operacion=insertar → insertar.php (muestra formulario) ?tabla=producto&operacion=procesa_insertar → procesa_insertar.php (ejecuta INSERT)

El menú lateral se genera con una única consulta:

$resultado = $conexion->query("SHOW TABLES;"); while ($fila = $resultado->fetch_assoc()) { echo '<a href="?tabla=' . $fila['Tables_in_db'] . '">' . $fila['Tables_in_db'] . '</a>'; }

Mi Rol

Desarrollador Full-Stack — Arquitectura y Desarrollo

Diseñé el patrón de controlador genérico, implementé el router PHP, los cuatro controladores (menú, read, insertar, procesa_insertar) y el layout con flexbox. El reto principal fue construir un sistema que funcionase con cualquier esquema de BD sin modificar el código.

Estado

Estado: ⚡ Proyecto de Aprendizaje

Proyecto académico que explora patrones de diseño genéricos en PHP. Demuestra comprensión de meta-programación orientada a BD y arquitectura MVC simplificada.