Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/jpbarbatic/webapp/llms.txt

Use this file to discover all available pages before exploring further.

WebApp Admin Panel es un panel de administración back-end construido en PHP puro que permite gestionar productos, categorías, usuarios y roles con un sistema de permisos granular. Está pensado para ser desplegado sobre Apache (o el servidor integrado de PHP durante el desarrollo) y utiliza MariaDB/MySQL como motor de base de datos. En esta documentación encontrarás todo lo necesario para instalar, configurar, extender y desplegar la aplicación: desde los requisitos del entorno hasta la descripción de cada módulo y el flujo de despliegue por FTP.
El idioma preferido de este proyecto —tanto en el código fuente como en la documentación— es el español, tal como se indica en el propio README.md del repositorio.

Stack tecnológico

El proyecto combina un backend PHP tradicional con librerías modernas de generación de documentos y un frontend basado en Bootstrap:
CapaTecnologíaRol
BackendPHP 8.1+ (sesiones, PDO, extensión GD)Lógica de negocio, autenticación, manipulación de imágenes
Base de datosMariaDB / MySQLPersistencia de datos; charset utf8mb4 con colación española
FrontendBootstrap 5 (incluido en public/assets/bootstrap/)Interfaz responsiva sin dependencias de CDN externas
Exportación PDFmPDF ^8.3 + tecnickcom/tc-lib-pdf ^8.33Generación de listados de productos en formato PDF
Servidor webApache + mod_rewrite (.htaccess en public/)Enrutamiento en producción; servidor integrado de PHP para desarrollo
Desplieguelftp + sync.sh + .envSincronización incremental al servidor FTP de producción
Las dependencias PHP se declaran en composer.json:
{
    "require": {
        "tecnickcom/tc-lib-pdf": "^8.33",
        "mpdf/mpdf": "^8.3"
    }
}
El script npm run serve (declarado en package.json) levanta el servidor de desarrollo integrado de PHP apuntando a public/ como raíz web.

Estructura de directorios

El proyecto separa con claridad el backend, las vistas y la raíz pública en tres carpetas principales:
webapp/
├── includes/               # Librerías PHP de back-end
│   ├── db_pdo.php          #   Capa de acceso a datos (PDO)
│   ├── backend.php         #   Funciones comunes de negocio
│   ├── permisos.php        #   Verificación de permisos por rol
│   ├── usuarios.php        #   Gestión y autenticación de usuarios
│   ├── utilidades.php      #   Helpers y funciones de utilidad
│   └── pdf.php             #   Generación de documentos PDF (mPDF)

├── html/                   # Fragmentos de vista (.html.php, .css.php, .script.php)
│   ├── plantilla.html.php  #   Layout principal (cabecera + nav + pie)
│   ├── nav.html.php        #   Barra de navegación lateral
│   ├── login.html.php      #   Formulario de inicio de sesión
│   ├── paginacion.html.php #   Componente de paginación reutilizable
│   ├── categorias/         #   Vistas del módulo Categorías
│   ├── productos/          #   Vistas del módulo Productos
│   ├── usuarios/           #   Vistas del módulo Usuarios
│   ├── roles/              #   Vistas del módulo Roles
│   ├── dashboard/          #   Vistas del panel principal (CSS y JS propios)
│   └── errores/            #   Páginas de error (403, 404)

├── public/                 # Raíz web servida por Apache / PHP built-in
│   ├── index.php           #   Redirección al dashboard
│   ├── login.php           #   Controlador de login / logout
│   ├── logout.php          #   Cierre de sesión
│   ├── error.php           #   Controlador de errores
│   ├── categorias/         #   Controladores del módulo Categorías
│   ├── productos/          #   Controladores del módulo Productos
│   ├── usuarios/           #   Controladores del módulo Usuarios
│   ├── roles/              #   Controladores del módulo Roles
│   ├── dashboard/          #   Controlador del dashboard
│   ├── permisos/           #   Controlador de permisos
│   ├── imagenes/           #   Imágenes subidas (productos, avatares de usuario)
│   ├── assets/
│   │   ├── bootstrap/      #   Bootstrap 5 distribuido localmente
│   │   ├── dashboard.css   #   Estilos personalizados del dashboard
│   │   └── weather-widget.js # Widget meteorológico del dashboard
│   └── .htaccess           #   Reglas mod_rewrite de Apache

├── config-ejemplo.php      # Plantilla de configuración para nuevos entornos
├── esquema.sql             # Esquema completo de la BD + datos de ejemplo
├── bd.php                  # Utilidad web para cargar el esquema SQL
├── composer.json           # Dependencias PHP (mPDF, tc-lib-pdf)
├── package.json            # Scripts npm (serve, sync-ftp)
├── sync.sh                 # Script de despliegue FTP con lftp
├── .env-ejemplo            # Plantilla de credenciales FTP
├── .gitignore              # Ficheros excluidos del control de versiones
└── .devin/
    └── wiki.json           # Metadatos de documentación interna

includes/ — lógica de back-end

Contiene todas las librerías PHP que los controladores de public/ incluyen. Nunca son accesibles directamente desde el navegador. El fichero db_pdo.php abre la conexión PDO usando las constantes de config.php; permisos.php y usuarios.php se encargan de la autenticación basada en sesiones y de la verificación de permisos por rol antes de cada operación.

html/ — fragmentos de vista

Cada subdirectorio agrupa los fragmentos de una entidad concreta. La convención de nombre de fichero indica el tipo de fragmento:
  • .html.php — marcado HTML del componente
  • .css.php — estilos CSS específicos del módulo, servidos en línea
  • .script.php — JavaScript específico del módulo, servido en línea

public/ — raíz web

Es el único directorio expuesto al servidor web. Cada módulo tiene su propia subcarpeta con los controladores PHP: index.php (listado), nuevo.php / crear.php (alta), editar.php (edición), guardar.php (persistencia) y borrar.php (eliminación). El módulo de productos incluye además exportar.php (exportación PDF) y subir_fotos.php (carga de imágenes con GD).

Módulos principales

Productos

Gestión completa del catálogo: alta, edición, eliminación, filtrado por categoría, control de stock, galería de fotos y exportación del listado a PDF.

Categorías

Creación y edición de las categorías que agrupan los productos. Las categorías eliminadas dejan el campo id_categoria de sus productos en NULL.

Usuarios

Administración de cuentas de usuario: creación, edición de datos personales, cambio de contraseña, subida de avatar y asignación de rol.

Roles y Permisos

Sistema de roles con permisos granulares y dependencias entre ellos. Cada rol agrupa un conjunto de permisos que controlan las acciones disponibles.

Dashboard

Panel principal con resumen del estado de la aplicación. Incluye estilos propios (dashboard.css) y un widget meteorológico (weather-widget.js).

Despliegue FTP

Sincronización incremental al servidor de producción mediante lftp y sync.sh. Los ficheros sensibles (config.php, .env, vendor/) se excluyen automáticamente.

Build docs developers (and LLMs) love