Pamplona, a 31 de marzo de 2017

Buenos días. Sé bienvenida/o a la primera Olimpiada Informática de Navarra. El objetivo es pasar un día entretenido resolviendo retos y cuestiones informáticas en la Universidad Pública de Navarra. Queremos plantearte un reto que debes afrontar con creatividad y trabajo en equipo durante un periodo máximo de tres horas. Las herramientas de las que dispones para trabajar son un PC con conexión a Internet, un contenedor virtual con , un sistema de base de datos relacional, tus conocimientos y habilidades, y las del resto de tu equipo de desarrollo. Recuerda que la unión hace la fuerza. Puedes buscar en Internet toda la información que creas oportuna para resolver los retos. Esperamos que disfrutes de tu estancia en el Campus de la Universidad Pública de Navarra y que descubras que eres capaz de afrontar y resolver muchos más retos de lo que crees.

Atentamente,

El equipo de la I Olimpiada Informática de Navarra.

Organizadores:

Instrucciones El desarrollo de la olimpiada consiste en el desarrollo de una aplicación web mediante el empleo de datos abiertos, una base de datos y un servidor web.

Para entregar la solución debéis acceder a la plataforma MiAulario https://miaulario.unavarra.es/portal. Anteriormente se os envió un correo para registraros en dicha plataforma. Si ya lo hicisteis, podéis acceder directamente con vuestro correo como usuario (el correo electrónico con que os registrasteis en la olimpiada) y la contraseña que elegisteis. Si todavía no lo habéis hecho, desde el enlace que os enviamos en el correo electrónico podéis hacerlo.

Una vez dentro de la plataforma MiAulario, en el menú de la izquierda tenéis una pestaña denominada “Tareas”. Si pincháis en ella, podéis acceder a la tarea “Entrega de soluciones”. Esta tarea es común a los cuatro miembros del grupo. Por tanto, cualquiera de los miembros del equipo puede subir las soluciones a ella. Cada vez que adjuntéis un archivo, acordaos de pulsar en el botón “Enviar”, para que ese archivo sea subido a la plataforma. El número de veces que podéis subir archivos es ilimitado, pero cuando se cierre el plazo de entrega (a las 13:00) debe haber un archivo subido en el que se indique la dirección web donde se pueda acceder a la aplicación desarrollada, así como una breve descripción de la solución desarrollada y aquella información que el equipo considere relevante. ¡¡Mucha suerte!! Introducción

A la hora de elegir un nuevo municipio para vivir es muy importante conocer los servicios que se encuentran disponibles. Navarra es una de las comunidades autónomas con mayor número de servicios por habitante, y por ello el Gobierno quiere crear una página web en la que mostrar esta información. Por ejemplo, cuanto menor sea el número de habitantes por centro médico en un municipio, mejor calidad tendrá el servicio; o la ciudad con más centros educativos y bibliotecas por kilómetro cuadrado será un buen sitio para estudiar.

La iniciativa Open Data pretende que las administraciones públicas hagan accesibles sus datos e información para su redistribución, reutilización y aprovechamiento por parte de los ciudadanos y las empresas. En el caso de Navarra, estos recursos se encuentran accesibles en la dirección https://gobiernoabierto.navarra.es/es/open-data. Aprovechando esta fuente de información, y otras que consideréis fiables, el sistema informático que se pone a vuestra disposición y la habilidad de tu equipo de desarrollo, se plantea el reto de construir una aplicación web que provea a los usuarios cierta información sobre los municipios de Navarra. A continuación se describen las tareas a realizar y una descripción de las mismas.

Tareas

Vuestro grupo debe crear una página web que publicite la cantidad de servicios y la buena calidad de vida de Navarra. La web debe contener la siguiente información:

1.- Una imagen de Pamplona y los siguientes datos: el número de habitantes, el número de centros educativos por cada 10.000 habitantes y el número de centros médicos por cada 10.000 habitantes.

2.- Una imagen de Estella y los siguientes datos: número de habitantes, número de centros escolares por cada 10000 habitantes y número de centros médicos por cada 10000 habitantes.

3.- Una caja de texto en la que podemos introducir el nombre de cualquier pueblo de Navarra y nos muestre la población total de ese municipio, el número de centros educativos, el número de centros médicos y una imagen de la localidad.

4.- Incrustado dentro de la web se debe mostrar un mapa de Google Maps en el que aparezca el municipio que tenga un mayor número de bibliotecas por kilómetro cuadrado.

Descripción

Este es un proyecto libre en el que cada grupo podéis utilizar las tecnologías que queráis y obtener la información de cualquier fuente que consideréis fiable.

Hemos preparado un servidor de base de datos relacional MySQL para que podáis almacenar los datos de los municipios, centros educativos, etc. Además, cada grupo disponéis de un contenedor en el que podéis alojar la web. Para ello podéis instalar los servidores web Apache o NGINX y configurarlos a voluntad. También podéis utilizar otras herramientas como WordPress o Blogger si lo creéis necesario, aunque se primará el empleo y configuración de un servidor propio.

Se valorará positivamente cualquier funcionalidad adicional que enriquezca la calidad y funcionalidad del proyecto, así como la solvencia, originalidad, simplicidad y claridad de la solución desarrollada.

Anexo: información de utilidad

Se dispone de la herramienta gráfica MySQL Workbench (mysql-workbench) para poder interactuar de forma gráfica, cómoda y sencilla con el servidor MySQL, pero si lo desea puede emplear la línea de comandos o incluso instalar la herramienta que estime oportuno (por ejemplo PHPMyAdmin: https://www.phpmyadmin.net/).

Del mismo modo, se puede instalar el servidor web que se desee y las herramientas de desarrollo que se necesiten (komodo edit, , SeaMonkey, , KompoZer, , BlueGriffon, Maquetta…). Para ello se puede emplear la herramienta apt-get.

Se dispone de un editor de textos, denominado kate, que pude de ser de gran utilidad.

Se recuerda que el empleo de utilidades como man y sudo pueden facilitar notablemente las labores de instalación y configuración del equipo. La primera utilidad, man, permite obtener información sobre cualquier comando del sistema, mientras que la segunda, sudo, permite ejecutar comandos con privilegios de seguridad de superusuario.

La conexión al contenedor (Ubuntu Linux) se puede realizar empleando el comando ssh, tal y como se muestra a continuación: ssh –X [email protected]