2.4 KiB
MDIS
MDIS
MDIS es una sistema de información que permite la gestión de una consulta médica.
Funcionalidades
- Gestión de Usuarios
- Gestión de Pacientes
- Gestión de Citas
- Gestión de Vacaciones
- Gestión de Informes
Tecnologías
- PHP
- MySQL
- Javascript (Jquery)
- Nix
Arquitectura
Es un sistema web clásico, con la característica de que las consultas a la base de datos se realizan mediante PDO, para evitar vulnerabilidades del tipo inyección de SQL.
Además de ésto, no hacemos ninguna consulta SQL fuera del archivo database.php, lo que nos permite separar la lógica interna de la presentación.
Despliegue
El desarrollo y despliegue del sistema se han hecho gracias a Nix, un gestor de paquetes que permite entornos de desarrollo y despliegue reproducibles.
A continuación mostramos el código que defino el entorno:
{ pkgs ? import <nixpkgs> { } }:
with pkgs;
mkShell {
# Definición de los paquetes
buildInputs = [ php74 php74Extensions.pdo_mysql mysql57 ];
# Comandos que se ejecutan al entrar en la nix-shell
shellHook = ''
pkill mysql
rm -rf .mysql && mkdir .mysql
mysqld --datadir="$(pwd)/.mysql" --socket="$(pwd)/.mysql/mysql.sock" --initialize-insecure
mysqld --datadir="$(pwd)/.mysql" --socket="$(pwd)/.mysql/mysql.sock" --skip-networking &
sleep 1
mysql --socket="$(pwd)/.mysql/mysql.sock" -u root < $(pwd)/database/db.sql
alias mysql='mysql --socket="$(pwd)/.mysql/mysql.sock" -u root'
php -S localhost:8000
'';
}
Como podemos ver, Nix nos permite:
- Instalar las dependencias necesarias, en el ámbito de una shell
- Ejecutar una base de datos temporal
- Inicializar la base de datos
- Lanzar el servidor web interno de PHP (se podría reemplazar por Apache/Nginx/…)
El único comando que tenemos que ejecutar es:
nix-shell
Y ya dispondremos de un sistema funcional, y accesible en la URL localhost:8000.