drr ii reinforcing innovative mechanisms for arising ...elaborar los contenidos e implementar el...

15
COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios. COOPI garantiza la privacidad de la identidad de los que presenten una denuncia. Solicitud de cotización TdR: Consultoría - cotización Curso de programación para el mantenimiento y migración progresiva a software libre, de la plataforma web SIG del CENEPRED. 1. ANTECEDENTES Cooperazione Internazionale - COOPI es una ONG (Organización No Gubernamental) italiana presente en Perú desde el año 2001, involucrada en actividades de cooperación al desarrollo, ayuda humanitaria y preparación ante desastres. Esta prestación de servicio se desarrollará en el marco del proyecto “RIMAC-DRR- II” implementado por COOPI en consorcio con CARE Perú y financiado por OFDA/USAID, cuyo socio estratégico para su desarrollo es el CENEPRED. 2. OBJETIVOS 2.1. Objetivo del proyecto El proyecto OFDA/USAID “Rímac-DRR- II”, tiene como objetivo reducir el riesgo de desastres y la vulnerabilidad de las personas en el distrito del Rímac, mejorando la coordinación de los actores involucrados e institucionalizando las buenas prácticas de Gestión de Riesgo de Desastres. En el marco especifico de esta consultoría, el objetivo del proyecto es colaborar con el CENEPRED en el plan de migración de su plataforma web SIG a una arquitectura de software libre. 2.2. Objetivo específico de la consultoría Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar con el CENEPRED en el plan de migración progresiva de su plataforma web SIG a una arquitectura de software libre. Se busca que estos cursos puedan ayudar al CENEPRED al manejo web y al manejo de información geográfica. Actividades específicas para realizarse: I. Desarrollar los contenidos para los cursos solicitados, incluyendo materiales necesarios como presentaciones o información complementaria. II. Realizar las sesiones de capacitación al personal del CENEPRED en las instalaciones de dicha institución (3 a 5 personas). Las capacitaciones, una vez finalizadas con éxito por el personal participante, serán avaladas por una constancia a nombre del proyecto RIMAC-DRR II (firmados por el Coordinador País de COOPI, la coordinadora del proyecto RIMAC-DRR y el consultor). III. Desarrollar un modelo de evaluación, que pueda ser aplicada por personal tanto técnico como no técnico, que se ha de aplicar al personal del CENEPRED, tanto al inicio del plan de capacitaciones como a los dos meses de finalizado el mismo. El primero de estos con el objetivo de medir los conocimientos iniciales de los participantes, mientras que el segundo buscará medir los avances realizados. En el primer caso, lo aplicara el consultor. En el segundo, este modelo debe venir acompañado de las respuestas a las preguntas planteadas, para su posterior verificación por parte del equipo del proyecto. 3. PRODUCTOS ESPERADOS Primer Entregable, el cual deberá incluir: a) Plan de capacitaciones detallado aprobado por el proyecto, en coordinación con CENEPRED. b) Modelos de evaluación tanto previo como posterior, y resultados del modelo de evaluación (pre test) RIMAC DRR II Reinforcing Innovative Mechanisms for Arising Capacities in Disaster Risk Reduction in Rímac (Perú) II720FDA18GR00266 Código Mago: 613601

Upload: others

Post on 16-Mar-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

Solicitud de cotización

TdR: Consultoría - cotización

Curso de programación para el mantenimiento y migración progresiva a software libre, de la plataforma web SIG

del CENEPRED.

1. ANTECEDENTES

Cooperazione Internazionale - COOPI es una ONG (Organización No Gubernamental) italiana presente en Perú desde el

año 2001, involucrada en actividades de cooperación al desarrollo, ayuda humanitaria y preparación ante desastres.

Esta prestación de servicio se desarrollará en el marco del proyecto “RIMAC-DRR- II” implementado por COOPI en consorcio

con CARE Perú y financiado por OFDA/USAID, cuyo socio estratégico para su desarrollo es el CENEPRED.

2. OBJETIVOS

2.1. Objetivo del proyecto

El proyecto OFDA/USAID “Rímac-DRR- II”, tiene como objetivo reducir el riesgo de desastres y la vulnerabilidad de las

personas en el distrito del Rímac, mejorando la coordinación de los actores involucrados e institucionalizando las buenas

prácticas de Gestión de Riesgo de Desastres. En el marco especifico de esta consultoría, el objetivo del proyecto es colaborar

con el CENEPRED en el plan de migración de su plataforma web SIG a una arquitectura de software libre.

2.2. Objetivo específico de la consultoría

Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a

colaborar con el CENEPRED en el plan de migración progresiva de su plataforma web SIG a una arquitectura de software

libre. Se busca que estos cursos puedan ayudar al CENEPRED al manejo web y al manejo de información geográfica.

Actividades específicas para realizarse:

I. Desarrollar los contenidos para los cursos solicitados, incluyendo materiales necesarios como presentaciones o información complementaria.

II. Realizar las sesiones de capacitación al personal del CENEPRED en las instalaciones de dicha institución (3 a 5 personas). Las capacitaciones, una vez finalizadas con éxito por el personal participante, serán avaladas por una constancia a nombre del proyecto RIMAC-DRR II (firmados por el Coordinador País de COOPI, la coordinadora del proyecto RIMAC-DRR y el consultor).

III. Desarrollar un modelo de evaluación, que pueda ser aplicada por personal tanto técnico como no técnico, que se ha de aplicar al personal del CENEPRED, tanto al inicio del plan de capacitaciones como a los dos meses de finalizado el mismo. El primero de estos con el objetivo de medir los conocimientos iniciales de los participantes, mientras que el segundo buscará medir los avances realizados. En el primer caso, lo aplicara el consultor. En el segundo, este modelo debe venir acompañado de las respuestas a las preguntas planteadas, para su posterior verificación por parte del equipo del proyecto.

3. PRODUCTOS ESPERADOS

Primer Entregable, el cual deberá incluir:

a) Plan de capacitaciones detallado aprobado por el proyecto, en coordinación con CENEPRED.

b) Modelos de evaluación tanto previo como posterior, y resultados del modelo de evaluación (pre – test)

RIMAC – DRR II “Reinforcing Innovative Mechanisms for Arising Capacities in Disaster Risk Reduction in Rímac (Perú) II”

720FDA18GR00266

Código Mago: 613601

Page 2: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

Segundo Entregable, el cual deberá incluir:

Informe final de las sesiones de capacitación realizadas al personal del CENEPRED, que incluya las planillas de asistencia

de cada sesión de capacitación y fotografías que sustenten la actividad. En función de las observaciones durante la

capacitación, el informe final deberá incluir un listado de recomendaciones dirigidas al personal del CENEPRED para lograr

el objetivo de migración.

Tercer Entregable, el cual deberá incluir:

Versión final del modelo de evaluación posterior (a aplicar a los dos meses de finalizado el curso para medir los avances

realizados)

4. CRONOGRAMA DE TRABAJO Y PAGO

Productos Pago y Monto

A la presentación satisfactoria del Primer Entregable, previa aprobación del

equipo del proyecto y CENEPRED

20%

A la presentación satisfactoria del Segundo Entregable, previa aprobación

del equipo del proyecto y CENEPRED

40%

A la presentación satisfactoria del Tercer Entregable, previa aprobación del

equipo del proyecto y CENEPRED

40%

El especialista SIG del proyecto (coadyuvado por la coordinadora) en coordinación con el personal del CENEPRED

supervisará la implementación de la intervención, el desarrollo de las actividades y la calidad de la prestación del servicio.

Todos los entregables tienen que ser aprobados por la coordinadora del proyecto, previa coordinación con el CENEPRED.

Una vez que sea comprobada la validez y la calidad del trabajo se procederá al pago del entregable equivalente. (Previa

entrega del recibo por honorarios electrónico).

Todos los pagos del servicio están sujetos a previa conformidad por parte de COOPI. Para lograr la conformidad del

entregable, el prestador del servicio hará las modificaciones solicitadas sin generar costos adicionales a COOPI.

7. TIPO DE SERVICIO Y PERFIL BUSCADO

Condiciones del servicio

A todo costo

Tipo de contrato Servicios no personales (4ta categoría)

Perfil Ingeniero de Sistemas / Programador GIS

Duración del servicio

35 días hábiles (Del día 12/08 al 27/09 del 2019)

Precio referencial

El precio es a todo costo e incluye todos los elementos necesarios para la realización y cumplimiento del servicio. (Por ejemplo: servicios por honorarios, personal, mano de obras, materiales y herramienta, transporte, instrumentos y otros).

8. REQUERIMIENTOS

CURSO LENGUAJE DE PROGRAMACION DE PYTHON

1. Programación en Python

Page 3: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

Introducción a la Programación de Python

• Ejecutar código Python

• Uso de herramientas de desarrollo de Python (IDEs y herramientas de línea de comandos)

• Trabajar con los depósitos de Python e iPython, así como iPython Notebook

Tipos de Datos y Operaciones

• Enteros y flotadores

• Cuerdas y bytes

• Tuplas y listas

• Diccionarios y diccionarios ordenados

• Juegos y juegos congelados

Organizar y Distribuir el Código

• Creación de módulos y paquetes

• Distribución de código a repositorios

Programación Orientada a Objetos y Funcional

• Crear y usar funciones y clases

• Modificación de funciones y clases con decoradores

• Introducción a las meta-clases

• Herencia

• Polimorfismo

• Clases estáticas

• Funciones estáticas

• Decoradores

• Otro

Tratamiento y Pruebas de Errores

• Manejo y aumento de excepciones

• Escribir y ejecutar pruebas (doc tests y tests unitarios)

• Comprobación de la cobertura del código mediante pruebas

• Limpieza de datos

• Usando datos vectorizados en pandas

• Disputa de datos

• Clasificación y filtrado de datos

• Operaciones agregadas

• Analizando series de tiempo

Trabajar con Archivos y Directorios

• Acceso a diferentes tipos de archivos y principios de manejo de archivos

• Creación, lectura, actualización y eliminación de archivos (incluidos archivos de texto normales, csv, así como archivos de Microsoft Word y Microsoft Excel)

• Extracción de datos de archivos de texto mediante expresiones regulares

• Creación y eliminación de directorios, listado y búsqueda de archivos

Análisis de datos con pandas

• Limpieza de datos

• Usando datos vectorizados en pandas

• Disputa de datos

• Clasificación y filtrado de datos

• Operaciones agregadas

• Analizando series de tiempo

Acceso a Bases de Datos

• Selección, inserción, actualización y eliminación de datos

• API genérica de base de datos basada en SQLite 3, PostgreSQL y MySQL

Page 4: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

• Uso del asignador relacional de objetos (SQLAlchemy)

• Trabajo con bases de datos NoSQL

• Trazando diagramas con matplotlib

• Usando matplotlib dentro de los pandas

• Creando diagramas de calidad

• Visualización de datos en cuadernos Jupyter

• Otras bibliotecas de visualización en Python

Vectorizar datos en Numpy

• Creando matrices Numpy

• Operaciones comunes en matrices

• Usando ufuncs

• Vistas y difusión en matrices Numpy

• Optimizando el rendimiento evitando bucles

• Optimizando el rendimiento con cProfile

Procesamiento de Big Data con Python

• Crear y soportar aplicaciones distribuidas con Python

• Almacenamiento de datos: trabajando con bases de datos SQL y NoSQL

• Procesamiento distribuido con Hadoop y Spark

• Escalando tus aplicaciones

Extendiendo Python (y viceversa) con otros idiomas

• DO#

• Java

• C ++

• Perl

• Otros

Programación multiproceso de Python

• Módulos

• Sincronizando

• Priorizar

Programación de IU con Python

• Opciones de marco para construir GUI en Python o Tkinter o Pyqt

Python para guiones de mantenimiento

• Levantando y atrapando excepciones correctamente

• Organizar código en módulos y paquetes

• Comprender las tablas de símbolos y acceder a ellas en el código

• Escogiendo un marco de prueba y aplicando TDD en Python

Conquistando la Web

• Recuperación de páginas web

• Análisis HTML y XML

• Llenado automático de formularios web

• Creación de aplicaciones web en Python

• Paquetes para procesamiento web

• Rastreo web

• Análisis de HTML y XML

• Rellenar formularios web automáticamente

2. Programación en Python Web: Django

Page 5: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

Fundamentos

• ¿Qué significa ser un Backend?

• ¿Por qué Django?

• Introducción a Python: Conoce las bases del Lenguaje

• Django: Bases del framework web mas popular de Python

Introducción a Python y Django

• Configura y crea un primer proyecto de Django

• Repositorio del Proyecto

Vistas, Modelos y Formularios en Django

• Administrador de Django, creación de modelos y de vistas

• Uso y manejo de formularios en Django

• Las mejores prácticas en Django

• Creación de modelos en Django y su implementación en vistas

• Activa el administrador de Django en tres líneas de código

• Templates en Django: Renderizar no es complicado

• Integración del Frontend y del Backend cuando usamos Django

Admin Avanzando, Middlewares y Class Based Views

• Django Revolutions

• Django Revolutions Parte 2

• Personalizar el administrador de Django

• ¿Que es Unit Testing?

• Middlewares en Django

• Class-Based Views

• ¿Cómo usar Unit Testing en Django?

• Context Processors en Django

• Caching

Creación de un API REST en Django

• Creando un API REST en Django

• Archivos Estáticos

• Manejo de Cache en Django

• Manejo de Imágenes

• Procesos Asíncronos

• Sesión de preguntas y respuestas

• Bonus: servidores y deploy con Django

• ¿Qué es y como crear un API REST en Django?

• Archivos Estáticos

• Procesos Asíncronos: Celery y un poco de Redis

Django Avanzado: Introducción a Class-based Views

• Repaso de Python: Manejo de Classes

• Views básicos en Class Based Views

• Template Views

• Redirect View

Django avanzado: ListView, JsonResponse y Mixins

• Class based views: listview

• Class based views: detailview

• JsonResponse

• Class based views: mixins

Django Avanzado: Vistas avanzadas y Migraciones

Page 6: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

• Class based views: FormView

• Decorators

• Querysets

• Migraciones

3. Programación en Python con Qgis

Unidad 1. Introducción. Qué es PyQGIS

• El proyecto QGIS.

• ¿Qué es PyQGIS?.

• La API y los bindings.

• Recursos y documentación en la Web.

Unidad 2. Primer acercamiento a Python desde QGIS: PyQGIS

• Utilidades de PyQGIS: scripts, plugins y aplicaciones.

• La consola de Python de QGIS.

• Pasando de línea de comandos a generación de scripts.

• Añadiendo capas vectoriales (shapefiles, KML, conexiones WFS) y capas raster.

Unidad 3. Aprendiendo a programar con Python

• Introducción al lenguaje de Python. Programación orientada a objetos (POO).

• Aprendiendo a programar con Python: La esencia del lenguaje en 10 puntos clave.

• Errores más comunes y gestión de errores.

Unidad 4. Avanzando con Python y PyQGIS. La API de PyQGIS y entornos de ejecución

• La API de PyQGIS.

• Entornos de ejecución.

• Importación de Módulos.

• Creación de Funciones.

• Introducción de parámetros.

• Definición de Clases.

• Apéndice: Manejo y navegación por la API de PyQGIS.

Unidad 5. Acceso a la información y análisis espacial con PyQGIS

• Acceso a la información de la capa:

• Geometría.

• Sistemas de referencia espacial.

• Información alfanumérica.

• Creación de capas en memoria.

• Análisis espacial y geoprocesamiento:

• Utilizando los algoritmos de la Caja de Herramientas de Procesado: merge, difference, etc.

• Acceso a los elementos de la capa:

• Listar información y estadísticas sobre un campo.

• Actualizar información. Calcular campos. Añadir y eliminar columnas de una capa.

• Crear y eliminar elementos.

Unidad 6. Trabajando con proyectos qgs. Control de los contenidos y de su representación

• Contenidos del proyecto:

• Añadir y eliminar capas de diferente tipología.

• Acceder a la capa activa.

Page 7: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

• Listar contenidos para operar sobre ellos.

• Activar capa.

• Apariencia de los contenidos:

• Capas visibles y no visibles.

• Ordenar los contenidos.

• Representación y simbología de las capas.

• Salvar y aplicar estilos.

• Etiquetado.

• Navegación sobre la vista.

• Generación de salidas gráficas:

• Creación de imágenes.

• Creación de mapas: ▪ Definir el tamaño de la página y resolución. ▪ Márgenes y ajuste de escala ▪ Incluir un título, leyenda, escala y flecha de norte.

Apéndice I. PyQGIS sin la interfaz de QGIS, plugins y aplicaciones de escritorio

• Utilizar PyQGIS fuera del entorno de QGIS:

• ¿Cómo obtener información sobre rutas?

• Preparación y ejecución de un archivo .bat con la inicialización de rutas.

• Puesta a punto y comprobaciones.

• Creación de plugins para QGIS:

• Estructura de archivos que componen un plugin.

• Plugins de utilidad para la construcción y actualización de plugins.

• Creación de un plugin.

• Creación de aplicaciones independientes.

Apéndice II. Feed Back. Modo de mostrar avisos en QGIS 3 con PyQGIS. Apéndice III. Principales relaciones entre las clases de la API de QGIS (versiones 3.X)

CURSO LENGUAJE DE PROGRAMACION DE JAVA

1. JAVA DEVELOPER

• Introducción a ORM. Acerca de la necesidad del mapeo relacional objetos. o Estrategias de persistencia. Mecanismos de persistencia, en particular

persistencia en archivos y persistencia en bases de datos relacionales u orientados a objetos.

o Motor de persistencia Hibernate. Arquitectura: Estados de instancias, sesiones contextuales; beneficios de usar este framework de persistencia.

o Configuración: Configuración programática. Mapeo de Entidades con archivos hbmxml. Configuración programática. Estrategias de generación de Pks. Obteniendo Session Factory. Pool de conexiones con c3po. Configuración de generación de Primary Keys. Mapeo de asociaciones. Arquitectura y configuración. Flavors: anotaciones vs XML. Mapping O/R. Configuración básica.

o Relaciones: OneToMany, ManyToOne, ManyToMany, OneToOne. Entender Cascade y Fetch.

o Desarrollar los ejercicios propuestos en el documento Mapeo de tablas relacionadas usando

• Motor de persistencia JPA. Especificación y arquitectura. Implementaciones más conocidas. Configuración. Mapping. Relaciones: OneToMany, ManyToOne, ManyToMany, OneToOne

• HQL y JPQL: La cláusula from, asociaciones y unions, clausula select, where, order by, clausula NamedQuery, Criteria, Consulta con SQL Nativo. Consulta usando Stored Procedures desde Hibernate y JPA

• MyBatis. Arquitectura. Configuración. Ficheros XML de mapeo. Mappers e interfaces. Consultas con MyBatis. SQL Dinámico. Poniendo todo junto. Generando modelo de negocio usando patrones DAO y DAO Factory

Page 8: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

• Introducción a Spring FrameWork. Inyección de dependencias e Inversión de Control. Arquitectura y novedades de Spring BOOT Creando ambiente de desarrollo para Spring. Navegabilidad en Spring. Configuraciones. Controladores y Servicios. Introducción a la Arquitectura Spring. Inyección de dependencias para Colecciones. Configuración de Logging usando SLF4J. Configuraciones con XML y Anotaciones. Configuración MAVEN.

• Spring MVC. Introducción a Spring MVC. Desarrollo de aplicación básica con Spring MVC. applicationContext.xml y dispatcher-servlet.xml. Validadores: Uso de Validator y la anotación @Valid. Validaciones con Bean Validation API Upload y Download de archivos Desarrollo de Proyectos WEB usando Spring Boot y Tomcat embebido.

• Manejo de Views. Generación de Excel y PDF. Uso de HandlerException: Manejo de Excepciones.

• Spring JDBC. Gestión de Transacciones (Programáticas, XML AOP, Anotaciones) SimpleJDBCTemplate

• Spring AOP. Programación Orientada a Aspectos con Spring. Definición de aspecto. JointPoints & Pointcuts, Advice y Advisor. Sintaxis de AspectJ. Uso de anotaciones con AOP.

• Spring Data JPA. Principales características. Repositorios vs. DAO Spring ORM: Integración con Hibernate, mapeos y configuración. Integración con JPA, mapeos y configuración. Integración con Mybatis, mapeos y configuración

• Servicios SOAP y REST con Spring: Definición de Servicios Web. Mensajes SOAP. Archivos WSDL y XSD. Servicios Web con JAX-WS y Spring. Anotaciones para servicios Web.

• Verbos HTTP

• Servicios RESTful. Herramientas para pruebas de servicios Web.

• Construyendo clientes para los servicios web.

• Spring Hateoas.

• Spring Data y SpringSecurity. Spring Data Rest. ¿Qué expone? Personalización servicios expuestos. Práctica: adaptación incremental de los servicios creados anteriormente para que sean generados por Spring Data Rest. Spring Security. Principales características. Ejemplos de distintos tipos de autenticación. Práctica: securizar la API REST desarrollada Procesamiento en paralelo. Spring Batch. Introducción. Principales características. Práctica: desarrollo de distintos batch de ejemplo. Desarrollar los ejercicios propuestos en el documento.

En el caso de pasar al front end consideramos que se utilice Reactjs o Dojo js reemplanzando al siguiente cuadro

• Angular 7: Arquitectura. Instalación y configuración de Angular CLI. NodeJS. Estilos y Scripting básico. Componentes y plantillas. Definición y configuración de componente.

• Desarrollo de modelos sobre Angular. Usando TypeScript y modelos JSOn. Directivas, eventos y bindings sobre componentes NG. Directivas y su fuente. Tipos de binding de datos. Tipos de directivas NG. Ruteo y navegación. Configuración y generación de menú de navegación. Direccionamiento de URL usando parámetros.

• Servicios. Creación de servicios para interactuar con capa visual. PIPES. Pipes y filtros personalizados.

• Desarrollo de Formularios NG. Creación y validación de formularios NG. Servicios HTTP y AJAX. Crear y usar peticiones HTTP. Operadores MAP y rxjs/Observable. Peticiones HTTp desde NG.

2. ARQUITECTURA JAVA

Comunicación en sistemas distribuidos • Comunicación bajo protocolo HTTP. • Normativas XML y JSON. • Comparativa XML vs JSON. • Herramientas Java para el manejo de XML y JSON.

Page 9: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

Arquitecturas y estándares Web Services • Arquitectura de Web Services. • Interoperabilidad de Web Services. • Estándares para implementación de SOAP Web Services: SOAP, WSDL,

UDDI y WS-Security. • Estándares para implementación de RESTful Web Services: HTTP, WADL,

URL/URI y Internet Media Types. • SOAP Web Services vs REST Web Services. Java API for XML-based Web

Services (JAX-WS) Especificación JSR 224 – Java API for XML-Based Web Services.

• Especificación JAX-WS – Metro Reference Implementation. • SOAP 1.1/1.2.

Anotaciones. • XML/HTTP Binding. • JAXB. Java API for RESTful Web Services (JAX-RS)

Arquitectura REST. • JSR 311 – Java API for RESTful Web Services. • JAX-RS Jersey Reference Implementation. • JSR 339 – JAX-RS 2.0.

Arquitectura orientada a mensajes • Message Oriented Middleware (MOM). • Modelos de mensajería: Point to Point y Publish/Subscribe. Procesamiento

síncrono vs asíncrono. Java Message Service (JMS) Especificación JSR 914 – Java Message Service API.

• Principales implementaciones del mercado.

Arquitectura orientada a mensajes

• Message Oriented Middleware (MOM).

• Modelos de mensajería: Point to Point y Publish/Subscribe. Procesamiento síncrono vs asíncrono. Java Message Service (JMS) Especificación JSR 914 – Java Message Service API.

• Principales implementaciones del mercado.

JMS – ActiveMQ.

• Point to Point (Queues).

• Publish/Subscribe (Topic). • Tipos de mensajes.

• Text Message.

• Stream Message.

• Object Message. • Java Message Services con Message-Driven Beans

Message-Driven Beans.

• Enterprise JavaBeans.

• Implementación JMS Message-Driven Beans.

(ESB) Enterprise Services Bus

• Arquitectura ESB.

• Arquitectura JBoss ESB Server.

• JBoss ESB. Providers. Message Interface.

• Service Listeners.

• Service Actions.

• Custom Actions.

Base Web Service.

• Business Rule Management Systems

Page 10: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

API Drools. • Implementación de reglas con Drools Expert: reglas básicas, validaciones y transformaciones. Implementación de flujos con JBPM5.

• Editor BPMN.

• Events, actions, tasks y gateways.

Métricas de rendimiento de software • Normativa de medición del rendimiento de software.

• Herramientas de medición. o JMeter. o Selenium IDE. o Selenium Driver. o SOAP UI.

o Bases para implementación de una herramienta manual. • Dimensionamiento y pruebas de rendimiento de software

Aplicaciones de monitoreo • Monitoreo de Rendimiento (APM). o Experiencia del usuario final. o Arquitectura de ejecución. o Transacciones de negocio.

o Monitoreo de componentes. • Monitoreo de Actividades (BAM). o Alertas y visualización. o Procesos y análisis.

o Bases de datos operacionales

Service Oriented Architecture • ¿Qué es SOA? .

• Ciclo de vida. Beneficios.

• Arquitectura de software de aplicaciones. o Estilo arquitectónico. o Patrón arquitectónico.

o Patrón de diseño. Service Oriented Architecture. o Arquitectura EDA.

o SOA 2.0. • Arquitectura distribuida.

• Teorema de Brewer (CAP).

3. Java Experto

• Arquitectura de Aplicaciones Java EE: Servidores de aplicaciones empresariales Java EE.

• Componentes, arquitecturas y servicios (JDBC: Pool de conexiones: Creación y configuración)

• Arquitectura, ciclo de vida, alcance y tipos de EJBs. • Desarrollo de EJBs I: Beans de sesión sin estado y con estado (Pasivación y

activación). Algoritmos para optimización de recursos del servidor. • Desarrollo de EJBs II: Arquitectura de EJBs de entidad (Mapeos de entidades,

JPA y JPQL, • NamedQueries, Criteria Query). Usos del Entity Manager. Patrón de Desarrollo

Session Facade. • Desarrollo de EJBs 3.0 - III: Concepto de JMS y servicios de Mensajería en

JAVA. Enterprise Java • Beans manejados por mensajes. Dominio de colas y tópicos. Manejo de

procesos en cola.

• Programación HTML5, CSS y JavaScript: HTML5 las nuevas características. Formularios en HTML5. CSS, las nuevas características de CSS. JavaScript, Sintaxis y Componentes DOM. Estándar XML (Documentos XML bien formados). DTD (Documentos Validados). XSL (documentos con estilos).

• XSD (Documentos de esquemas). JDOM (Lectura y escritura de documentos XML con java)

• Desarrollo Web con AJAX I: Arquitectura de aplicaciones AJAX. JavaScript Orientado a Objetos. JSON.

Page 11: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

• Introducción a JQuery. El core de Jquery. Firebug. Importación de jQuery. Selección por ID. Varias propiedades CSS. Selector por clase. Cambio de propiedades por etiqueta. Selección por atributo. Selecciones con búsqueda. Selecciones múltiples. JQuery UI y Utilities. Interacciones:

• Draggable, Droppable, Resizable, Selectable, Sortable. • Desarrollo Web con AJAX II: Introducción a AngularJS. Directivas, filtros y

manejo de datos. • Vistas, controles y alcance. • Desarrollo Web con WebSockets: Estándar HTML5. Comunicación

bidireccional. Componentes • WebSockets en el lado del cliente y en Servidor de aplicaciones Java EE.

Método de ciclo de vida de los WebSockets.

• Servicios Web con Java I (Introducción): Definición de Servicios WEB. Estándar SOAP para

• mensajes web. Definiciones: JAX –WS, Mensaje SOAP, UDDI, WSDL. Creación de Servicios Web usando Jax-WS. Consumir un servicio WEB.

• Servicios Web con Java II (Software Orientado a Servicios). Desarrollo de aplicaciones Distribuidas con Servicios Web y EJBs. MTOM- Manejo de archivos con servicios Web. Seguridad de Servicios WEB. Spring Secutrity.

• Servicios Web con Java II (Java vs. NET). Desarrollo del Ciclo de Vida de SOA. XML (Extensible Markup Language) y SOAP. WSDL (Servicio Web Definition Language). Configuración de un SLA

• para un servicio web. Servicios WSDL. Java EE - Microsoft. NET • Reportes Java. Introducción a JasperReport. Reportes y sub-reportes. Creación

y Edición de PDFs • con IText.

• Mongo DB y Kasandra.Bases de datos no relacionales. Instalación. Operaciones y comandos.

• Desarrollo Java con MongoDB. Replicación. Seguridad e indexación con Mongo DB.

• Certificados Digitales. Introducción a certificados digitales. Proceso de certificación digital.

• Estándares de certificados digitales X.509 y PKCS. Creación de certificados digitales con OpenSSL. Creación de certificados digitales con BouncyCastle. Firma digital de pdf con iText.

• Conexiones Seguras en Servidores de aplicaciones Java EE. Introducción a SSL y TLS.

• Funcionamiento de HTTPS. Medidas de seguridad para conexiones seguras. Validación de certificados cliente–servidor en un ambiente desktop–web. Introducción a JAAS.

• Pruebas de Stress de aplicaciones. Trabajo con JMeter, configuración y aplicación.

• Manejo de tareas con Java. Introducción a JIRA. • Integración continúa. Servidor Hudson. Git Hub.

9. CRITERIOS DE EVALUACIÓN TECNICA

Perfil Formativo / CV , evaluado según los siguientes criterios:

- Ingeniero de sistemas o software /

Programador GIS (4)

- Colegiado en el colegio de ingenieros y

habilitado (2)

- Maestría relacionada a las demandas de la

10%

Page 12: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

convocatoria. (2)

- Doctorado relacionado a las demandas de la

convocatoria (1)

- Otros estudios que certifiquen la preparación

en el tema.(1)

Experiencia certificada de más de tres años en desarrollador web

(backend y frontend) con Python y Java, orientados a los sistemas de

información geográfica.

25%

Experiencia certificada de más de tres años en enseñanza en el

lenguaje de programación Pyhon y Java, orientados a los sistemas de

información geográfica según el requerimiento solicitado y, mejor si en

contextos similares (instituciones del estado, instituciones que se

ocupan de GRD, etc.) .

25%

Total 60 %

CRITERIOS DE EVALUACIÓN ECONOMICA

Oferta económica

40%

10. TERMINOS

Se requiere la siguiente información mínima para la presentación de la propuesta

Nombre, dirección y contactos (teléfono, e-mail) de la empresa y/o de la persona responsable

Propuestas técnica y económica con los siguientes contenidos mínimos requeridos:

o Introducción con objetivos y alcances

o Plan de trabajo detallado

o Propuesta técnica y económica (en soles, incluyendo impuestos) firmada y sellada.

Curriculum Vitae

Fotocopia del DNI

Anexo 1- Acuse de Recibo Firmado

Cabe resaltar que la falta de información relativa a uno o más puntos antes descritos puede ser razón de exclusión del

proceso de la convocatoria misma.

11. PROPUESTA

La fecha límite para la presentación de la propuesta será hasta las 23:59 horas del 06 de agosto de 2019. Se pide enviar

toda la documentación al correo electrónico indicado y/o entregar a la atención de los contactos indicados a continuación. La

propuesta debe tener una validez de 15 días desde la fecha de presentación.

Contacto / Informaciones:

Page 13: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

Rider Navarro, Especialista SIG del Proyecto OFDA/USAID “RIMAC DRR- II”.

Tel.: 987141520 (Movistar)

Email: [email protected]

Dirección: Av. Antón Sánchez s/n Local de Rentas de la Municipalidad del Rímac, Rímac, Lima.

Barbara Bannetta, Coordinadora del Proyecto OFDA/USAID “RIMAC DRR- II”.

Tel.: 959428324 (Movistar)

Email: [email protected]

Dirección: Calle Federico Gerdes 193, Santiago de Surco, Lima.

Cualquier consulta sobre la presente consultoría puede ser dirigida los correos indicados arriba.

Page 14: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

Solicitud de cotización

Para consultoría

Objeto: Solicitud de cotización Del 31/07/2019

Estimado/a

Consecuentemente a las actividades que COOPI - Cooperazione Internazionale está implementando en Lima

en el Proyecto Rimac DRR II “Reinforcing Innovative Mechanisms for Arising Capacities in Disaster Risk Reduction in Rimac”

Se hace necesario la cotización de la actividad descrita en el TdR adjunto.

Quedamos en espera de la vuestra mejor oferta, sobre la base de los requisitos indicados en la solicitud en anexo. La oferta

tendrá que ser entregada en forma de papel o electrónica, junto a las declaraciones anexadas,

Cordiales Saludos

Firma

Coordinadora Proyecto

COOPI - Cooperazione Internazionale

ACUSE DE RECIBO

Con la presente el (nombre y apellido)

Cargo de la empresa (si es que forma parte de una empresa)

Declara de haber recibido la invitación a presentar la oferta relativamente a la competición para la implementación de la

actividad de la solicitud n. Fecha

Firma

Page 15: DRR II Reinforcing Innovative Mechanisms for Arising ...Elaborar los contenidos e implementar el curso de programación basado en los paquetes Java y Python, que se orienten a colaborar

COOPI CREE Y LUCHA PARA UN MUNDO MEJOR : al corréo electrónico [email protected] se pueden enviar quejas en lo referente a fraudes, despilfarros o abusos en las operaciones y

proyectos desarrollados por Coopi, incluso mala gestión, violación de leyes, normas o reglas por parte del personal COOPI o de sus socios.

COOPI garantiza la privacidad de la identidad de los que presenten una denuncia.

Solicitud de cotización

Código de proyecto: 613601 Del: 31.07.2019

Datos del solicitador

Sede: Rimac, Lima

Dirección: S/N Antón Sánchez, 15093

Solicitado por: Barbara Bannetta

Cargo: Coordinadora Proyecto

Contacto solicitador

Teléfono: +51.959.428.324

Correo electrónico: [email protected]