WebReporter PHP is a lightweight, universal reporting system designed to transform MySQL/MariaDB data into clean, interactive tables and charts. It features a customizable sidebar, dashboard, and a built-in authentication system for easy use and deployment.
WebReporter PHP allows developers and professionals to create quick data visualizations and detailed reports from their existing databases. It is designed to be "plug-and-play" with a simple configuration system and modern branding.
- Interactive Reports: Filter, search, and export your data to Excel or Print.
- Visual Dashboard: Customizable charts (Bar, Pie) for key metrics.
- User Management: Integrated roles (Admin/User) and access control.
- Generic Branding: Easily customizable with your own logo and name.
- Security-First: Built-in protection against CSRF and XSS, with session security.
- PHP 7.4+
- MySQL or MariaDB
- Web server (Apache/Nginx)
-
Clone the repository:
git clone https://github.com/cristobalmontenegro/WebReporter.git cd WebReporter -
Database Setup:
- Run the provided
database.sqlin your MySQL database to create the necessaryuser_table. - Add your users and set
is_admin = 1for administrative access.
- Run the provided
-
Configuration:
- Copy
config.php.exampletoconfig.local.php. - Edit
config.local.phpwith your database credentials and define your reports.
define('DB_HOST', 'localhost'); define('DB_USER', 'my_user'); define('DB_PASS', 'my_password'); define('DB_NAME', 'my_database');
- Copy
-
Add Reports & Charts:
- Define your detailed reports in the
$REPORTSarray and dashboard widgets in the$CHARTSarray withinconfig.local.php.
- Define your detailed reports in the
- Protect your configuration: Ensure
config.local.phpis NEVER committed (already in.gitignore). - Use HTTPS: Mandatory for protecting your login credentials.
- Database Permissions: Use a dedicated user with SELECT permissions for report data. Note that UPDATE permissions on
user_tableare required for administrative functions (enabling/disabling access). - Secure Sessions: Ensure your server has
session.cookie_httponly = 1andsession.cookie_secure = 1.
If this project helped you, consider supporting my work: https://ko-fi.com/cristobalmontenegro
WebReporter PHP es un sistema de reportería ligero y universal diseñado para transformar datos de MySQL/MariaDB en tablas y gráficas interactivas y limpias.
- Reportes Interactivos: Filtra, busca y exporta tus datos a Excel o Impresión.
- Dashboard Visual: Gráficas personalizables (Barras, Pastel) para tus métricas clave.
- Gestión de Usuarios: Roles integrados (Admin/Usuario) y control de accesos.
- Branding Genérico: Fácilmente personalizable con tu propio logo y nombre.
- Seguridad: Protección integrada contra CSRF y XSS, además de seguridad por sesiones.
- PHP 7.4+
- MySQL o MariaDB
- Servidor web (Apache/Nginx)
-
Clonar el repositorio:
git clone https://github.com/cristobalmontenegro/WebReporter.git cd WebReporter -
Configuración de Base de Datos:
- Ejecuta
database.sqlen tu base de datos MySQL para crear la tablauser_table. - Agrega tus usuarios y establece
is_admin = 1para el acceso administrativo.
- Ejecuta
-
Configuración del Sistema:
- Copia
config.php.exampleaconfig.local.php. - Edita
config.local.phpcon tus credenciales de base de datos.
define('DB_HOST', 'localhost'); define('DB_USER', 'mi_usuario'); define('DB_PASS', 'mi_contraseña'); define('DB_NAME', 'mi_base_de_datos');
- Copia
-
Añadir Reportes y Gráficas:
- Define tus reportes detallados en el array
$REPORTSy los widgets del tablero en$CHARTSdentro deconfig.local.php.
- Define tus reportes detallados en el array
- Protege tu configuración: Asegúrate de que
config.local.phpNUNCA sea subido al repositorio (incluido en.gitignore). - Usa HTTPS: Obligatorio para proteger las credenciales de acceso.
- Permisos de Base de Datos: Usa un usuario dedicado con permisos de SELECT para los datos de los reportes. Ten en cuenta que se requieren permisos de UPDATE sobre la tabla
user_tablepara las funciones administrativas (habilitar/deshabilitar accesos). - Sesiones Seguras: Asegura que tu servidor tenga activo
session.cookie_httponly = 1ysession.cookie_secure = 1.
Si este proyecto te ha sido de utilidad, ¡puedes apoyarme invitándome a un café! https://ko-fi.com/cristobalmontenegro
Copyright (c) 2026 Cristobal Montenegro. Licensed under the MIT License. See LICENSE for more details.