MongoDB Movies

Debemos crear una interfaz gráfica para acceder a la base de datos sample_mflix de MongoDB, concretamente a la colección movies.

Demo aplicación

Iteración 0

  1. Inicializa esta carpeta para que sea gobernada por NPM
  2. Instala los módulos de terceros express, morgan, mongodb y ejs
  3. Crea la estructura necesaria para levantar el servidor de Express.
  4. Conectate a tu instancia de MongoDB y deja abierta la conexión.

Iteración 1

GET /

Crea una nueva vista de la aplicación. Cuando el acceda al directorio raíz de nuestro servidor, debemos renderizar las 10 primeras películas de la base de datos

Para cada película vamos a mostrar:

  1. El título
  2. Una imagen
  3. Fecha de lanzamiento

Por defecto vamos a ordenar las películas por fecha de lanzamiento en orden decreciente (las más recientes primero.)

Iteración 2

Modifica esta misma vista para añadir en la parte superior un formulario de búsqueda. Debemos poder buscar por los siguientes conceptos clave:

  1. Buscar por palabra clave en el título
  2. Buscar por palabra clave en la descripción
  3. Buscar por tipo de filmación (campo type). Puede ser "movie" o "series"
  4. Buscar por año de lanzamiento. Debemos poder buscar entre dos años. Por ejemplo: todas las películas entre el 1990 y el 2000.

Muestra siempre 10 películas como máximo.

Iteración 2.5

Añade un control de fomulario adecuado para ordenar las películas de manera decreciente (por defecto) o de manera creciente por fecha de lanzamiento.

Al cambiar el criterio de ordenación se debe actualizar el orden de las películas. Esto es algo que se puede hacer des de el cliente o des de el servidor. Se recomienda hacerlo des de el servidor para practicar las consultas a MongoDB.

Iteración 3

Crea un nuevo endpoint:

GET /movies/add-form

Esta vista renderizará un formulario para añadir una nueva película a la base de datos. Inicialmente tan solo hay que añadir los campos de la Iteración 2. Puede ser una buena idea añadir también una URL a una imagen para el campo poster.

Luego, crea un nuevo endpoint:

POST /movies/add-form

Este endpoint debe:

  1. Recibir los datos del formulario de añadir películas
  2. Crea un nuevo documento en la base de datos de MongoDB e insertarlo en la colección movies
  3. Podemos mostrar un mensaje de "película insertada con éxito" y/o redirigir al usuario a la página principal

Iteración 4

Sigue implementando los demás campo tanto para la búsqueda como para la creación de películas.

Algunos campos pueden ser difíciles de implementar, sobretodo para la creación del documento (ejemplo: awards). Así que se sugiere empezar por campos sencillos (ejemplo: runtime)

Hay algunos campos como rated o languages que pueden ser select con unas cuantas opciones posibles. O también puedes hacerlo más interesante y buscar cómo obtener todos los valores posibles para un campo de un documento de MongoDB, y llenar el select de forma dinámica con todas las opciones posibles.