Publicité

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

Desarrollador Web - Geógrafo
12 Jan 2020
Publicité

Contenu connexe

Publicité

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.
  5. Metodología
  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)
  7. Modelado UML
  8. Implementación. Estructura Patrón MVC
  9. Requisitos técnicos
  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
  15. Implementación. Capa de datos
  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
Publicité