Sistema de gestión para clínicas y hospitales, permitiendo la administración de citas médicas, pacientes, doctores y especialidades. Desarrollado en PHP Vanilla con arquitectura MVC y diseño AdminLTE.
- Backend: PHP 8.2+ (Arquitectura MVC)
- Base de Datos: MySQL / MariaDB (PDO)
- Frontend:
- Bootstrap 4 (vía AdminLTE)
- AdminLTE 3.2.0
- FontAwesome 5
- jQuery 3
- Servidor: Apache (XAMPP/LAMP)
- PHP 8.0+ (Recomendado 8.2+)
- MySQL 5.7+ / MariaDB 10+
- Apache con mod_rewrite
- Extensión PHP:
pdo_mysql
git clone https://github.com/WorkTeam01/SistemaReservasHospital.git
cd SistemaReservasHospital- Crear base de datos:
hospital_db - Importar:
database.sql
cp .env.example .envEditar .env:
BASE_URL="http://localhost/SistemaReservasHospital/public"
DB_HOST="localhost"
DB_NAME="hospital_db"
DB_USER="root"
DB_PASS=""Abrir en navegador: http://localhost/SistemaReservasHospital/public
Usuario por defecto:
- Email:
admin@example.com - Contraseña:
password
SistemaReservasHospital/
├── .github/ # GitHub configs y documentación
│ ├── ISSUE_TEMPLATE/ # Plantillas de issues
│ ├── PULL_REQUEST_TEMPLATE/ # Plantillas de pull requests
│ ├── docs/ # Documentación del proyecto
│ └── sync-labels.sh # Script para sincronizar labels en GitHub
├── app/ # Lógica de la aplicación
│ ├── Config/ # Configuraciones
│ ├── Controllers/ # Controladores MVC
│ ├── Core/ # Clases base (Router, Model, etc.)
│ └── Models/ # Modelos de datos
├── routes/ # Definición de rutas
│ └── web.php
├── views/ # Vistas HTML/PHP
│ ├── dashboard/
│ ├── errors/
│ └── layouts/
├── public/ # Punto de entrada web
│ ├── index.php # Front controller
│ ├── css/
│ ├── js/
│ └── img/
├── vendor/ # Librerías de terceros
├── .gitignore # Archivos ignorados por Git
├── LICENSE # Licencia del proyecto
├── README.md # Documentación principal
├── database.sql # Esquema de BD
└── .env.example # Variables de entorno de ejemplo
Incluye:
- Arquitectura MVC detallada
- Convenciones de código
- Cómo crear nuevos módulos
- Sistema de rutas y middleware
- Buenas prácticas
Referencia rápida del sistema de autenticación:
- Métodos disponibles (login, logout, CSRF)
- Middleware de protección
- Patrones comunes
- Checklist de seguridad
Historial detallado de cambios, mejoras y correcciones del sistema.
🚨 Sistema de Manejo de Errores
Guía completa del manejo de errores:
- Páginas personalizadas (404, 500, 503)
- Captura automática de excepciones
- Modo desarrollo vs producción
- Logging de errores
- ✅ Arquitectura MVC - Separación clara de responsabilidades
- ✅ Sistema de Rutas - Router personalizado con middleware y rutas RESTful
- ✅ Autoloader PSR-4 - Carga automática de clases
- ✅ Layouts Reutilizables - Sistema de plantillas (header, sidebar, footer)
- ✅ Dashboard Administrativo - Panel con estadísticas en tiempo real por rol
- ✅ Sistema de Autenticación Completo:
- Login con validación de credenciales
- Protección CSRF con tokens
- Logout seguro mejorado (limpia sesión completa, cookies y regenera ID)
- Datos de usuario automáticos en todas las vistas
- Información de rol visible en menú de usuario
- ✅ Middleware de Autenticación - Protección de rutas (auth, guest, admin)
- ✅ Gestión de Pacientes:
- Formulario de creación con diseño moderno de dos columnas
- Validación de datos con jQuery Validate (asíncrona)
- Cards colapsables organizadas por secciones
- Guía lateral con consejos y ayuda contextual
- Campos: Nombre, Apellido, DNI, Teléfono, Email, Fecha de Nacimiento, Dirección
- ✅ Sistema de Manejo de Errores Completo:
- Páginas personalizadas (404, 500, 503) con diseño AdminLTE
- Layout reutilizable para todas las páginas de error
- ErrorHandler helper class para captura automática
- Modo desarrollo vs producción
- Integración automática con el Router
- ✅ Base de Datos - PDO con prepared statements y transacciones
- ✅ Mensajes Flash - Sistema de notificaciones con SweetAlert2
- ✅ UI/UX Consistente - Diseño 100% AdminLTE y Bootstrap (sin CSS conflictivo)
- 🚧 Listado completo de Pacientes con DataTables (RF04)
- 🚧 Edición y actualización de Pacientes
- 🚧 Gestión de Usuarios (Doctores, Recepcionistas, Admins)
- 🚧 Agendamiento de Citas Médicas
- 🚧 Calendario de Citas
- 🚧 Gestión completa de Especialidades
- 🚧 Sistema de Reportes
- PHP 8.2+ - Lenguaje del servidor
- PDO - Capa de abstracción de base de datos
- MVC Pattern - Arquitectura del proyecto
- AdminLTE 3 - Template administrativo
- Bootstrap 4.6 - Framework CSS
- jQuery 3 - Manipulación del DOM
- Font Awesome 5 - Iconos
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -m 'Agrega nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
Consulta la Guía de Desarrollo antes de contribuir.
El proyecto usa un sistema organizado de labels para issues y PR:
- Priority:
critical,high,medium,low - Type:
bug,feature,enhancement,documentation,testing,refactor,security - Status:
ready,in-progress,needs-review,blocked,on-hold - Module:
auth,usuarios,pacientes,citas,especialidades,dashboard,reportes,core - Effort:
small(<1 día),medium(1-3 días),large(>3 días)
Al crear un issue usando los templates, los labels se aplican automáticamente.
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
WorkTeam01 - GitHub
Para preguntas o problemas:
- 📧 Crear un Issue
- 📖 Consultar la Documentación
Sistema de Reservas Hospitalarias - Versión 1.0.0