Sistema web desarrollado en PHP con arquitectura MVC que permite la gestión de productos a través de un panel de administración y un catálogo público para visitantes.
Puedes consultar la documentación completa de la API REST, instalación, y guía de uso del sistema (generada con Mintlify) en el siguiente enlace:
->https://reduardo.mintlify.app/introduction
- PHP (Orientado a Objetos)
- MySQL (Base de datos)
- PDO (Acceso a datos)
- Bootstrap 5 (Interfaz de usuario)
- Namespaces y Autoload (Organización del código)
- Transacciones (Integridad de datos)
tienda_mvc/
├── config/
│ ├── Database.php (Conexión a BD con PDO)
│ └── Autoload.php (Autoload de clases)
├── controllers/
│ ├── AuthController.php (Autenticación)
│ ├── ProductoController.php (CRUD de productos)
│ └── PublicController.php (Catálogo público)
├── models/
│ ├── UsuarioModel.php (Modelo de usuarios)
│ └── ProductoModel.php (Modelo de productos)
├── views/
│ ├── layouts/
│ │ ├── header.php (Plantilla superior)
│ │ └── footer.php (Plantilla inferior)
│ ├── auth/
│ │ └── login.php (Vista de login)
│ ├── productos/
│ │ ├── index.php (Lista de productos admin)
│ │ ├── create.php (Formulario de alta)
│ │ └── edit.php (Formulario de edición)
│ └── public/
│ └── catalogo.php (Catálogo público)
├── index.php (Front Controller)
├── .htaccess (Reescritura de URLs)
├── database.sql (Script de base de datos)
└── README.md (Este archivo)
- Abrir phpMyAdmin o la terminal de MySQL
- Ejecutar el archivo
database.sql - Esto creará la base de datos
tienda_mvc, las tablas y un usuario administrador
- Copiar la carpeta
tienda_mvcen la carpetahtdocsde XAMPP (o la carpeta correspondiente de tu servidor) - Verificar la configuración de la base de datos en
config/Database.php:- Host:
localhost - Base de datos:
tienda_mvc - Usuario:
root - Contraseña: `` (vacía por defecto en XAMPP)
- Host:
- Iniciar Apache y MySQL desde XAMPP
- Acceder a
http://localhost/tienda_mvc/
- Usuario:
admin - Contraseña:
admin123
- Ver catálogo de productos
- Buscar productos por nombre o descripción
- Iniciar sesión
- Listar productos
- Agregar nuevos productos
- Editar productos existentes
- Eliminar productos
- Arquitectura MVC
- PDO con sentencias preparadas
- Transacciones en operaciones críticas
- Manejo de errores con try-catch
- Namespaces y autoload propio
- Contraseñas hasheadas con bcrypt
- Prevención de SQL Injection
- Escape de salida con htmlspecialchars
- Eduardo Montes de Oca Zatarain
- Abraham Paez Guerra
- Erik Watson Rosales
- Carlos Tirado Velazquez