SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Proyecto
“Aplicación web de gestión de rutas
turísticas mediante Node.js y API REST”
Patricio J. Soriano Castro
Ciclo Superior Desarrollo de Aplicaciones Web
IES Trassierra
Enero 2020
Justificación
Diseño de una aplicación
web dinámica de gestión
de datos relativos a rutas
temáticas urbanas y sus
puntos de interés.
Objetivos Formativos
1. Programar y desplegar un servidor web basado en JavaScript con
Node.js.
2. Diseño de una API REST para la gestión y consumo de datos.
3. Trabajo con bases de datos no relacionales (NoSQL).
4. Manejo y creación de entidades geográficas mediante librerías
JavaScript.
Metodología
Metodología Agile y Scrum como marco de desarrollo (adaptada)
● Sprints cada 15 días coincidiendo con las reuniones tenidas con los
profesores responsables de proyecto en el Centro.
● Cada reunión ha sido considerada Sprint Review en la que se presente los
avances en el desarrollo y presentando un incremento de valor del producto.
● Pila de tareas a desarrollar o backlog con la elección de tareas para cada
Sprint.
Metodología
Control de versiones
Uso de Git como software de control de
versiones.
● Creación de ramas master y dev
● Más de 190 commits
● Uso para despliegue a producción (push)
Modelado UML
Implementación. Estructura
Patrón MVC
Requisitos técnicos
Implementación. Servidor
Node.js es un entorno de desarrollo del
lado del servidor open source y
multiplataforma escrito en JavaScript.
Concebido como un entorno de ejecución
de JavaScript orientado a eventos
asíncronos.
Implementación. Servidor
Configuración server.js
● Variables de configuración
● Librerías (10) con require()
● Carpetas de datos
estáticos.
● Motor de vistas.
● Conexión a la base de datos
● Archivo de rutas
Implementación. Servidor
Archivo package.json
● Metadatos de la aplicación
● Dependencias instaladas con
npm
● Scripts de tareas (nodemon,
inicio db, test..)
Implementación. API Rest
Express.js
● Manejo específico de diferentes
verbos HTTP
● Gestión separada de las
peticiones por medio URL
(routes)
● Servicio de ficheros estáticos
● Configuración de plantillas
Implementación. Capa de datos
● MongoDB Almacén de documentos
(JSON)
● Mongoose (ODM)
○ Definición de esquemas
○ Tipado (SchemaTypes) de
atributos, atributos virtuales
○ Métodos de validación, indexado
○ Expresiones regulares
○ Funciones Get/Set
Implementación. Capa de datos
Implementación. Objetos geográficos
Leaflet es una biblioteca de JavaScript para
mapas interactivos basados en el navegador
y optimizados para dispositivos móviles.
● Mapas base (WMS y Tiles de mapas).
● Representación geográfica de datos de
API en formato GeoJSON.
● Complemento de edición gráfica (Leaflet
Draw).
● Geolocalización y callejero.
Frontend
Diseño de vistas con mediante el sistema de
plantillas Handlebars
● Generación de bloques de código HTML y uso
de datos JSON suministrador por los
controladores.
● Uso de la librería Axios para realizar las
peticiones HTTP a la API.
● Presentación de tablas con Bootstrap Tables
Frontend
Material Design Bootstrap
como framework CSS
● Componentes Bootstrap
con estilo de MD
● Diseño basado en el
sistema de rejilla (grid)
● Responsive
Autenticación
Sistema de autenticación basado en
Token y sesiones a partir del username
y la password.
● Generación tras la autenticación.
● Protección de rutas mediante
middleware.
● Uso para gestión de permisos por
roles.
● Encriptación de contraseña.
Pruebas y testeo
Pruebas de servicios API REST con Postman
● Colección de endpoints de la API.
● Uso de variables de entorno/desarrollo
● Opción de documentación externa en
web
Diseño de pruebas de humo (smoke testing)
con las funcionalidades básicas (longin, alta
ruta, edición POI, cambio contraseña..)
Despliegue a producción
● Heroku como servicio en la nube
(PaaS) que permite desplegar
aplicaciones.
● MongoDB Atlas base de datos
NoSQL en la nube gratuita
● Configuración producción
mediante variables de entorno.
Conclusiones (I)
● Node.js Curva de aprendizaje rápida, pero asciende a medida que la
aplicación se hace más compleja . A tener en cuenta los aspectos
relativos al despliegue.
● Puesta en marcha de la API REST con Express.js muy rápida y
flexible.
● Base de datos NoSQL requiere un esfuerzo por el cambio de
paradigma respecto a las bases de datos relacionales.
Conclusiones (II)
● Tratamiento de datos geográficos con librerías Javascript muy
potente
● Frontend mejorable con el uso de algunos de los framework JS
existentes (Angular, React o Vue).
● Imprescindible la aplicación de un sistema de test durante todas la
fases del proyecto (ej. Diseño Orientado a Pruebas TDD).
Proyecto
“Aplicación web de gestión de rutas
turísticas mediante Node.js y API REST”
Patricio J. Soriano Castro
Ciclo Superior Desarrollo de Aplicaciones Web
IES Trassierra
Enero 2020

Más contenido relacionado

La actualidad más candente

Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionJosé Antonio Sandoval Acosta
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...José Antonio Sandoval Acosta
 
Linux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performanceLinux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performancePostgreSQL-Consulting
 
Presentación Multimedia - Django
Presentación Multimedia - DjangoPresentación Multimedia - Django
Presentación Multimedia - DjangoViviana Trujillo
 
Control de Calidad del Software
Control de  Calidad del SoftwareControl de  Calidad del Software
Control de Calidad del SoftwareIntellimedia
 
Introducción a las Arquitecturas Orientadas a Servicios
Introducción a las Arquitecturas Orientadas a ServiciosIntroducción a las Arquitecturas Orientadas a Servicios
Introducción a las Arquitecturas Orientadas a ServiciosMarta Silvia Tabares
 
PostgreSQL and JDBC: striving for high performance
PostgreSQL and JDBC: striving for high performancePostgreSQL and JDBC: striving for high performance
PostgreSQL and JDBC: striving for high performanceVladimir Sitnikov
 
Unidad I Requerimientos
Unidad I RequerimientosUnidad I Requerimientos
Unidad I Requerimientosguest409adc
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBMongoDB
 
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017Amazon Web Services
 
使用 Liquibase 發展資料庫結構
使用 Liquibase 發展資料庫結構使用 Liquibase 發展資料庫結構
使用 Liquibase 發展資料庫結構Steven Wang
 
Introduction to MongoDB.pptx
Introduction to MongoDB.pptxIntroduction to MongoDB.pptx
Introduction to MongoDB.pptxSurya937648
 
virtualizacion de servidores completo
 virtualizacion de servidores completo virtualizacion de servidores completo
virtualizacion de servidores completoAnderson Alcántara
 

La actualidad más candente (20)

LiquiBase
LiquiBaseLiquiBase
LiquiBase
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccion
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
 
Manual de fragmentación mixta
Manual de fragmentación mixtaManual de fragmentación mixta
Manual de fragmentación mixta
 
Linux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performanceLinux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performance
 
Database change management with Liquibase
Database change management with LiquibaseDatabase change management with Liquibase
Database change management with Liquibase
 
Presentación Multimedia - Django
Presentación Multimedia - DjangoPresentación Multimedia - Django
Presentación Multimedia - Django
 
Control de Calidad del Software
Control de  Calidad del SoftwareControl de  Calidad del Software
Control de Calidad del Software
 
Control de versiones
Control de versionesControl de versiones
Control de versiones
 
Estructura de directorios de Linux
Estructura de directorios de LinuxEstructura de directorios de Linux
Estructura de directorios de Linux
 
Introducción a las Arquitecturas Orientadas a Servicios
Introducción a las Arquitecturas Orientadas a ServiciosIntroducción a las Arquitecturas Orientadas a Servicios
Introducción a las Arquitecturas Orientadas a Servicios
 
PostgreSQL and JDBC: striving for high performance
PostgreSQL and JDBC: striving for high performancePostgreSQL and JDBC: striving for high performance
PostgreSQL and JDBC: striving for high performance
 
Unidad I Requerimientos
Unidad I RequerimientosUnidad I Requerimientos
Unidad I Requerimientos
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
 
使用 Liquibase 發展資料庫結構
使用 Liquibase 發展資料庫結構使用 Liquibase 發展資料庫結構
使用 Liquibase 發展資料庫結構
 
Postgre sql
Postgre sqlPostgre sql
Postgre sql
 
Sql Server 2014 CTP2-Backup and Restore
Sql Server 2014 CTP2-Backup and RestoreSql Server 2014 CTP2-Backup and Restore
Sql Server 2014 CTP2-Backup and Restore
 
Introduction to MongoDB.pptx
Introduction to MongoDB.pptxIntroduction to MongoDB.pptx
Introduction to MongoDB.pptx
 
virtualizacion de servidores completo
 virtualizacion de servidores completo virtualizacion de servidores completo
virtualizacion de servidores completo
 

Similar a Presentación proyecto "Aplicación web de gestión de rutas turísticas mediante Node.js y API REST"

Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
 
Creando una API Rest con Node.js y MongoDB
Creando una API Rest con Node.js y MongoDBCreando una API Rest con Node.js y MongoDB
Creando una API Rest con Node.js y MongoDBPatricio Soriano Castro
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web modernoSebastián Rocco
 
Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...Eudris Cabrera
 
Comparación de clientes web de servicios web geográficos (v.5)
Comparación de clientes web de servicios web geográficos (v.5)Comparación de clientes web de servicios web geográficos (v.5)
Comparación de clientes web de servicios web geográficos (v.5)tuxman
 
Pillarsjs una aventura Open Source
Pillarsjs una aventura Open SourcePillarsjs una aventura Open Source
Pillarsjs una aventura Open SourceChelo Quilón Gómez
 
CursoPHP Nivel 1: Basic - Programa
CursoPHP Nivel 1: Basic - ProgramaCursoPHP Nivel 1: Basic - Programa
CursoPHP Nivel 1: Basic - Programasantiagobasulto
 
Web Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’sWeb Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’sPablo Pellegrinet
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!Paradigma Digital
 
Charla informativa sobre Koha en Necochea el 18 de octubre de 2014
Charla informativa sobre Koha en Necochea el 18 de octubre de 2014Charla informativa sobre Koha en Necochea el 18 de octubre de 2014
Charla informativa sobre Koha en Necochea el 18 de octubre de 2014Pablo López Liotti
 
Documertar APIs - Meetup.js
Documertar APIs - Meetup.jsDocumertar APIs - Meetup.js
Documertar APIs - Meetup.jsEzequiel Rial
 
Seminario web: Simplificando el uso de su base de datos con Atlas
Seminario web: Simplificando el uso de su base de datos con AtlasSeminario web: Simplificando el uso de su base de datos con Atlas
Seminario web: Simplificando el uso de su base de datos con AtlasMongoDB
 

Similar a Presentación proyecto "Aplicación web de gestión de rutas turísticas mediante Node.js y API REST" (20)

Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
 
Creando una API Rest con Node.js y MongoDB
Creando una API Rest con Node.js y MongoDBCreando una API Rest con Node.js y MongoDB
Creando una API Rest con Node.js y MongoDB
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web moderno
 
Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...
 
Comparación de clientes web de servicios web geográficos (v.5)
Comparación de clientes web de servicios web geográficos (v.5)Comparación de clientes web de servicios web geográficos (v.5)
Comparación de clientes web de servicios web geográficos (v.5)
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
 
Pillarsjs una aventura Open Source
Pillarsjs una aventura Open SourcePillarsjs una aventura Open Source
Pillarsjs una aventura Open Source
 
Sgbd mongodb
Sgbd   mongodbSgbd   mongodb
Sgbd mongodb
 
S4-PD1-2.2 EF
S4-PD1-2.2 EFS4-PD1-2.2 EF
S4-PD1-2.2 EF
 
¿Que es javascript y Modulos?
¿Que es javascript y Modulos?¿Que es javascript y Modulos?
¿Que es javascript y Modulos?
 
Arquitectura
Arquitectura Arquitectura
Arquitectura
 
CursoPHP Nivel 1: Basic - Programa
CursoPHP Nivel 1: Basic - ProgramaCursoPHP Nivel 1: Basic - Programa
CursoPHP Nivel 1: Basic - Programa
 
Web Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’sWeb Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’s
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
 
200405 - Aplicaciones Web
200405 - Aplicaciones Web200405 - Aplicaciones Web
200405 - Aplicaciones Web
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
Charla informativa sobre Koha en Necochea el 18 de octubre de 2014
Charla informativa sobre Koha en Necochea el 18 de octubre de 2014Charla informativa sobre Koha en Necochea el 18 de octubre de 2014
Charla informativa sobre Koha en Necochea el 18 de octubre de 2014
 
Documertar APIs - Meetup.js
Documertar APIs - Meetup.jsDocumertar APIs - Meetup.js
Documertar APIs - Meetup.js
 
S4 - EF
S4 - EFS4 - EF
S4 - EF
 
Seminario web: Simplificando el uso de su base de datos con Atlas
Seminario web: Simplificando el uso de su base de datos con AtlasSeminario web: Simplificando el uso de su base de datos con Atlas
Seminario web: Simplificando el uso de su base de datos con Atlas
 

Más de Patricio Soriano Castro

Charla "GeoPython" Grupo Python Córdoba
Charla "GeoPython" Grupo Python CórdobaCharla "GeoPython" Grupo Python Córdoba
Charla "GeoPython" Grupo Python CórdobaPatricio Soriano Castro
 
Taller #MapeaMovilidad Semana Europea de la Movilidad Córdoba
Taller #MapeaMovilidad Semana Europea de la Movilidad CórdobaTaller #MapeaMovilidad Semana Europea de la Movilidad Córdoba
Taller #MapeaMovilidad Semana Europea de la Movilidad CórdobaPatricio Soriano Castro
 
Presentación geoWebinar ‘Pautas y consideraciones básicas para la entrega de ...
Presentación geoWebinar ‘Pautas y consideraciones básicas para la entrega de ...Presentación geoWebinar ‘Pautas y consideraciones básicas para la entrega de ...
Presentación geoWebinar ‘Pautas y consideraciones básicas para la entrega de ...Patricio Soriano Castro
 
Charla "Mapa de Edificios de Sevilla. Uso de CARTO Builder con datos de Catas...
Charla "Mapa de Edificios de Sevilla. Uso de CARTO Builder con datos de Catas...Charla "Mapa de Edificios de Sevilla. Uso de CARTO Builder con datos de Catas...
Charla "Mapa de Edificios de Sevilla. Uso de CARTO Builder con datos de Catas...Patricio Soriano Castro
 
Publicación de datos geográficos en Internet
Publicación de datos geográficos en InternetPublicación de datos geográficos en Internet
Publicación de datos geográficos en InternetPatricio Soriano Castro
 
Visor Turístico Patrimonial de Posadas (Córdoba)
Visor Turístico Patrimonial de Posadas (Córdoba)Visor Turístico Patrimonial de Posadas (Córdoba)
Visor Turístico Patrimonial de Posadas (Córdoba)Patricio Soriano Castro
 
Tecnologías de información geográfica aplicadas a Arqueología. El proyecto SI...
Tecnologías de información geográfica aplicadas a Arqueología. El proyecto SI...Tecnologías de información geográfica aplicadas a Arqueología. El proyecto SI...
Tecnologías de información geográfica aplicadas a Arqueología. El proyecto SI...Patricio Soriano Castro
 
Nubes, plugins y HTML para visores patrimoniales
Nubes, plugins y HTML para visores patrimonialesNubes, plugins y HTML para visores patrimoniales
Nubes, plugins y HTML para visores patrimonialesPatricio Soriano Castro
 
Visualización de datos geográficos en Internet con CartoDB - Taller en HackLa...
Visualización de datos geográficos en Internet con CartoDB - Taller en HackLa...Visualización de datos geográficos en Internet con CartoDB - Taller en HackLa...
Visualización de datos geográficos en Internet con CartoDB - Taller en HackLa...Patricio Soriano Castro
 
Cartografía ciudadana con OpenStreetMap
Cartografía ciudadana con OpenStreetMapCartografía ciudadana con OpenStreetMap
Cartografía ciudadana con OpenStreetMapPatricio Soriano Castro
 
OpenStreetMap: geoinformación por y para todos - Taller RITSI 2014
OpenStreetMap: geoinformación por y para todos - Taller RITSI 2014OpenStreetMap: geoinformación por y para todos - Taller RITSI 2014
OpenStreetMap: geoinformación por y para todos - Taller RITSI 2014Patricio Soriano Castro
 
Recursos, servicios y páginas web de Información Geográfica para la provinci...
Recursos, servicios y páginas web de Información Geográfica  para la provinci...Recursos, servicios y páginas web de Información Geográfica  para la provinci...
Recursos, servicios y páginas web de Información Geográfica para la provinci...Patricio Soriano Castro
 
Uso de TIG en la Gerencia Municipal de Urbanismo de Córdoba
Uso de TIG en la Gerencia Municipal de Urbanismo de CórdobaUso de TIG en la Gerencia Municipal de Urbanismo de Córdoba
Uso de TIG en la Gerencia Municipal de Urbanismo de CórdobaPatricio Soriano Castro
 

Más de Patricio Soriano Castro (15)

Charla "GeoPython" Grupo Python Córdoba
Charla "GeoPython" Grupo Python CórdobaCharla "GeoPython" Grupo Python Córdoba
Charla "GeoPython" Grupo Python Córdoba
 
Taller #MapeaMovilidad Semana Europea de la Movilidad Córdoba
Taller #MapeaMovilidad Semana Europea de la Movilidad CórdobaTaller #MapeaMovilidad Semana Europea de la Movilidad Córdoba
Taller #MapeaMovilidad Semana Europea de la Movilidad Córdoba
 
Presentación geoWebinar ‘Pautas y consideraciones básicas para la entrega de ...
Presentación geoWebinar ‘Pautas y consideraciones básicas para la entrega de ...Presentación geoWebinar ‘Pautas y consideraciones básicas para la entrega de ...
Presentación geoWebinar ‘Pautas y consideraciones básicas para la entrega de ...
 
Charla "Mapa de Edificios de Sevilla. Uso de CARTO Builder con datos de Catas...
Charla "Mapa de Edificios de Sevilla. Uso de CARTO Builder con datos de Catas...Charla "Mapa de Edificios de Sevilla. Uso de CARTO Builder con datos de Catas...
Charla "Mapa de Edificios de Sevilla. Uso de CARTO Builder con datos de Catas...
 
Publicación de datos geográficos en Internet
Publicación de datos geográficos en InternetPublicación de datos geográficos en Internet
Publicación de datos geográficos en Internet
 
Visor Turístico Patrimonial de Posadas (Córdoba)
Visor Turístico Patrimonial de Posadas (Córdoba)Visor Turístico Patrimonial de Posadas (Córdoba)
Visor Turístico Patrimonial de Posadas (Córdoba)
 
Tecnologías de información geográfica aplicadas a Arqueología. El proyecto SI...
Tecnologías de información geográfica aplicadas a Arqueología. El proyecto SI...Tecnologías de información geográfica aplicadas a Arqueología. El proyecto SI...
Tecnologías de información geográfica aplicadas a Arqueología. El proyecto SI...
 
Nubes, plugins y HTML para visores patrimoniales
Nubes, plugins y HTML para visores patrimonialesNubes, plugins y HTML para visores patrimoniales
Nubes, plugins y HTML para visores patrimoniales
 
Visualización de datos geográficos en Internet con CartoDB - Taller en HackLa...
Visualización de datos geográficos en Internet con CartoDB - Taller en HackLa...Visualización de datos geográficos en Internet con CartoDB - Taller en HackLa...
Visualización de datos geográficos en Internet con CartoDB - Taller en HackLa...
 
Cartografía ciudadana con OpenStreetMap
Cartografía ciudadana con OpenStreetMapCartografía ciudadana con OpenStreetMap
Cartografía ciudadana con OpenStreetMap
 
OpenStreetMap: geoinformación por y para todos - Taller RITSI 2014
OpenStreetMap: geoinformación por y para todos - Taller RITSI 2014OpenStreetMap: geoinformación por y para todos - Taller RITSI 2014
OpenStreetMap: geoinformación por y para todos - Taller RITSI 2014
 
Mapas en Wordpress
Mapas en WordpressMapas en Wordpress
Mapas en Wordpress
 
Recursos, servicios y páginas web de Información Geográfica para la provinci...
Recursos, servicios y páginas web de Información Geográfica  para la provinci...Recursos, servicios y páginas web de Información Geográfica  para la provinci...
Recursos, servicios y páginas web de Información Geográfica para la provinci...
 
Uso de TIG en la Gerencia Municipal de Urbanismo de Córdoba
Uso de TIG en la Gerencia Municipal de Urbanismo de CórdobaUso de TIG en la Gerencia Municipal de Urbanismo de Córdoba
Uso de TIG en la Gerencia Municipal de Urbanismo de Córdoba
 
¿Qué es Geoinquietos?
¿Qué es Geoinquietos?¿Qué es Geoinquietos?
¿Qué es Geoinquietos?
 

Último

Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024eCommerce Institute
 
Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024eCommerce Institute
 
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universoCURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universoanoiteenecesaria
 
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...eCommerce Institute
 
Guiaparacrearslideshareticsvirtual2024abril
Guiaparacrearslideshareticsvirtual2024abrilGuiaparacrearslideshareticsvirtual2024abril
Guiaparacrearslideshareticsvirtual2024abriljulianagomezm2
 
Presupuesto por Resultados de Seguridad Ciudadana .pptx
Presupuesto por Resultados de Seguridad Ciudadana .pptxPresupuesto por Resultados de Seguridad Ciudadana .pptx
Presupuesto por Resultados de Seguridad Ciudadana .pptxhugogabrielac1
 
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdfAct#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdfXimenaGonzlez95
 
Pablo Scasso - eCommerce Day Chile 2024
Pablo Scasso -  eCommerce Day Chile 2024Pablo Scasso -  eCommerce Day Chile 2024
Pablo Scasso - eCommerce Day Chile 2024eCommerce Institute
 
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...angierangel29072017
 
Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024eCommerce Institute
 
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024eCommerce Institute
 
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024eCommerce Institute
 
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024eCommerce Institute
 
Suiwen He - eCommerce Day Chile 2024
Suiwen He  -  eCommerce  Day  Chile 2024Suiwen He  -  eCommerce  Day  Chile 2024
Suiwen He - eCommerce Day Chile 2024eCommerce Institute
 
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na CoruñaCURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruñaanoiteenecesaria
 
Introduccion al Libro de Genesis - Caps 15 al 17.pdf
Introduccion al Libro de Genesis - Caps 15 al 17.pdfIntroduccion al Libro de Genesis - Caps 15 al 17.pdf
Introduccion al Libro de Genesis - Caps 15 al 17.pdfDaniel425270
 
Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024eCommerce Institute
 

Último (18)

Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
 
Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024
 
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universoCURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
 
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
 
Guiaparacrearslideshareticsvirtual2024abril
Guiaparacrearslideshareticsvirtual2024abrilGuiaparacrearslideshareticsvirtual2024abril
Guiaparacrearslideshareticsvirtual2024abril
 
Presupuesto por Resultados de Seguridad Ciudadana .pptx
Presupuesto por Resultados de Seguridad Ciudadana .pptxPresupuesto por Resultados de Seguridad Ciudadana .pptx
Presupuesto por Resultados de Seguridad Ciudadana .pptx
 
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdfAct#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
 
Pablo Scasso - eCommerce Day Chile 2024
Pablo Scasso -  eCommerce Day Chile 2024Pablo Scasso -  eCommerce Day Chile 2024
Pablo Scasso - eCommerce Day Chile 2024
 
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
 
Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024
 
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
 
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
 
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
 
Suiwen He - eCommerce Day Chile 2024
Suiwen He  -  eCommerce  Day  Chile 2024Suiwen He  -  eCommerce  Day  Chile 2024
Suiwen He - eCommerce Day Chile 2024
 
Biomecánica y análisis de puestos trabajo pptx
Biomecánica y análisis de puestos trabajo pptxBiomecánica y análisis de puestos trabajo pptx
Biomecánica y análisis de puestos trabajo pptx
 
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na CoruñaCURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
 
Introduccion al Libro de Genesis - Caps 15 al 17.pdf
Introduccion al Libro de Genesis - Caps 15 al 17.pdfIntroduccion al Libro de Genesis - Caps 15 al 17.pdf
Introduccion al Libro de Genesis - Caps 15 al 17.pdf
 
Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024
 

Presentación proyecto "Aplicación web de gestión de rutas turísticas mediante Node.js y API REST"

  • 1. Proyecto “Aplicación web de gestión de rutas turísticas mediante Node.js y API REST” Patricio J. Soriano Castro Ciclo Superior Desarrollo de Aplicaciones Web IES Trassierra Enero 2020
  • 2. Justificación Diseño de una aplicación web dinámica de gestión de datos relativos a rutas temáticas urbanas y sus puntos de interés.
  • 3. Objetivos Formativos 1. Programar y desplegar un servidor web basado en JavaScript con Node.js. 2. Diseño de una API REST para la gestión y consumo de datos. 3. Trabajo con bases de datos no relacionales (NoSQL). 4. Manejo y creación de entidades geográficas mediante librerías JavaScript.
  • 4. Metodología Metodología Agile y Scrum como marco de desarrollo (adaptada) ● Sprints cada 15 días coincidiendo con las reuniones tenidas con los profesores responsables de proyecto en el Centro. ● Cada reunión ha sido considerada Sprint Review en la que se presente los avances en el desarrollo y presentando un incremento de valor del producto. ● Pila de tareas a desarrollar o backlog con la elección de tareas para cada Sprint.
  • 6. Control de versiones Uso de Git como software de control de versiones. ● Creación de ramas master y dev ● Más de 190 commits ● Uso para despliegue a producción (push)
  • 10. Implementación. Servidor Node.js es un entorno de desarrollo del lado del servidor open source y multiplataforma escrito en JavaScript. Concebido como un entorno de ejecución de JavaScript orientado a eventos asíncronos.
  • 11. Implementación. Servidor Configuración server.js ● Variables de configuración ● Librerías (10) con require() ● Carpetas de datos estáticos. ● Motor de vistas. ● Conexión a la base de datos ● Archivo de rutas
  • 12. Implementación. Servidor Archivo package.json ● Metadatos de la aplicación ● Dependencias instaladas con npm ● Scripts de tareas (nodemon, inicio db, test..)
  • 13. Implementación. API Rest Express.js ● Manejo específico de diferentes verbos HTTP ● Gestión separada de las peticiones por medio URL (routes) ● Servicio de ficheros estáticos ● Configuración de plantillas
  • 14. Implementación. Capa de datos ● MongoDB Almacén de documentos (JSON) ● Mongoose (ODM) ○ Definición de esquemas ○ Tipado (SchemaTypes) de atributos, atributos virtuales ○ Métodos de validación, indexado ○ Expresiones regulares ○ Funciones Get/Set
  • 16. Implementación. Objetos geográficos Leaflet es una biblioteca de JavaScript para mapas interactivos basados en el navegador y optimizados para dispositivos móviles. ● Mapas base (WMS y Tiles de mapas). ● Representación geográfica de datos de API en formato GeoJSON. ● Complemento de edición gráfica (Leaflet Draw). ● Geolocalización y callejero.
  • 17. Frontend Diseño de vistas con mediante el sistema de plantillas Handlebars ● Generación de bloques de código HTML y uso de datos JSON suministrador por los controladores. ● Uso de la librería Axios para realizar las peticiones HTTP a la API. ● Presentación de tablas con Bootstrap Tables
  • 18. Frontend Material Design Bootstrap como framework CSS ● Componentes Bootstrap con estilo de MD ● Diseño basado en el sistema de rejilla (grid) ● Responsive
  • 19. Autenticación Sistema de autenticación basado en Token y sesiones a partir del username y la password. ● Generación tras la autenticación. ● Protección de rutas mediante middleware. ● Uso para gestión de permisos por roles. ● Encriptación de contraseña.
  • 20. Pruebas y testeo Pruebas de servicios API REST con Postman ● Colección de endpoints de la API. ● Uso de variables de entorno/desarrollo ● Opción de documentación externa en web Diseño de pruebas de humo (smoke testing) con las funcionalidades básicas (longin, alta ruta, edición POI, cambio contraseña..)
  • 21. Despliegue a producción ● Heroku como servicio en la nube (PaaS) que permite desplegar aplicaciones. ● MongoDB Atlas base de datos NoSQL en la nube gratuita ● Configuración producción mediante variables de entorno.
  • 22. Conclusiones (I) ● Node.js Curva de aprendizaje rápida, pero asciende a medida que la aplicación se hace más compleja . A tener en cuenta los aspectos relativos al despliegue. ● Puesta en marcha de la API REST con Express.js muy rápida y flexible. ● Base de datos NoSQL requiere un esfuerzo por el cambio de paradigma respecto a las bases de datos relacionales.
  • 23. Conclusiones (II) ● Tratamiento de datos geográficos con librerías Javascript muy potente ● Frontend mejorable con el uso de algunos de los framework JS existentes (Angular, React o Vue). ● Imprescindible la aplicación de un sistema de test durante todas la fases del proyecto (ej. Diseño Orientado a Pruebas TDD).
  • 24. Proyecto “Aplicación web de gestión de rutas turísticas mediante Node.js y API REST” Patricio J. Soriano Castro Ciclo Superior Desarrollo de Aplicaciones Web IES Trassierra Enero 2020