SlideShare una empresa de Scribd logo
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

Clase No.1 Introducción a la Programación en JAVA
Clase No.1 Introducción a la Programación en JAVAClase No.1 Introducción a la Programación en JAVA
Clase No.1 Introducción a la Programación en JAVA
Victor Hugo Chavez Salazar
 
PROJETO DE REDES EMPRESA FICTÍCIA "SKYNET"
PROJETO DE REDES EMPRESA FICTÍCIA "SKYNET"PROJETO DE REDES EMPRESA FICTÍCIA "SKYNET"
PROJETO DE REDES EMPRESA FICTÍCIA "SKYNET"
Marcioveras
 
شبكة عالمية انترنت
شبكة عالمية انترنتشبكة عالمية انترنت
شبكة عالمية انترنت
MedinaEdu
 
آموزش نظریه زبان ها و ماشین
آموزش نظریه زبان ها و ماشینآموزش نظریه زبان ها و ماشین
آموزش نظریه زبان ها و ماشین
faradars
 
منظومة الحاسب الالي
منظومة الحاسب الاليمنظومة الحاسب الالي
منظومة الحاسب الالي
moatazahmed40
 
NodeJS
NodeJSNodeJS
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De Programacioncarlos
 
Introduction to Prolog (PROramming in LOGic)
Introduction to Prolog (PROramming in LOGic)Introduction to Prolog (PROramming in LOGic)
Introduction to Prolog (PROramming in LOGic)
Ahmed Gad
 
انواع صفحات الويب
انواع صفحات الويب انواع صفحات الويب
انواع صفحات الويب
تقنيات التعليم
 
خوازميات و مباديء برمجــة (3) مفهوم البرمجـة
خوازميات و مباديء برمجــة  (3) مفهوم البرمجـةخوازميات و مباديء برمجــة  (3) مفهوم البرمجـة
خوازميات و مباديء برمجــة (3) مفهوم البرمجـة
Mahmoud Alfarra
 
شبكات الحاسوب والانترنت واستخداماتها في التعليم
شبكات الحاسوب والانترنت واستخداماتها في التعليمشبكات الحاسوب والانترنت واستخداماتها في التعليم
شبكات الحاسوب والانترنت واستخداماتها في التعليم
يحي صفحي
 
مقدمة في الشبكات
مقدمة في الشبكاتمقدمة في الشبكات
مقدمة في الشبكاتguest9e217f
 
تصميم نظم
تصميم نظمتصميم نظم
تصميم نظم
ahmed66710
 
تصميم المواقع الالكترونية عرض
تصميم المواقع الالكترونية عرضتصميم المواقع الالكترونية عرض
تصميم المواقع الالكترونية عرضAlnoor26
 
خوازميات و مباديء برمجــة (2) مفهوم الخوارزميات ج2
خوازميات و مباديء برمجــة  (2)  مفهوم الخوارزميات ج2خوازميات و مباديء برمجــة  (2)  مفهوم الخوارزميات ج2
خوازميات و مباديء برمجــة (2) مفهوم الخوارزميات ج2
Mahmoud Alfarra
 
باللغة العربية HTML دورة
  باللغة العربية HTML دورة   باللغة العربية HTML دورة
باللغة العربية HTML دورة
anees abu-hmaid
 
قواعد البيانات
قواعد البياناتقواعد البيانات
قواعد البيانات
Impossible Love
 

La actualidad más candente (18)

Clase No.1 Introducción a la Programación en JAVA
Clase No.1 Introducción a la Programación en JAVAClase No.1 Introducción a la Programación en JAVA
Clase No.1 Introducción a la Programación en JAVA
 
PROJETO DE REDES EMPRESA FICTÍCIA "SKYNET"
PROJETO DE REDES EMPRESA FICTÍCIA "SKYNET"PROJETO DE REDES EMPRESA FICTÍCIA "SKYNET"
PROJETO DE REDES EMPRESA FICTÍCIA "SKYNET"
 
شبكة عالمية انترنت
شبكة عالمية انترنتشبكة عالمية انترنت
شبكة عالمية انترنت
 
آموزش نظریه زبان ها و ماشین
آموزش نظریه زبان ها و ماشینآموزش نظریه زبان ها و ماشین
آموزش نظریه زبان ها و ماشین
 
منظومة الحاسب الالي
منظومة الحاسب الاليمنظومة الحاسب الالي
منظومة الحاسب الالي
 
PHP
PHPPHP
PHP
 
NodeJS
NodeJSNodeJS
NodeJS
 
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De Programacion
 
Introduction to Prolog (PROramming in LOGic)
Introduction to Prolog (PROramming in LOGic)Introduction to Prolog (PROramming in LOGic)
Introduction to Prolog (PROramming in LOGic)
 
انواع صفحات الويب
انواع صفحات الويب انواع صفحات الويب
انواع صفحات الويب
 
خوازميات و مباديء برمجــة (3) مفهوم البرمجـة
خوازميات و مباديء برمجــة  (3) مفهوم البرمجـةخوازميات و مباديء برمجــة  (3) مفهوم البرمجـة
خوازميات و مباديء برمجــة (3) مفهوم البرمجـة
 
شبكات الحاسوب والانترنت واستخداماتها في التعليم
شبكات الحاسوب والانترنت واستخداماتها في التعليمشبكات الحاسوب والانترنت واستخداماتها في التعليم
شبكات الحاسوب والانترنت واستخداماتها في التعليم
 
مقدمة في الشبكات
مقدمة في الشبكاتمقدمة في الشبكات
مقدمة في الشبكات
 
تصميم نظم
تصميم نظمتصميم نظم
تصميم نظم
 
تصميم المواقع الالكترونية عرض
تصميم المواقع الالكترونية عرضتصميم المواقع الالكترونية عرض
تصميم المواقع الالكترونية عرض
 
خوازميات و مباديء برمجــة (2) مفهوم الخوارزميات ج2
خوازميات و مباديء برمجــة  (2)  مفهوم الخوارزميات ج2خوازميات و مباديء برمجــة  (2)  مفهوم الخوارزميات ج2
خوازميات و مباديء برمجــة (2) مفهوم الخوارزميات ج2
 
باللغة العربية HTML دورة
  باللغة العربية HTML دورة   باللغة العربية HTML دورة
باللغة العربية HTML دورة
 
قواعد البيانات
قواعد البياناتقواعد البيانات
قواعد البيانات
 

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 2014
Carlos 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 MongoDB
Patricio Soriano Castro
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web moderno
Sebastiá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
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
José Moreno
 
Pillarsjs una aventura Open Source
Pillarsjs una aventura Open SourcePillarsjs una aventura Open Source
Pillarsjs una aventura Open Source
Chelo Quilón Gómez
 
S4-PD1-2.2 EF
S4-PD1-2.2 EFS4-PD1-2.2 EF
¿Que es javascript y Modulos?
¿Que es javascript y Modulos?¿Que es javascript y Modulos?
¿Que es javascript y Modulos?
DannyStevenRuizHerna
 
Arquitectura
Arquitectura Arquitectura
Arquitectura
Antonio Manuel
 
CursoPHP Nivel 1: Basic - Programa
CursoPHP Nivel 1: Basic - ProgramaCursoPHP Nivel 1: Basic - Programa
CursoPHP Nivel 1: Basic - Programa
santiagobasulto
 
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
Pablo 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
 
200405 - Aplicaciones Web
200405 - Aplicaciones Web200405 - Aplicaciones Web
200405 - Aplicaciones Web
Javier Gonzalez-Sanchez
 
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
Luis Fernando Aguas Bucheli
 
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
Pablo López Liotti
 
Documertar APIs - Meetup.js
Documertar APIs - Meetup.jsDocumertar APIs - Meetup.js
Documertar APIs - Meetup.js
Ezequiel 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 Atlas
MongoDB
 

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órdoba
Patricio 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órdoba
Patricio 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 Internet
Patricio 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 patrimoniales
Patricio 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 OpenStreetMap
Patricio 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 2014
Patricio Soriano Castro
 
Mapas en Wordpress
Mapas en WordpressMapas en Wordpress
Mapas en Wordpress
Patricio 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órdoba
Patricio Soriano Castro
 
¿Qué es Geoinquietos?
¿Qué es Geoinquietos?¿Qué es Geoinquietos?
¿Qué es Geoinquietos?
Patricio 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

Jorge Padilla Ogalde - eCommerce Day Colombia 2024
Jorge Padilla Ogalde - eCommerce Day Colombia 2024Jorge Padilla Ogalde - eCommerce Day Colombia 2024
Jorge Padilla Ogalde - eCommerce Day Colombia 2024
eCommerce Institute
 
Salomón Hakim - eCommerce Day Colombia 2024
Salomón Hakim - eCommerce Day Colombia 2024Salomón Hakim - eCommerce Day Colombia 2024
Salomón Hakim - eCommerce Day Colombia 2024
eCommerce Institute
 
Brayan sanchez garcia segundo grado grupo tres
Brayan sanchez garcia segundo grado grupo tresBrayan sanchez garcia segundo grado grupo tres
Brayan sanchez garcia segundo grado grupo tres
brayansangar73
 
Pajinas Libres y biografia de Manuel Gonzalés Prada (terminado).pptx
Pajinas Libres y biografia de Manuel Gonzalés Prada (terminado).pptxPajinas Libres y biografia de Manuel Gonzalés Prada (terminado).pptx
Pajinas Libres y biografia de Manuel Gonzalés Prada (terminado).pptx
josuefb96
 
Alexandra Orta - eCommerce Day Colombia 2024
Alexandra Orta - eCommerce Day Colombia 2024Alexandra Orta - eCommerce Day Colombia 2024
Alexandra Orta - eCommerce Day Colombia 2024
eCommerce Institute
 
Giovanni Stella - eCommerce Day Colombia 2024
Giovanni Stella -  eCommerce Day Colombia 2024Giovanni Stella -  eCommerce Day Colombia 2024
Giovanni Stella - eCommerce Day Colombia 2024
eCommerce Institute
 
control de emisiones de gases contaminantes.pptx
control de emisiones de gases contaminantes.pptxcontrol de emisiones de gases contaminantes.pptx
control de emisiones de gases contaminantes.pptx
jesusbellido2
 
Situación del Gas en Ecuador segun datos del gob
Situación del Gas en Ecuador segun datos del gobSituación del Gas en Ecuador segun datos del gob
Situación del Gas en Ecuador segun datos del gob
ChristopherHernandez89088
 
Diana Mejía - eCommerce Day Colombia 2024
Diana Mejía - eCommerce Day Colombia 2024Diana Mejía - eCommerce Day Colombia 2024
Diana Mejía - eCommerce Day Colombia 2024
eCommerce Institute
 
Daniel Alejandro Beltrán Mora - eCommerce Day Colombia 2024
Daniel Alejandro Beltrán Mora - eCommerce Day Colombia 2024Daniel Alejandro Beltrán Mora - eCommerce Day Colombia 2024
Daniel Alejandro Beltrán Mora - eCommerce Day Colombia 2024
eCommerce Institute
 
Matías Ulloa Salgado - eCommerce Day Colombia 2024
Matías Ulloa Salgado - eCommerce Day Colombia 2024Matías Ulloa Salgado - eCommerce Day Colombia 2024
Matías Ulloa Salgado - eCommerce Day Colombia 2024
eCommerce Institute
 
María Fernanda Quiñones - eCommerce Day Colombia 2024
María Fernanda Quiñones - eCommerce Day Colombia 2024María Fernanda Quiñones - eCommerce Day Colombia 2024
María Fernanda Quiñones - eCommerce Day Colombia 2024
eCommerce Institute
 
Camilo Chacón - eCommerce Day Colombia 2024
Camilo Chacón - eCommerce Day Colombia 2024Camilo Chacón - eCommerce Day Colombia 2024
Camilo Chacón - eCommerce Day Colombia 2024
eCommerce Institute
 
Raimon Reverter - eCommerce Day Colombia 2024
Raimon Reverter - eCommerce Day Colombia 2024Raimon Reverter - eCommerce Day Colombia 2024
Raimon Reverter - eCommerce Day Colombia 2024
eCommerce Institute
 
Alan Soria, Hernán Litvac - eCommerce Day Colombia 2024
Alan Soria,  Hernán Litvac - eCommerce Day Colombia 2024Alan Soria,  Hernán Litvac - eCommerce Day Colombia 2024
Alan Soria, Hernán Litvac - eCommerce Day Colombia 2024
eCommerce Institute
 
Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024
Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024
Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024
eCommerce Institute
 
Carlos Güisa - eCommerce Day Colombia 2024
Carlos Güisa - eCommerce Day Colombia 2024Carlos Güisa - eCommerce Day Colombia 2024
Carlos Güisa - eCommerce Day Colombia 2024
eCommerce Institute
 

Último (17)

Jorge Padilla Ogalde - eCommerce Day Colombia 2024
Jorge Padilla Ogalde - eCommerce Day Colombia 2024Jorge Padilla Ogalde - eCommerce Day Colombia 2024
Jorge Padilla Ogalde - eCommerce Day Colombia 2024
 
Salomón Hakim - eCommerce Day Colombia 2024
Salomón Hakim - eCommerce Day Colombia 2024Salomón Hakim - eCommerce Day Colombia 2024
Salomón Hakim - eCommerce Day Colombia 2024
 
Brayan sanchez garcia segundo grado grupo tres
Brayan sanchez garcia segundo grado grupo tresBrayan sanchez garcia segundo grado grupo tres
Brayan sanchez garcia segundo grado grupo tres
 
Pajinas Libres y biografia de Manuel Gonzalés Prada (terminado).pptx
Pajinas Libres y biografia de Manuel Gonzalés Prada (terminado).pptxPajinas Libres y biografia de Manuel Gonzalés Prada (terminado).pptx
Pajinas Libres y biografia de Manuel Gonzalés Prada (terminado).pptx
 
Alexandra Orta - eCommerce Day Colombia 2024
Alexandra Orta - eCommerce Day Colombia 2024Alexandra Orta - eCommerce Day Colombia 2024
Alexandra Orta - eCommerce Day Colombia 2024
 
Giovanni Stella - eCommerce Day Colombia 2024
Giovanni Stella -  eCommerce Day Colombia 2024Giovanni Stella -  eCommerce Day Colombia 2024
Giovanni Stella - eCommerce Day Colombia 2024
 
control de emisiones de gases contaminantes.pptx
control de emisiones de gases contaminantes.pptxcontrol de emisiones de gases contaminantes.pptx
control de emisiones de gases contaminantes.pptx
 
Situación del Gas en Ecuador segun datos del gob
Situación del Gas en Ecuador segun datos del gobSituación del Gas en Ecuador segun datos del gob
Situación del Gas en Ecuador segun datos del gob
 
Diana Mejía - eCommerce Day Colombia 2024
Diana Mejía - eCommerce Day Colombia 2024Diana Mejía - eCommerce Day Colombia 2024
Diana Mejía - eCommerce Day Colombia 2024
 
Daniel Alejandro Beltrán Mora - eCommerce Day Colombia 2024
Daniel Alejandro Beltrán Mora - eCommerce Day Colombia 2024Daniel Alejandro Beltrán Mora - eCommerce Day Colombia 2024
Daniel Alejandro Beltrán Mora - eCommerce Day Colombia 2024
 
Matías Ulloa Salgado - eCommerce Day Colombia 2024
Matías Ulloa Salgado - eCommerce Day Colombia 2024Matías Ulloa Salgado - eCommerce Day Colombia 2024
Matías Ulloa Salgado - eCommerce Day Colombia 2024
 
María Fernanda Quiñones - eCommerce Day Colombia 2024
María Fernanda Quiñones - eCommerce Day Colombia 2024María Fernanda Quiñones - eCommerce Day Colombia 2024
María Fernanda Quiñones - eCommerce Day Colombia 2024
 
Camilo Chacón - eCommerce Day Colombia 2024
Camilo Chacón - eCommerce Day Colombia 2024Camilo Chacón - eCommerce Day Colombia 2024
Camilo Chacón - eCommerce Day Colombia 2024
 
Raimon Reverter - eCommerce Day Colombia 2024
Raimon Reverter - eCommerce Day Colombia 2024Raimon Reverter - eCommerce Day Colombia 2024
Raimon Reverter - eCommerce Day Colombia 2024
 
Alan Soria, Hernán Litvac - eCommerce Day Colombia 2024
Alan Soria,  Hernán Litvac - eCommerce Day Colombia 2024Alan Soria,  Hernán Litvac - eCommerce Day Colombia 2024
Alan Soria, Hernán Litvac - eCommerce Day Colombia 2024
 
Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024
Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024
Camilo Andrés Palencia Baez, Camila Furlan - eCommerce Day Colombia 2024
 
Carlos Güisa - eCommerce Day Colombia 2024
Carlos Güisa - eCommerce Day Colombia 2024Carlos Güisa - eCommerce Day Colombia 2024
Carlos Güisa - eCommerce Day Colombia 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