Skip to content

Laboratoria/DEV015-movie-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Movie Challenge

Índice


1. Preámbulo

La manera en que vemos películas ha cambiado radicalmente durante los últimos años debido, en parte, a la aparición de los servicios de streaming que nos permiten hacerlo desde donde estemos y en cualquier momento. El mejor reflejo de este fenómeno es el éxito de Netflix, HBO y Disney+, etc.

En tiempos en los que una de las principales herramientas para combatir la pandemia de Covid-19 es evitar compartir espacios con muchas personas (como en el cine), ver películas por streaming es una de las pocas maneras de hacerlo (¿o la única?).

Creemos que hay una gran oportunidad de proponer productos/experiencias innovadoras de todo tipo utilizando datos de películas (directorxs, actorxs, sagas, secuelas, fechas, etc.). Podríamos pensar en juegos, comunidades, catálogos, recomendaciones basadas en gustos personales, etc. (sólo por mencionar algunas ideas obvias).

Pelis

2. Resumen del proyecto

En este proyecto, crearás una página web para ver, filtrar y ordenar el catálogo de peliculas de la The Movie Database API V3. Esta página puede servir como un catálogo de películas general, pero también si ud quiere, puede considerar la posibilidad de diseñarlo para un público en específico con preferencias como "películas occidentales" o "películas de los 80", por ejemplo.

Aunque la decisión de qué hacer es enteramente tuya, hay algunas consideraciones generales que se presentan a continuación. Puedes cumplir esos requisitos en proyectos muy diferentes, ¡depende de tu creatividad y del entendimiento que tengas de tus potenciales usuarixs!

3. Objetivos de aprendizaje

Reflexiona y luego marca los objetivos que has llegado a entender y aplicar en tu proyecto. Piensa en eso al decidir tu estrategia de trabajo.

HTML

CSS

Web APIs

DOM (Document Object Model)

JavaScript

  • Uso de linter (ESLINT)

  • Uso de identificadores descriptivos (Nomenclatura y Semántica)

  • Diferenciar entre expresiones (expressions) y sentencias (statements)

Tipos de datos

Asincronía

Testing en Javascript

Módulos

HTTP

Control de Versiones (Git y GitHub)

Git

  • Git: Instalación y configuración

  • Git: Control de versiones con git (init, clone, add, commit, status, push, pull, remote)

  • Git: Integración de cambios entre ramas (branch, checkout, fetch, merge, reset, rebase, tag)

GitHub

  • GitHub: Colaboración en Github (branches | forks | pull requests | code review | tags)

Centrado en el usuario

  • Diseñar y desarrollar un producto o servicio poniendo a las usuarias en el centro

Diseño de producto

  • Crear prototipos de alta fidelidad que incluyan interacciones

  • Seguir los principios básicos de diseño visual

Investigación

4. Consideraciones generales

  • Este proyecto se debe resolver individual.
  • El plazo estimado para completar el proyecto es de 4 Sprints.
  • Además, debes definir la estructura de carpeta y los archivos que considera que sean necesario. Por lo tanto, las pruebas y la configuración requeridas para ejecutarlos será su responsabilidad, para hacerlo puedes basarte en los proyectos anteriores.

5. Consideraciones técnicas

  • La aplicación debe ser una aplicación de una sola página.

  • Las pruebas unitarias deben cubrir al menos el 90% statements, functions, lines y branches.

  • La aplicación debe ser responsive.

  • Para poder usar la La API V3 de la Base de Datos de Películas deberás crear una llave (key) de acceso agregarla a cada petición que hagas al servidor

  • Recuerda que tienes un máximo de 1.000 peticiones diarias a la API por cada IP, creemos que es suficiente, pero te recomendamos hacer un uso responsable de este recurso gratuito.

El boilerplate contiene una estructura de archivos como punto de partida así como toda la configuración de dependencias:

.
├── .babelrc
├── .editorconfig
├── .eslintrc
├── .gitignore
├── package.json
├── README.md
├── src
    ├── components
    │   ├── App.js
    │   └── App.spec.js
    ├── index.html
    ├── main.js
    └── style.css

src/index.html

Como en el proyecto anterior, hay un archivo index.html . Como ya sabes, aquí ingresa la página que se mostrará al usuario. También sirve para indicar cuales son los scripts se utilizarán y armarán todo lo que se ha hecho.

src/main.js

Recomendamos usar src/main.js, como punto de entrada de tu aplicación. El boilerplate incluye este archivo para conectar o montar el componente App en el DOM. De esta manera podemos hacer test unitarios de nuestros componentes que necesitemos que están conectados a una DOM global.

Aquí es donde recomendamos implementar su SPA (Single Page Application).

Esta no es la única manera de dividir tu código. Puede utilizar más archivos y carpetas, siempre que la estructura esté clara.

src/components/App.js

Este archivo contiene un componente ejemplo que muestra cómo podemos representar un componente en función que devuelve un HTMLElement. A la hora de construir interfaces, es útil pensar en los términos de los componentes o vistas que podemos anidar una dentro de las otras. Te invitamos a que pienses en qué componentes o cajita se necesitas para construir tu aplicación y que componentes añade en la dirección components a aplicar a cada uno de ellos. Aunque de nuevo al final, la manera de organizar sus archivos depende de de ti y tu equipo. Hay muchas maneras de hacerlo, y el boilerplate es sólo una sugerencia".

scr/components/App.spec.js

Este archivo muestra cómo podemos crear archivos con especificaciones (expresado como test unitarios) de nuestros componentes.

6. Criterios mínimos de aceptación del proyecto

Prototipo de baja fidelidad

El Product Owner nos proporciona una primera iteración del prototipo de baja fidelidad de la aplicación en esta imagen de pagina de detalle y en este imagen de lista de peliculas otro.

Definición del producto

Tenemos dos opciones para un backlog de Historias de Usuario. Lo que eliges depende en los objetivos de aprendizaje que tienes que reforzar. Habla con un coach si necesitas ayuda en elegir cual camino.

  • Backlog 1 - Refuerza objetivos de arreglos, objetos y sus metódos antes de aprender HTTP y javascript asíncrona.
  • Backlog 2 - Empieza con el uso de un API y objetivos HTTP y javascript asíncrona.

7. Deploy

Puede elegir el proveedor (o proveedores) que prefiera, junto con el mecanismo de deploy y la estrategia de hospedía. Recomendamos explorar las siguientes opciones:

  • Vercel es una plataforma que permite desplegar nuestra aplicación web estática (HTML, CSS, JavaScript) y también permite implementar aplicaciones web que se ejecutan en el servidor (Node.js).
  • Netlify es similar a Vercel, siendo una plataforma que permite implementar nuestra aplicación web estática (HTML, CSS y JavaScript) y también permite implementar aplicaciones web que se ejecutan en el servidos (Node.js).

8. Consideraciones para pedir tu Project Feedback

Antes de agendar tu Project Feedback con un coach, asegúrate que tu proyecto:

Recuerda que debes hacer una autoevaluación de objetivos de aprendizaje y life skills desde tu dashboard de estudiante.

Si no has completado todo lo anterior, no consideramos que estás lista para tu sesión de Project Feedback.

9. Consejos, guías y lecturas complementarias

Propotito de alta fidelidad

Basandote en el prototipo de baja fidelidad proporcionado, deberás crear un prototipo de alta fidelidad en Figma. Agrega paleta de colores y un diseño gráfico. Intenta terminar en 1 o 2 días como máximo.

Explorar y consumir la API de la base de datos de películas

Explora la documentación de la API de la base de datos de la Película. Comienza leyendo la sección Getting Started, despues continúa AUTHENTICATION --> Application y finalmente las referencias de los endpoints /discover/movie y /movie/{movie_id}

Deberás crear una cuenta y generar una clave(key) de acceso para consumir la API

Por último, puedes probar hacer peticiones HTTP a la API utilizando herramientas como Postam o REST Client Identificando encabezados(header), cuerpo(body), verbos, códigos de respuesta y códigos de solicitudes.

Planear la implementación de la primera Historia de Usuario

Toma la primera historia de usuario y dividela en tareas más pequeñas, identificando el orden y prioridades de cada tarea. Documenta tu planificación en Trello o Github Project.

Entendiendo los conceptos de SPA (Single Page Aplication) y Router

Antes de comenzar con el código de Router, asegúrate de entender los conceptos de una single page aplication (SPA) y enrutado (router) de páginas. Investiga las mejores prácticas y herramientas disponibles para implementar una SPA en tu proyecto.

Depende en los tiempos de tu proyecto, podemos recomendar hacer una SPA más simple usando hashchange. Este video puede ayudarte a construir tu SPA en main.js de tu proyecto.

Si puedes tomarte el tiempo y quieres profundizar en las rutas y en la construcción de una SPA mas robusta, como Hacker Edition, puedes inplementar Router con JavaScript puro

Trata de divertirte. ¡a empezar esta aventura 🎬!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published