Add project summary

This commit is contained in:
coolneng 2020-06-18 15:10:12 +02:00
parent b796f6bf47
commit ac456c2328
Signed by: coolneng
GPG Key ID: 9893DA236405AF57
3 changed files with 88 additions and 0 deletions

88
docs/Project.org Normal file
View File

@ -0,0 +1,88 @@
#+TITLE: MDIS
#+SUBTITLE: Programación Web
#+AUTHOR: Amin Kasrou Aouam
#+DATE: 2020-06-18
#+PANDOC_OPTIONS: template:~/.pandoc/templates/eisvogel.latex
#+PANDOC_OPTIONS: listings:t
#+PANDOC_OPTIONS: toc:t
#+PANDOC_METADATA: lang=es
#+PANDOC_METADATA: titlepage:t
#+PANDOC_METADATA: listings-no-page-break:t
#+PANDOC_METADATA: toc-own-page:t
#+PANDOC_METADATA: table-use-row-colors:t
#+PANDOC_METADATA: logo:/home/coolneng/Photos/Logos/UGR.png
* 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
#+CAPTION: Arquitectura del sistema
[[./assets/F1.png]]
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:
#+BEGIN_SRC nix
{ 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
'';
}
#+END_SRC
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:
#+BEGIN_SRC shell
nix-shell
#+END_SRC
Y ya dispondremos de un sistema funcional, y accesible en la URL *localhost:8000*.

BIN
docs/Project.pdf Normal file

Binary file not shown.

BIN
docs/assets/F1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB