Skip to content

Sistema de Gestión Hospitalaria (MVP) desarrollado en PHP Vanilla 8.2 y MariaDB con arquitectura MVC y diseño AdminLTE 3.

License

Notifications You must be signed in to change notification settings

WorkTeam01/SistemaReservasHospital

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏥 Sistema de Reservas Hospitalarias

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.


🚀 Tecnologías

  • 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)

📋 Requisitos

  • PHP 8.0+ (Recomendado 8.2+)
  • MySQL 5.7+ / MariaDB 10+
  • Apache con mod_rewrite
  • Extensión PHP: pdo_mysql

🔧 Instalación Rápida

1. Clonar el Repositorio

git clone https://github.com/WorkTeam01/SistemaReservasHospital.git
cd SistemaReservasHospital

2. Configurar Base de Datos

  1. Crear base de datos: hospital_db
  2. Importar: database.sql

3. Configurar Variables de Entorno

cp .env.example .env

Editar .env:

BASE_URL="http://localhost/SistemaReservasHospital/public"
DB_HOST="localhost"
DB_NAME="hospital_db"
DB_USER="root"
DB_PASS=""

4. Acceder al Sistema

Abrir en navegador: http://localhost/SistemaReservasHospital/public

Usuario por defecto:

  • Email: admin@example.com
  • Contraseña: password

📁 Estructura del Proyecto

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

📚 Documentación

Para Desarrolladores

📖 Guía de Desarrollo Completa

Incluye:

  • Arquitectura MVC detallada
  • Convenciones de código
  • Cómo crear nuevos módulos
  • Sistema de rutas y middleware
  • Buenas prácticas

🔐 Auth System - Guía Rápida

Referencia rápida del sistema de autenticación:

  • Métodos disponibles (login, logout, CSRF)
  • Middleware de protección
  • Patrones comunes
  • Checklist de seguridad

📋 Changelog

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

Características Implementadas

  • 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)

En Desarrollo

  • 🚧 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

🛠️ Tecnologías y Librerías

Backend

  • PHP 8.2+ - Lenguaje del servidor
  • PDO - Capa de abstracción de base de datos
  • MVC Pattern - Arquitectura del proyecto

Frontend

  • AdminLTE 3 - Template administrativo
  • Bootstrap 4.6 - Framework CSS
  • jQuery 3 - Manipulación del DOM
  • Font Awesome 5 - Iconos

🤝 Contribuir

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/nueva-funcionalidad)
  3. Commit tus cambios (git commit -m 'Agrega nueva funcionalidad')
  4. Push a la rama (git push origin feature/nueva-funcionalidad)
  5. Abre un Pull Request

Consulta la Guía de Desarrollo antes de contribuir.

🏷️ Sistema de Labels

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.


📝 Licencia

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.


👥 Equipo

WorkTeam01 - GitHub


📞 Soporte

Para preguntas o problemas:


Sistema de Reservas Hospitalarias - Versión 1.0.0

About

Sistema de Gestión Hospitalaria (MVP) desarrollado en PHP Vanilla 8.2 y MariaDB con arquitectura MVC y diseño AdminLTE 3.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •