-
Diagrama de Entidad-Relación
-
Creación de tablas mediante SQL para PostgreSQL, usando tipos de datos propios como 'serial' y sintaxis de restricciones (constrains) propias
./src/db/postgresql.sql
-
Instalación y configuración
-
PhpPgAdmin, instalación y configuración
https://wiki.archlinux.org/index.php/PhpPgAdmin
-
Apache http server, instalación y configuración
-
PHP, instalación y configuración
-
Configuración de Apache para uso de PHP mediante php-fpm y mod_proxy_fcgi
https://wiki.archlinux.org/index.php/Apache_HTTP_Server#Using_php-fpm_and_mod_proxy_fcgi
-
Arreglo para funcionamiento de PhpPgAdmin con la versión 10.3 de PostgreSQL
Adición en '/usr/share/webapps/phppgadmin/classes/database/Connection.php':
switch (substr($version,0,4)) { case '10.3': return 'Postgres'; break; }
En la línea 91
-
-
Creación de la base de datos 'esperpento' y de usuario homónimo para la realización de operaciones de selección, inserción, actualización y eliminación de registros en las tablas. Concesión de esos permisos por parte del usuario administrador de la base de datos. Éste será el usuario usado para la conexión a la base de datos y llevar a cabo las operaciones necesarias a petición de los clientes. No cuenta con permisos para crear, alterar ni eliminar tablas. En cuanto a la base de datos, sólo cuenta con permisos de conexión; no puede alterarla, eliminarla, ni crear bases de datos nuevas.
Para que el usuario 'esperpento' pueda insertar registros en las tablas que tienen como clave primaria un campo tipo 'serial' (autoincremental propio de PostgreSQL) es necesario darle permiso para ello usando el comando:
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO esperpento
-
Desarrollado en Python 3.6 usando la librería Psycopg 2.7.5
./src/server/*
http://initd.org/psycopg/docs/
Descontinuado
-
Migración del desarrollo a PHP usando el soporte integrado de PostgreSQL
./src/php/*
http://php.net/manual/en/book.pgsql.php
Dado que PHP ya fue instalado para Apache anteriormente para el uso de PhpPgAdmin, no es necesario hacer más que copiar los archivos .php en:
/srv/http/esperpento
O el directorio del servidor correspondiente.
El funcionamiento de los archivos PHP está basado en la realización de las operaciones correspondientes en la Base de Datos con los datos que se reciban por GET, tras su debida validación y haber llevado a cabo las comprobaciones necesarias, y la devolución de un resultado en formato JSON que contenga una clave "s" (success) de valor binario (0 ó 1), dependiendo de si la operación ha tenido éxito o no, y, si es necesario, una clave "c" (content) de valor otro objeto o array de objetos JSON con los datos que sea necesario devolver.
En caso de no recibir los parámetros GET imprescindibles, directamente ni se realizará ninguna acción, ni se devolverá ningún resultado.
-
Desarrollado en Java (y XML para la interfaz) con Android Studio 3.1, el entorno de desarrollo oficial de Android.
./src/android
-
Soporte a partir de la API 21 (Android 5.0).
-
Comunicación con el servidor implementada mediante Volley:
https://developer.android.com/training/volley/
Usando cola de peticiones (RequestQueue) con la ayuda de un objeto estático construido para su uso en toda la aplicación:
https://developer.android.com/training/volley/requestqueue#singleton
Y añadiendo peticiones de objetos JSON a dicha cola desde el punto de la aplicación que sea necesario:
https://developer.android.com/training/volley/request#request-json
De este modo, se controla eficientemente tanto la posible concurrencia de peticiones, como el que las mismas se realicen de manera asíncrona y no bloqueen la ejecución de la aplicación.