Sistema de gestión de citas médicas con PHP y MySQL usando Bootstrap

Este sistema de gestión de citas médicas permite a los usuarios administrar pacientes y citas de manera sencilla y eficiente. Es un proyecto de aplicación web con una interfaz profesional y responsive, que emplea principalmente PHP y MySQL para la funcionalidad del backend y Bootstrap para el diseño frontend. La interfaz es fácil de usar e intuitiva, facilitando la gestión de citas médicas y el manejo de información de los pacientes.
Funcionalidades principales
- Inicio de sesión: Permite a los usuarios autorizados acceder al sistema.

- Menú principal: Ofrece una interfaz clara con botones de acceso directo a la gestión de pacientes y citas.

- Gestión de Pacientes: Opciones para agregar, ver, editar y eliminar información de los pacientes.

- Gestión de Citas: Permite agendar citas para los pacientes registrados, incluyendo fecha, hora y notas adicionales. También es posible modificar o eliminar las citas.

Tecnologías utilizadas
- PHP: Lenguaje de programación del lado del servidor, utilizado para manejar la lógica de backend, las consultas a la base de datos y la autenticación de usuarios.
- MySQL: Base de datos relacional para almacenar la información de usuarios, pacientes y citas.
- Bootstrap: Framework de CSS para construir una interfaz de usuario responsive y atractiva, con componentes preconstruidos como botones y formularios.
- Font Awesome: Biblioteca de íconos que se usa para agregar íconos en los botones y en el menú, mejorando la experiencia visual.
Estructura de archivos del sistema
1. Conexión a la base de datos (db.php)
Conecta la aplicación a la base de datos MySQL y maneja errores en la conexión.
<?php
$host = 'localhost';
$user = 'arci';
$password = '123';
$db = 'citas_medicas';
$conexion = mysqli_connect($host, $user, $password, $db);
if (!$conexion) {
die("Error en la conexión: " . mysqli_connect_error());
}
?>
2. Página de inicio de sesión (index.php)
Permite el acceso al sistema tras verificar el usuario y la contraseña almacenados en la tabla usuarios.
<?php
session_start();
include 'db.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$usuario = $_POST['usuario'];
$password = $_POST['password'];
$query = "SELECT * FROM usuarios WHERE usuario = '$usuario' AND password = '$password'";
$result = mysqli_query($conexion, $query);
if (mysqli_num_rows($result) == 1) {
$_SESSION['logueado'] = true;
header("Location: menu.php");
exit();
} else {
$error = "Usuario o contraseña incorrectos";
}
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Inicio de sesión</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-5">
<h2 class="text-center"><i class="fas fa-sign-in-alt"></i> Inicio de sesión</h2>
<?php if (isset($error)): ?>
<div class="alert alert-danger"><?= $error ?></div>
<?php endif; ?>
<form method="post" class="mt-3">
<div class="form-group">
<label><i class="fas fa-user"></i> Usuario</label>
<input type="text" name="usuario" class="form-control" required>
</div>
<div class="form-group">
<label><i class="fas fa-lock"></i> Contraseña</label>
<input type="password" name="password" class="form-control" required>
</div>
<button type="submit" class="btn btn-primary btn-block"><i class="fas fa-sign-in-alt"></i> Iniciar sesión</button>
</form>
</div>
</body>
</html>
3. Menú principal (menu.php)
Página principal del sistema tras el inicio de sesión, con botones de acceso a pacientes y citas.
<?php
session_start();
if (!isset($_SESSION['logueado'])) {
header("Location: index.php");
exit();
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Menú principal</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet">
</head>
<body>
<nav class="navbar navbar-expand navbar-dark bg-dark">
<a class="navbar-brand" href="#"><i class="fas fa-clinic-medical"></i> Citas Médicas</a>
<ul class="navbar-nav">
<li class="nav-item"><a class="nav-link" href="menu.php"><i class="fas fa-home"></i> Inicio</a></li>
<li class="nav-item"><a class="nav-link" href="pacientes.php"><i class="fas fa-user"></i> Pacientes</a></li>
<li class="nav-item"><a class="nav-link" href="citas.php"><i class="fas fa-calendar-alt"></i> Citas</a></li>
<li class="nav-item"><a class="nav-link" href="logout.php"><i class="fas fa-sign-out-alt"></i> Cerrar sesión</a></li>
</ul>
</nav>
<div class="container mt-5 text-center">
<h3>Bienvenido al sistema de gestión de citas médicas</h3>
<div class="d-flex justify-content-center">
<a href="pacientes.php" class="btn btn-primary btn-lg rounded-circle d-flex flex-column align-items-center justify-content-center mx-3" style="width: 200px; height: 200px; text-decoration: none;">
<i class="fas fa-user fa-3x"></i><span class="mt-2">Pacientes</span>
</a>
<a href="citas.php" class="btn btn-success btn-lg rounded-circle d-flex flex-column align-items-center justify-content-center mx-3" style="width: 200px; height: 200px; text-decoration: none;">
<i class="fas fa-calendar-alt fa-3x"></i><span class="mt-2">Citas</span>
</a>
</div>
</div>
</body>
</html>
4. Página de gestión de pacientes (pacientes.php)
Permite agregar, ver, editar y eliminar información de los pacientes.
// Código completo de pacientes.php se muestra en las respuestas anteriores.
5. Página de gestión de citas (citas.php)
Permite agregar, ver, editar y eliminar citas para los pacientes registrados.
// Código completo de citas.php se muestra en las respuestas anteriores.
6. Edición de pacientes (editar_paciente.php) y citas (editar_cita.php)
Permite editar la información de un paciente o cita específica.
// Código completo de editar_paciente.php y editar_cita.php se muestra en las respuestas anteriores.
Código de la base de datos en MySQL
Ejecuta el siguiente código en MySQL para crear la base de datos citas_medicas y las tablas necesarias.
CREATE DATABASE citas_medicas;
USE citas_medicas;
CREATE TABLE usuarios (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
usuario VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL
);
CREATE TABLE pacientes (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(50) NOT NULL,
apellido VARCHAR(50) NOT NULL,
telefono VARCHAR(20) NOT NULL
);
CREATE TABLE citas (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
paciente_id INT(11) NOT NULL,
fecha DATE NOT NULL,
hora TIME NOT NULL,
nota VARCHAR(255),
FOREIGN KEY (paciente_id) REFERENCES pacientes(id) ON DELETE CASCADE
);
Este sistema es ideal para proyectos básicos de administración de citas en clínicas o consultorios médicos pequeños, ofreciendo funcionalidades fundamentales y escalabilidad.
Mas inforamcion
Información de qué? es un tutorial de clases de programación….