Está en la página 1de 14

MANUAL DEL SISTEMA: APLICACIÓN

APP MÓVIL Y ADMINISTRACIÓN WEB


BICIPARKING UCC
DESARROLLO DE UNA APLICACIÓN MÓVIL PARA LA ADMINISTRACIÓN Y CONTROL DE
LAS BICICLETAS DE LOS ESTUDIANTES, DOCENTES Y ADMINISTRATIVOS, DE LA UCC SEDE
BOGOTÁ

Este documento es una guía para el administrador del sistema, la cual permite
conocer de una manera detallada las especificaciones técnicas de la aplicación de
Biciparking UCC y su página web administrativa, y la manera como se implementa
en producción.

Proponentes:
Allegretti Martínez Julián
Reyes González Rubén
Riapira Rozo Edisson

Director:
Jaime Páez, Ing. De Sistemas

UNIVERSIDAD COOPERATIVA
Universidad DE
Cooperativa deCOLOMBIA
Colombia
Ingeniería de Sistemas
Agosto, 2019
Agosto, 2019
Contenido

INTRODUCCIÓN................................................................................................................................. 3
CAPITULO 1: CARACTERÍSTICAS DE LA APLICACIÓN ................................................................. 4
CAPITULO 2: REQUERIMIENTOS DE MAQUINA ............................................................................. 5
CAPITULO 3: COMPILADO ................................................................................................................ 5
CAPITULO 4: IMPLEMENTACIÓN DE LA APLICACIÓN Y SERVICIOS EN PRODUCCIÓN. ......... 7
CAPITULO 5: IMPLEMENTACIÓN EN PRODUCCIÓN DE LA WEB ADMINISTRATIVA ............... 12
CAPITULO 6: RECOMENDACIONES .............................................................................................. 13
CAPITULO 7: SEGURIDAD .............................................................................................................. 13
Token de Seguridad ................................................................................................................... 13
Cifrado de Contraseñas. ........................................................................................................... 13
Bibliografía......................................................................................................................................... 14
INTRODUCCIÓN

En el siguiente documento se encuentra la información técnica de cómo está


construida la aplicación móvil y la plataforma web administrativa Biciparking UCC,
donde se especifica los servicios con los que cuenta la aplicación, también se detalla
la manera como se implementa a los servidores de producción.
CAPITULO 1: CARACTERÍSTICAS DE LA APLICACIÓN
Biciparking UCC App Móvil

La aplicación Biciparking UCC está construida en código Java Script, sobre


Framework Ionic para el FrontEnd y el back-End está construido sobre lenguaje
Node JS y framework Nest JS, con una base de base datos relacional en MySQL.

Back End

Microservicios

El back-End de la aplicación está construido con microservicios, para el manejo de


la carga transaccional de la aplicación, distribuyendo las peticiones a diferentes
servidores, se crearon 5 microservicios de la siguiente manera, un microservicio
emisor y 4 microservicios receptores.

Gateway (Emisor)
Bikes
Configuration
University Receptores
User

La arquietectura del sistema esta compuesta por una capa de microservicios,


Universidad, usuarios, configuracion y bicicletas, con un microservicio enrutador
llamado gateway y una capa de presentacion fron-end, funciona de la siguiente
manera, desde el fron-end se genera una peticion, el gateway la recibe y se encarga
de verificar que microservicio resuelve la peticion, la respuesta del microservicio es
retornada nuevamente al gateway y este se encarga de notificar a traves del
frontend.
Biciparking UCC Plataforma Web Administrativa

La página Web Administrativa está construida en código Java Script sobre


framework Angular para el FrontEnd y el back-End comparte los microservicios de
la aplicación móvil.

CAPITULO 2: REQUERIMIENTOS DE MAQUINA


Sistemas Operativos

Puede instalarse sobre sistemas operativos Windows Server versión 2012 en


adelante y Linux Server distribuciones Ubuntu, Debian, Fedora.

Recomendación: Linux Ubuntu Server versión 16 en adelante.

Motor Base Datos

El motor de base de datos se recomienda MySQL.

Recomendación: MySQL Versión 14.14 Distribución 5.7.27

Servidor

Node, para el back-End, recomendación la versión 10 en adelante.

Apache o Nginx para el FrontEnd de la plataforma web administrativa.

Recomendación: Nginx versión 1.10.3

CAPITULO 3: COMPILADO
Repositorio Código Fuente

El código fuente del back-End y el FrontEnd de la aplicación y de la web


administrativa está ubicado en el repositorio GitHub.
Compilar Aplicación Móvil Para IOS Y Android

Instale Git y Node en la maquina local donde va a realizar la compilación, luego


ejecute los siguientes pasos:
1. En Git, Comando: git clone origin https://github.com/eriapira/app-
mobile-biciparking.git
2. Ubicarse en la carpeta donde se descargó el contenido del comando
anterior y ejecutar el siguiente: npm install
3. Una vez realizada la actualización a la aplicación, ejecutar el siguiente
comando para exportar la aplicación, a un archivo. Apk (Android): Ionic
Cordova build Android –prod
Nota: Para la instalar la aplicación en un dispositivo Android, deberá
otorgar permisos de instalar aplicaciones de fuentes desconocidas.
4. Abrir el archivo: src/app/enums/configuration.enum.ts para cambiar la url
a donde apuntan los servicios (BackEnd) en producción y modificar la
siguiente línea:

5. Una vez realizada la actualización a la aplicación, ejecutar el siguiente


comando para exportar la aplicación, a un archivo. ipa (IOS): ionic cordova
build ios –prod
Nota: Para la instalar la aplicación en un dispositivo IOS, deberá
otorgar permisos de instalar aplicaciones de fuentes desconocidas.
6. Para implementar la aplicación en la tienda PlayStore de Google, seguir el
siguiente instructivo: https://www.nigmacode.com/ionic/Exportar-y-firmar-APK-en-Ionic}
7. Para implementar la aplicación en la tienda AppStore de Apple, seguir el
siguiente instructivo:https://blog.ng-classroom.com/blog/tips/enviando-al-appstore-ios/

Compilar Aplicación Web Administrativa

1. En Git, Comando: git clone https://github.com/eriapira/web-


biciparking.git
2. Ubicarse en la carpeta donde se descargó el contenido del comando
anterior y ejecutar el siguiente: npm install
3. Una vez realizada la actualización a la página, ejecutar el siguiente comando
para para compilar la página, ng build –prod

4. Abrir el archivo: src/app/services/api/api.service.ts para cambiar la url a


donde apuntan los servicios (BackEnd) en producción y modificar la siguiente
línea (#16):

5. En caso de tener subdominio


ng build --prod --base-href '/subdominio'

CAPITULO 4: IMPLEMENTACIÓN DE LA APLICACIÓN Y SERVICIOS EN


PRODUCCIÓN.

Actualización de servidor

Una vez conectado a su servidor público por medio de SSH, actualícelo, esto con el
fin de que todas las librerías y componentes del sistema operativo queden con la
última versión.

Instalación de MySQL

Realice la instalación de MySQL, asígnele un usuario (root) y una contraseña la cual


deberá guardar en un lugar seguro, ejecute el siguiente comando: sudo apt install
mysql-server
Instale la configuración de seguridad de MySQL, asigne la contraseña. Ejecute el
siguiente comando:
sudo mysql_secure_installation

Restaurar Base de datos

1. Descargue la copia de seguridad de la base de datos a través de la siguiente


url:
http://biciparkingucc.belian.work/biciparking.sql

2. Ponga el archivo de backup en alguna carpeta del servidor, a través de FTP

3. Conéctese a Mysql desde su conexión por ssh, ejecutando el siguiente


comando, mysql -u root -p
Va a necesitar la contraseña que ingreso en la instalación de mysql.
Cree una.
4. Cree una nueva base datos, y renómbrela con un alias que se relacione con
la aplicación móvil, utilice el siguiente comando, create database
db_biciparking;
Verifique que se haya creado, show databases;
Regrese al servidor, exit
5. Restaure el backup sobre la base de datos creada, ubicándose sobre la
carpeta en donde copio el archivo de backup, ejecutando el siguiente
comando, mysql -u root -p db_biciparking < biciparking.sql

Verifique que la base de datos fue restaurada correctamente, ingresando a


MySQL y consultando el listado de tablas.

Implementar Microservicios. (Servicios)

Instale Git(sudo apt install git) y Node(sudo apt install nodejs) en el servidor
donde va a realizar el despliegue, luego ejecute los siguientes pasos:
1. En Git Comando: git clone https://github.com/eriapira/rest-api-
biciparking.git
2. Ejecute el siguiente comando dentro de la carpeta rest-api(Al finalizar
en la carpeta donde haya realizado la descarga o clon, verá 5 carpetas,
cada una de estas, es un microservicio o servicio)
git checkout release/Release-01

3. Instale el paquete npm, con el siguiente comando, sudo apt install


npm
Con esto estará instalando los paquetes de Nest en el servidor

4. Ejecutar el siguiente comando, para cada una de las carpetas que se


descargó: npm install
Este comando lo debe realizar en los 5 servicios, ubicándose sobre la
carpeta.
Con esto estará instalando Nest, en cada uno de los microservicios.
5. Instalar el siguiente complemento de Node, con el comando, npm install
pm2 -g

6. Ingresar a cada de las carpetas donde descargó los microservicios y


ejecutar el siguiente comando para cada uno de los servicios: sudo pm2
start "npm run start:dev" --name “alias del servicio”
7. Una vez realizado el proceso, puede verificar el estado de los
microservicios con el siguiente comando: pm2 ls

Nota: Los microservicios para resolver peticiones desde internet


utilizan el puerto 3000, por lo que será necesario solicitar a su
administrador de hosting que le de apertura a dicho puerto.
8. Para finalizar actualice cada uno de los servicios con la conexión a la
base de datos, de la siguiente manera, en la carpeta raíz de cada uno
de los servidores, encontrará el archivo ormconfig.json, modifíquelo con
la nueva configuración a la base de datos, únicamente la línea, Host(IP
Privada del servidor) Username(Usuario de base datos)
password(Contraseña asignada) database(Nombre de la base de datos
creada)
CAPITULO 5: IMPLEMENTACIÓN EN PRODUCCIÓN DE LA WEB
ADMINISTRATIVA

Instalación del servidor

En el servidor de aplicaciones instale el servidor con el siguiente comando:

apt-get install nginx


o
apt-get install apache2

Desplegando en el servidor

Subir por transferencia de archivos al servidor(nginx-apache), el contenido de la


carpeta compilada(dist/web)

Una vez actualizado en el servidor, realizar el siguiente ajuste al archivo de


configuración del servidor:

En servidor Nginx:

Modificar el archivo: /etc/nginx/sites-available/default

Reemplazar la línea: try_files $uri $uri/ =404;

Por la línea: try_files $uri $uri/ /index.html;


Cargue la página y verifique ingreso.

CAPITULO 6: RECOMENDACIONES

Espacio en disco

En la carpeta Gateway/public, se guardan todas las imágenes de las fotos de las


bicicletas y de los biciusuarios, por lo que es recomendable contar con un espacio
en disco suficiente, debido a que esta carpeta tiende a crecer a medida a que
aumentan los biciusuarios registrados.

Copia de seguridad Base de datos

Se recomienda tener una tarea para generación de copia de seguridad de la base


de datos diaria.

CAPITULO 7: SEGURIDAD

Token de Seguridad
Todas las peticiones realizadas hacia el REST API de la aplicación se validarán a
través de un token único por usuario y sesión. El token tiene un vigencia de un año
se sesión activa cada vez que el usuario cierre sesión se reanudará la vigencia del
mismo. Esta basado en el estándar JSON Web Token, definido como un medio
compacto y seguro para la creación de tokens de acceso que permiten la
propagación entre dos partes1.

Cifrado de Contraseñas.
Las contraseñas de usuarios almacenados en la aplicación son cifradas bajo
Bcrypt (SHA-512) definido como el algoritmo predeterminado para OpenBSD y
otros sistemas, incluidas algunas distribuciones de Linux como SUSE Linux2

1
(Jones, 2015)
2
(en.bitcoinwiki.org, 2019)
Bibliografía
en.bitcoinwiki.org. (12 de 08 de 2019). en.bitcoinwiki.org. Obtenido de en.bitcoinwiki.org:
https://en.bitcoinwiki.org/wiki/Bcrypt

Jones, M. B. (05 de 2015). tools.ietf.org. Obtenido de tools.ietf.org:


https://tools.ietf.org/html/rfc7519

También podría gustarte