Laboratorio 2 Marcos Apolinar Programacion III
Laboratorio 2 Marcos Apolinar Programacion III
Laboratorio 2 Marcos Apolinar Programacion III
Sistema de Control de
Mentales
Nombre:
Carné:
0906-22-16405
1
2
Índice general
Portada---------------------------------------------------------------------------------------------------2
Índice de tablas------------------------------------------------------------------------------------------4
Introducción---------------------------------------------------------------------------------------------5
2. Antecedentes-----------------------------------------------------------------------------------7
3. Importancia y alcances------------------------------------------------------------------------7
4. Beneficiarios------------------------------------------------------------------------------------
5. Delimitaciones---------------------------------------------------------------------------------7
7. Marco metodológico---------------------------------------------------------------------------
9. Modelo de autenticación---------------------------------------------------------------------
10
11. Requerimientos---------------------------------------------------------------------------20-22
3
13. Presupuesto------------------------------------------------------------------------------------
23
14. Cronograma-----------------------------------------------------------------------------------24
49
Conclusión---------------------------------------------------------------------------------------------53
Recomendaciones-------------------------------------------------------------------------------------54
Anexos----------------------------------------------------------------------------------------------55-64
Referencias---------------------------------------------------------------------------------------------65
ÍNDICE DE TABLAS
Tabla 1--------------------------------------------------------------------------------------------------
20
Tabla 2--------------------------------------------------------------------------------------------------
21
Tabla 3--------------------------------------------------------------------------------------------------
21
Tabla 4--------------------------------------------------------------------------------------------------
22
Tabla 5--------------------------------------------------------------------------------------------------
22
Tabla 6--------------------------------------------------------------------------------------------------
22
Tabla 7----------------------------------------------------------------------------------------------22-
4
23
Tabla 8--------------------------------------------------------------------------------------------------
23
5
Introducción
le permita establecer un mayor control de actividades como de los pacientes y así evitar
información ya que el este software automatiza los diferentes procesos enfocados en los
controles médicos, atención de pacientes y horarios de agendamiento que son parte clave en
6
Planteamiento del problema
de los procesos que tiene, el prolongado tiempo de espera para recibir asistencia médica es
manipulación de todos los datos y procesos de forma más eficiente y segura que
7
Antecedentes
por brindar servicios para complementar esfuerzos con los estados dentro un marco legal y
político, en donde los sectores público-privado fortalezcan alianzas para tener una fluida
Importancia y alcance
El alcance de este proyecto tiene como finalidad la implementación de una aplicación web
para el control de citas y manejo de historial médico en la institución, que pueda contar con
que permite el ingreso y registro de información de los pacientes con sus debidos datos
personales, así como del historial clínico, registro y asignación de médico tratante, entrega
Beneficiarios
Beneficiarios directos
Que se podrá optimizar el tiempo de respuesta y modernizar los procesos para así permitir
una correcta colaboración, coordinación entre todas las áreas involucradas y mejor
Beneficiarios Indirectos
Los pacientes, quienes gozaran de una mejor atención y valoración médica eficiente,
Delimitaciones
Objetivo General
Desarrollar una aplicación web que permita el control y ingresar o registrar de citas
Objetivos Específicos
paciente.
9
Marco Metodológico
En esta sección se detallan las técnicas y métodos que se utilizan para el proceso de
desarrollo del sistema web. En la actualidad el uso de procesos agiles en el desarrollo de
software viene siendo una forma de trabajo muy utilizada debido a la flexibilidad y
adaptabilidad que ofrece durante el transcurso del desarrollo permitiendo adecuar la forma
de trabajo a las condiciones del proyecto. La elección de metodologías agiles de las
tradicionales, es su alto nivel de colaboración entre las personas involucradas en el
desarrollo, realizando aportes o retroalimentaciones con la finalidad de evitar un
descontento del cliente en la entrega final del producto. En el actual proyecto se seguirá el
proceso de desarrollo de software con el uso metodológico XP.
10
Módulo de Autenticación
los usuarios que van a interactuar con el sistema para poder proporcionar la seguridad y
confiabilidad de los datos, para poder acceder al sistema los usuarios debes de ingresar su
usuario y contraseña los mismo que serán validados por la aplicación para tener un acceso
Módulo muy importante encargada en el agenda miento de cita médica estos siendo
Tiene como finalidad de permitir el ingreso, toma de signos vitales e información necesaria
Módulo de Reportes
Esta opción tiene como meta obtener la informa generada por el sistema para una apropiada
información más eficiente y rápida de los pacientes y poder dar un servicio más factible.
11
Marco Teórico
PHP
Es un lenguaje de programación interpretado del lado del servidor y de uso general que
originalmente significaba Personal Home Page (Página personal), pero ahora significa el
El código PHP suele ser procesado en un servidor web por un intérprete PHP
común (CGI). En un servidor web, el resultado del código PHP interpretado y ejecutado —
que puede ser cualquier tipo de datos, como el HTML generado o datos de imágenes
binarias— formaría la totalidad o parte de una respuesta HTTP. Existen diversos sistemas
organizar o facilitar la generación de esa respuesta. Por otra parte, PHP puede utilizarse
para muchas tareas de programación fuera del contexto de la web, como aplicaciones
libre publicado bajo Licencia PHP. PHP ha sido ampliamente portado y puede ser
El lenguaje PHP evolucionó sin una especificación formal escrita o un estándar hasta 2014,
12
con la implementación original actuando como el estándar de facto que otras
(htt54)
MySQL
código abierto desarrollado por Oracle. Se considera como la base de datos de código
MySQL es uno de los sistemas más popularizados para almacenar y administrar datos.
Create: crear
Read: leer
Update: actualizar
Delete: borrar
Características de MySQL
Código abierto
MySQL utiliza la Licencia Pública General de GNU, por lo que se puede descargar,
utilizar y modificar a voluntad. Esto facilita su uso tanto académico como profesional.
Uso multiplataforma
13
Escalabilidad
Tiene soporte para 40-50 millones de registros, 150.000-200.000 tablas y 5000 millones
de filas.
Tipos de datos
Soporta una amplia gama de tipos de datos, lo que permite tener una gran versatilidad en
cuanto a las situaciones, industrias o casos de uso donde puede implementarse una base de
datos MySQL. Puede emplearse para la industria financiera, al manejar datos con mucha
precisión; por otro lado, también puede utilizarse en ámbitos de geolocalización por sus
datos de tipo espacial. De igual forma puede competir, en ciertas situaciones, con las bases
Conjuntos de caracteres
permite adaptarse a cualquier parte del mundo. Sin duda alguna, es un aspecto que le ha
Clientes gráficos
Si bien MySQL utiliza su propio lenguaje para administrar los datos almacenados,
existen diversas herramientas o clientes gráficos que nos permiten interactuar con las bases
de datos, ayudando a que dicha interacción sea más sencilla y, por lo tanto, más rápida.
PHPMyAdmin
MySQL Workbench
14
Las características y ventajas de MySQL son muchas, pero sin duda todas ellas son
mejor explotadas cuando están integradas dentro de un sistema de información. Para ello
existe un amplio abanico de API nativas, librerías, paquetes, etc. que permiten integrar una
Documentación actualizada
Al ser muy popular y utilizado, permite que exista una documentación oficial muy
amplia, además de una comunidad enorme siempre dispuesta a ayudar, colaborar y aportar
al conocimiento compartido.
Modelo de cliente-servidor
En una base de datos relacional, los datos son organizados y almacenados en tablas en
lugar de guardar todos los datos juntos y organizados en una única unidad de
almacenamiento. Lo «relacional» hace referencia al uso de una llave para relacionar los
Modelo de cliente-servidor
El servidor es donde residen realmente los datos. Para acceder a dichos datos alguien
debe solicitarlos: ese alguien es el o los clientes. El cliente lanza una petición al servidor de
(htt55)
¿Qué es Laravel?
15
Existe una gran cantidad de herramientas que permiten simplificar el proceso de
desarrollo. Una de ellas es Laravel. OK, no es una herramienta nueva ni mucho menos,
pero a pesar de tener algunos años en el mercado sigue resultando innovadora para algunas
aplicaciones.
herramientas y recursos para crear aplicaciones modernas. Posee un ecosistema integral que
Este framework de PHP creció en popularidad rápidamente en los últimos años, y muchos
de desarrollo optimizado.
(htt56)
¿Qué es Bootstrap?
Bootstrap es un framework CSS desarrollado por Twitter en 2010, para estandarizar las
herramientas de la compañía.
código abierto y su nombre cambió para Bootstrap. Desde entonces fue actualizado varias
El framework combina CSS y JavaScript para estilizar los elementos de una página
HTML. Permite mucho más que, simplemente, cambiar el color de los botones y los
enlaces.
Esta es una herramienta que proporciona interactividad en la página, por lo que ofrece una
16
Además de todas las características que ofrece el framework, su principal objetivo es
Esto significa que las páginas están diseñadas para funcionar en desktop, tablets y
Bootstrap está constituido por una serie de archivos CSS y JavaScript responsables de
Hay un archivo principal llamado bootstrap.css, que contiene una definición para todos
directorios:
css: contiene los archivos necesarios para la estilización de los elementos y una
interactiva.
Bootstrap ofrece una serie de características que se pueden implementar en un sitio web.
Diseño responsive
17
el uso del class container.
En la práctica, el elemento <div>, funciona para crear una serie de notas, similar a una
Ya hubo un intento de utilizar tablas para crear diseños responsivos, sin embargo
existían limitaciones para definir la longitud de las columnas lo que hizo imposible su uso
longitud fácilmente.
funciona para determinar las dimensiones apropiadas para los elementos insertados en ese
espacio.
Container: como un conjunto con una propiedad de ancho máximo, que determina
diseño. Para esto, se considera la propiedad width —100% en todos los límites de
tamaño de tela—.
(htt57).
Todo website se compone de dos caras: el Back End y el Front End. El primero tiene
que ver con el desarrollo del elemento web que no está visible para los usuarios, y el front-
end representa la interfaz gráfica de un sitio web, desde la estructura hasta los estilos, como
18
puede ser la definición de los colores, tipografías, texturas, secciones, entre otros. Su uso es
determinante para que el usuario tenga una buena experiencia cuando navega por el sitio u
aplicación.
HTML, CSS y Javascript son tres lenguajes que se utilizan en el Front End, es decir, que
se utilizan en el lado del usuario. HTML existe desde los inicios de Internet y a partir del
crecimiento de este lenguaje surge CSS para mejorar la parte estética de los website creados
práctica, se utiliza para programar la estructura semántica de un website a través del uso de
tags (etiquetas).
Por ejemplo, para insertar un párrafo se usa la etiqueta <p> justo al inicio y al final del
párrafo.
De esta manera, estamos ante un lenguaje de marcado que sirve para estructurar
CSS: Proviene de “Cascading Style Sheet”. Se trata de un lenguaje de estilo, por ende,
CSS se puede escribir dentro del archivo HTML, aunque también en un archivo
Orientado a eventos asíncronos (no dependen de que otros se hayan ejecutado previamente)
simultánea sin que tenga que leer el código línea a línea, ni abrir múltiples procesos.
(htt58)
20
Requerimientos
Requerimientos No Funcionales
Descripción Interfaces
Requerimientos Funcionales
21
usuarios que van a utilizar la aplicación web.
22
Tabla 2. RF-02 Autenticación
Descripción Autenticación
contraseña.
el cual el usuario paciente para agendar una cita médica tiene obligatoriamente
registrase en la aplicación.
pacientes.
23
Tabla 4. RF-09 Reportes
Descripción Reportes
Médica
Plataforma de desarrollo
Para el desarrollo del proyecto se han utilizado los siguientes recursos tecnológicos:
Software
WebStorm
IDE Desarrollo
PhpStorm
Servidor Local XAMPP
24
Servidor Web Servidor compartido Ionos
Maquetado documentación Microsoft Word
Diseño Gráfico Photoshop
Creación de Wireframes Balsamiq
Chrome
Navegadores testeo
Firefox
Web app
Control de versiones GitHub
Respaldo de documentación Google Drive
Tabla 5
Hardware
Windows
Ordenadores
Presupuesto
web. Para el equipo humano se ha estimado que se trabajará durante 4 horas cada día, por lo que
tenemos en total 860 horas. Si a esto lo multiplicamos por el importe por hora que cobra un ingeniero,
estimado en 35Q/hora.
EQUIPO HUMANO
25
TOTAL 30.100Q
EQUIPAMIENTO TÉCNICO
Balsamiq anual 90 Q 90 Q
TOTAL 1.765,88 Q
Cronograma planificación
26
Maquetación y estilos de la aplicación 6 días 24 h
Revisión errores y testeo de la aplicación 2 días 8h
Creación video funcionamiento aplicación 1 días 4h
Documentar desarrollo aplicación 3 días 12 h
Fase final del proyecto 29 días 03/05/2024 10/05/2024 116 h
Programación de aplicación y corrección errores 15 días 60 h
Documentación y revisión del proyecto 10 días 40 h
Elaboración presentación final 4 días 16 h
Total 442 h
27
Pruebas ambiente, pruebas técnicas y producción
Si no tiene una cuenta, tiene la opción se poder registrarse y crear una “cuenta”:
Todos los campos tienes validadores que impiden que se ingresen cualquier tipo de dato:
28
También tiene validadores en el registro, donde nos indica que debemos llenar todos los campos,
por ejemplo:
29
En este caso indica que el correo es requerido y se deben llenar todos los campos, también indica
que las contraseñas deben coincidir.
30
En este caso indica que no llenamos los campos de contraseñas:
Tenemos un pre requisito que se indicó en el lado del Backend, las contraseñas deben tener como
mínimo 4 dígitos, de lo contrario mostrará este error:
31
Donde dice min:4 indica que debe tener como mínimo 4 caracteres o dígitos o lo que sea, son datos
alfanuméricos:
Si intentamos acceder con un correo que ya existe también nos tirará otro error:
32
Cuando se crea un nuevo usuario nos tira de nuevo al login para que podamos ingresar nuestros
credenciales directamente, aunque esta vez nos tira un mensaje adicional en el login:
33
Cuando iniciamos sesión nos tira al dashboard o al index:
Esta es la dirección con la que se accede, el dashboard es una dirección protegida por el login, si no
se acceden primero los credenciales no podremos acceder aunque sepamos la dirección exacta:
34
Si el usuario no existe en la base de datos nos regresará un mensaje de error:
Siempre tendremos la opción de cerrar sesión, si pulsamos el botón de cerrar sesión regresaremos a
la vista del login:
35
Los íconos de las redes sociales son hipervínculos que si son presionados nos redireccionarán a las
páginas oficiales del “negocio”, en este caso a las páginas “home”.
36
Este es un formulario que debe ser llenado para que nos podamos poner en contacto con la persona
interesada en nuestros servicios:
Cuando el formulario es enviado, nosotros enviamos un mensaje “alert” en la parte posterior, esto lo
hacemos median Java Script:
37
Resultados de pruebas
Resultados obtenidos:
Tiempo de respuesta = TR
Error de procesamiento = EP (No termina la ejecución por algún error).
Error de funcionalidad = EF (Puede terminar la ejecución, pero no tiene la misma
funcionalidad).
Los resultados están basados en los objetivos que fueron tomados en el levantamiento del
proyecto, la cual fue desarrollada bajo un entorno web para el control de donde se
analizaron los factores relaciones con atención medica de los pacientes, se logró optimizar
de una mejor manera el control de agenda miento a través de la aplicación web y facilitar
38
Códigos
El autenticador:
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Symfony\Contracts\Service\Attribute\Required;
/**
* @return \Illuminate\Http\Response
*/
//
39
}
return view('auth/register');
//dd($request->all());
$request->validate([
], [
40
]);
User::create([
]);
return view('auth.login');
$request->validate([
], [
41
'password.min' => 'la contraseña debe tener como min 4'
]);
if(Auth::attempt(['email'=>$request->email, 'password'=>$request->password])){
return redirect()->route('dashboard');
// return redirect()->route('sobreNosotros');
// }
return redirect()->route('contactanos');
>withInput();
Auth::logout();
42
}
Las rutas:
<?php
use App\Http\Controllers\Auth\AuthController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
| Here is where you can register web routes for your application. These
*/
Route::get('/', function () {
return view('welcome');
});
43
// auth, ruta que mostrará el formulario de login y las autenticaciones
Route::prefix('auth')->group(function(){
//Ejemplo de vista
Route::post('login',[AuthController::class,'loginVerify']);
//Datps regostro
Route::get('register',[AuthController::class,'register'])->name('register');
Route::post('register',[AuthController::class,'registerVerify']);
//cerrar sesión
Route::post('signOut',[AuthController::class,'signOut'])->name('signOut');
});
//middleware valida
Route::middleware('auth')->group(function() {
Route::get('dashboard', function() {
return view('dashboard.index');
})->name('dashboard');
// Route::get('sobreNosotros', function() {
// return view('dashboard.sobreNosotros');
// })->name('sobreNosotros');
44
Route::get('contactanos', function() {
return view('dashboard.contactanos');
})->name('contactanos');
});
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Trastornados</title>
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
rel="stylesheet" integrity="sha384-
QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"
crossorigin="anonymous">
</head>
<body>
<!DOCTYPE html>
45
<html lang="es">
<head>
<meta charset="UTF-8">
<title>dashboard</title>
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
rel="stylesheet" integrity="sha384-
QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"
crossorigin="anonymous">
</head>
<body>
<div class="container-fluid">
label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
46
<div class="collapse navbar-collapse" id="navbarScroll">
scroll-height: 100px;">
<li class="nav-item">
</li>
</ul>
@csrf
sesión</button>
</form>
</div>
</div>
</nav>
mental</h2>
</header>
47
<div class="col">
<div class="card">
alt="Imagen medico">
<div class="card-body">
</div>
</div>
</div>
<div class="col">
<div class="card">
alt="Imagen medico">
<div class="card-body">
</div>
</div>
</div>
<div class="col">
<div class="card">
alt="Imagen medico">
<div class="card-body">
48
</div>
</div>
</div>
<div class="col">
<div class="card">
alt="Imagen medico">
<div class="card-body">
</div>
</div>
</div>
</div>
<footer class="pb-0">
<div class="container">
<div class="row">
<div class="col-md-4">
<div class="fot">
<strong>
<h3>Oficinas centrales:</h3>
</strong>
<h4>Coatepeque UMG</h4>
49
<h4>Quetzaltenango Quetzaltenango</h4>
</div>
</div>
<div class="col-md-4">
<div class="fot">
<strong>
<h3>Contacto:</h3>
</strong>
<h4>0000-0000</h4>
<h4>3006-4005</h4>
</div>
</div>
<div class="col-md-4">
<div class="fot">
<strong>
<h3>Email:</h3>
</strong>
<h4>[email protected]</h4>
</div>
</div>
</div>
<div class="row">
<div class="redes-sociales">
50
<a target="_blank" href="https://www.facebook.com/"><img
</div>
</div>
</div>
<div class="row">
<div class="copy">
reservados
</div>
</div>
</div>
</div>
</div>
</footer>
<script
src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js"
integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2p
51
M8ODewa9r" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js"
integrity="sha384-
0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy"
crossorigin="anonymous"></script>
</body>
</html>
52
Acta de Constitución
CONTROL DE VERSIONES
ACTA DE
CONSTITUCIÓN
DEL PROYECTO
53
Requisitos Funcionales:
Informativa.
Requisitos No Funcionales:
Interfaz de usuario intuitiva y fácil de usar.
Requisitos de Calidad:
Garantizar la precisión y confiabilidad de la información almacenada en el sistema.
Proporcionar soporte técnico y actualizaciones periódicas para mantener el sistema en óptimas
condiciones.
5. RESERVA DE 1,360
CONTINGENCIA
54
6. RESERVA DE GESTIÓN 5,852
Nadie 0
REQUISITOS DE 100,000.000
APROBACIÓN DEL
PROYECTO:
55
Conclusión
Con el desarrollo de la aplicación web se logra mejorar la atención a los se tiene beneficios
que ayudan al control del agenda miento de citas médicas y manejo del historial clínico del
paciente donde los médicos pueden agilizar de una manera más efectiva y rápida la
objetivo de optimizar de una manera muy eficaz y rápida la asistencia médica en los
pacientes, y a su vez brindar un mejor control del historial clínico de los pacientes.
Con la integración de reportes o informes que se pueden generar, la aplicación alcanza una
56
Recomendaciones
manejo de la aplicación.
57
Anexos
58
59
60
61
62
63
64
65
66
67
Bibliografía
cada-lenguaje/#:~:text=HTML%2C%20CSS%20y%20Javascript%20son,creados
%20a%20partir%20de%20HTML.
68