Este curso es gratuito, comenzó ayer día 27 de mayo y se extenderá durante 7 semanas; terminará el día 15 de Julio. Cada semana se cuelga en la página una nueva lección, con una serie de ejercicios para realizar y ser subidos a la web antes del comienzo de la siguiente lección. Al final del curso se debe realizar un examen online. Los ejercicios prácticos contarán un 50% y el examen el otro 50%, obteniendo un certificado de completación del curso si se obtiene una nota final por encima del 65%.
Los ejercicios propuestos están relacionados con la creación de un Blog como aplicación web, utilizando MongoDB, Spark y Freemarker. En la primera lección se realiza una introducción sobre como instalar y utilizar estas herramientas.
Los ejercicios propuestos están relacionados con la creación de un Blog como aplicación web, utilizando MongoDB, Spark y Freemarker. En la primera lección se realiza una introducción sobre como instalar y utilizar estas herramientas.
Instalando MongoDB
En mi caso trabajaré en Ubuntu 12.04. En este caso la instalación se puede realizar a través del sistema de paquetería de la distribución:
$ sudo apt-get update
$ sudo apt-get install mongodb-server mongodb-clients
He optado por descargar los binarios desde la propia web oficial de MongoDB www.mongodb.org. En estos momentos la última versión es la 2.6.1. Descargamos el archivo mongodb-linux-x86_64-2.6.1.tgz y lo descomprimimos:
astwin@astwin-H87-HD3:~$ tar xzf mongodb-linux-x86_64-2.6.1.tgz
Con mongod inicializamos MongoDB. mongo inicializa el shell para interactuar desde la consola de comando con MongoDB. Antes de inicializar MongoDB se necesita especificar el directorio donde se
alojará la base de datos. Por defecto, MongoDB buscará el directorio /data/db y si no lo encuentra, se producirá un error. Lo creamos:
Ejecutamos MongoDB:astwin@astwin-H87-HD3:~/mongodb-linux-x86_64-2.6.1/bin$ sudo mkdir -p /data/db
astwin@astwin-H87-HD3:~/mongodb-linux-x86_64-2.6.1/bin$ sudo chmod 777 /data/db/
astwin@astwin-H87-HD3:~/mongodb-linux-x86_64-2.6.1/bin$ ./mongod
Podemos abrir el shell de MongoDB:
astwin@astwin-H87-HD3:~/mongodb-linux-x86_64-2.6.1/bin$ ./mongoComprobamos que funciona correctamente. Creamos una nueva colección llamada nombre, añado el mio, lo muestro y la borro:
Hola Mundo: Maven, Eclipse y el driver de MongoDB para Java
Dependencias del driver Java para incluir en el pom.xml:
<dependency>Creamos una colección llamada hola y añadimos un documento desde el shell:
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.12.2</version>
</dependency>
Creamos un proyecto Maven desde Eclipse y añadimos el driver de Java en el pom.xml. Creamos la clase hola_mundo_mongoDB que se conectará al servidor de MongoDB (en mi caso en local), obtendrá acceso a la base de datos test, a la colección hola y mostrará el contenido del único documento añadido:
Hola mundo: Framework Spark para aplicación web
Repositorio y dependencias del framework Spark (actualmente van por la version 2.0, pero en el curso se utiliza la 0.9.4):
<repositories>Creamos una nueva clase, donde se utiliza Spark para mostrar "Hola mundo desde Spark":
<repository>
<id>Spark repository</id>
<url>http://www.sparkjava.com/nexus/content/repositories/spark/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>spark</groupId>
<artifactId>spark</artifactId>
<version>0.9.9.4-SNAPSHOT</version>
</dependency>
Abrimos el navegador con la dirección http://localhost:4567/ y podemos ver que la aplicación web que hemos creado muestra la frase "Hola mundo desde Spark".
Hola mundo: Freemarker como motor de plantillas
Durante el curso se utilizará Freemarker como motor de plantillas para generar el código HTML. FreeMarker es un motor de plantilla, lo que significa que es una herramienta que crea texto como resultado. Está destinado a ser utilizado con el lenguaje de programación Java, especialmente con aplicaciones de Model View Controller. Éste separa la lógica del programa, la interfaz y los datos de un sitio web. FreeMarker permite a los diseñadores de interfaz realizar cambios sin necesidad de la parte lógica del programa para hacerlo.
Dependencias para añadir Freemarker a un proyecto Maven:
Creamos una plantilla de código html en el archivo "hola.ftl":<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.19</version> </dependency>
<html>Mediante Freemarker procesamos la plantilla para cambiar el valor de la variable ${nombre} y añadir nuestro nombre:
<head>
<title>¡Bienvenido!</title>
</head>
<body>
<h1>Hola ${nombre}</h1>
</body>
</html>
Hola mundo: Uniendo Spark y Freemarker
Unimos Spark y Freemarker:
Ahora al abrir http://localhost:4567/, Spark captura la petición get al entrar a la raíz de la página ("/"), Freemarker procesa la plantilla html y se devuelve al navegador:
Hola mundo: Spark, Freemarker y MongoDB
Ahora se integran todos, de manera que a la hora de procesar la plantilla y obtener el valor para la variable ${nombre}, nos conectamos a la base de datos MongoDB y obtenemos el documento que introdujimos en la colección hola:
Homeworks: Lección 1
En esta primera lección existen 4 tareas a realizar y subir a la plataforma del curso:
- La primera de ellas consiste en utilizar la aplicación mongorestore para cargar una base de datos con varias colecciones en MongoDB, realizar una query en una de ellas y subir el valor que contiene la clave "answer" del documento JSON obtenido.
- La segunda es un test donde se muestran 5 posibles documentos JSON y tienes que seleccionar los que están escritos de forma correcta.
- La tercera consiste en compilar y ejecutar un proyecto Maven, conteniendo una aplicación Java que devuelve un resultado numérico que debes introducir en la plataforma.
- La última es otro proyecto Maven que integra MongoDB (los datos se han cargado en la realización del primer ejercicio), Spark y Freemarker, que una vez compilado y ejecutado te permite abrir una web en local que contiene el último código a subir en la plataforma.