From 0f37b96014d9b7d6fc729a3befebcc1692f20451 Mon Sep 17 00:00:00 2001 From: Sergio Sinuco Date: Tue, 26 Sep 2023 11:47:39 -0500 Subject: [PATCH] feat: Redefine Movie Challenge Scope Addresses #1544 (#1546) --- projects/05-movie-challenge-fw/README.md | 301 +++++++++++--- projects/05-movie-challenge-fw/README.pt.md | 369 +++++++++++++----- .../docs/movie-challenge-fw.bmpr | Bin 0 -> 73728 bytes .../docs/movie-detail.png | Bin 0 -> 44363 bytes .../05-movie-challenge-fw/docs/movie-list.png | Bin 0 -> 40935 bytes projects/05-movie-challenge-fw/project.yml | 2 - 6 files changed, 511 insertions(+), 161 deletions(-) create mode 100644 projects/05-movie-challenge-fw/docs/movie-challenge-fw.bmpr create mode 100644 projects/05-movie-challenge-fw/docs/movie-detail.png create mode 100644 projects/05-movie-challenge-fw/docs/movie-list.png diff --git a/projects/05-movie-challenge-fw/README.md b/projects/05-movie-challenge-fw/README.md index ab59eed4d..fe5989765 100644 --- a/projects/05-movie-challenge-fw/README.md +++ b/projects/05-movie-challenge-fw/README.md @@ -4,10 +4,13 @@ - [1. Preámbulo](#1-preambulo) - [2. Resumen del proyecto](#2-resumen-del-proyecto) -- [3. Consideraciones generales](#3-consideraciones-generales) -- [4. Objetivos de aprendizaje](#4-objetivos-de-aprendizaje) -- [5. Criterios de aceptación mínimos del proyecto](#5-criterios-de-aceptación-mínimos-del-proyecto) -- [6. Consideraciones técnicas](#6-consideraciones-tecnicas) +- [3. Objetivos de aprendizaje](#3-objetivos-de-aprendizaje) +- [4. Consideraciones generales](#4-consideraciones-generales) +- [5. Consideraciones técnicas](#5-consideraciones-técnicas) +- [6. Criterios mínimos de aceptación del proyecto](#6-criterios-mínimos-de-aceptación-del-proyecto) +- [7. Despliegue](#7-despliegue) +- [8. Consideraciones para pedir tu Project Feedback](#8-consideraciones-para-pedir-tu-project-feedback) +- [9. Pistas, tips y lecturas complementarias](#9-pistas-tips-y-lecturas-complementarias) --- @@ -29,14 +32,15 @@ mencionar algunas ideas obvias). ## 2. Resumen del proyecto -La idea de este proyecto es que, usando una API con información de películas, -puedas idear, planear, organizar y desarrollar una aplicación web que aproveche -estos datos y tenga una propuesta de valor atractiva para lxs usuarixs. - -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! +En este proyecto, crearás una página web destinada a visualizar, filtrar y +ordenar el catálogo de películas de +[_The Movie Database API V3_](https://developer.themoviedb.org/docs). +Esta página puede servir como un catálogo de +películas general, pero también, si te animas, +puedes considerar la posibilidad de diseñarla +para un público y usuarias específicas +con preferencias como "películas western" +o "películas de las 80's" por ejemplo. Para implementar este proyecto deberás elegir un framework entre [React](https://reactjs.org/) y [Angular](https://angular.io/). @@ -56,21 +60,7 @@ Como desarrolladora Front-end, estos kits de desarrollo pueden resultarte de gran ayuda para implementar rápidamente características de los proyectos en los que trabajes. -## 3. Consideraciones generales - -- Este proyecto se debe resolver en equipos de 3 personas como máximo. -- Debes elegir y sustentar qué problema o necesidad estás resolviendo con el - producto que estás diseñando y desarrollando. -- Debes utilizar los datos de la API de - [The Movie Database API V3](https://developers.themoviedb.org/3/getting-started/introduction) - o - [OMDB](http://www.omdbapi.com/) (The Open Movie Database) - o cualquier otra API que encuentres. -- Para implementar este proyecto debes elegir un framework entre React o Angular. -- Intenta pensar en un alcance que, considerando su complejidad y la cantidad de - personas en el equipo, permita terminar el proyecto en 3 o 4 semanas. - -## 4. Objetivos de aprendizaje +## 3. Objetivos de aprendizaje > ℹ️ Esta sección será automáticamente generada en el idioma pertinente, a partir > de los objetivos de aprendizaje declarados en [`project.yml`](./project.yml), @@ -80,38 +70,225 @@ los que trabajes. > Acá puedes ver una [lista de todos los objetivos de aprendizaje](../../learning-objectives/data.yml) > que contempla nuestra currícula. -## 5. Criterios de aceptación mínimos del proyecto - -- Utilizar la _The Movie Database API V3_ o _OMDB_ o cualquier otra API - mediante _fetch_ para obtener y mostrar una interfaz basada en los datos - de cada respuesta. -- Tu solución debe ser _responsive_. Debe adaptarse a pantallas de escritorio, - tabletas y teléfonos. -- Debes desplegar tu aplicación en cualquier servicio en la nube. - Algunas opciones son [GitHub Pages](https://pages.github.com/) - o [Vercel](https://vercel.com/) - o [Netlify](https://www.netlify.com/) - -## 6. Consideraciones técnicas - -- Para poder usar la API de _The Movie Database API V3_ o _OMDB_ deberás crear - una llave (_key_) de acceso y agregarla a cada petición que hagas al servidor. - + Para _The Movie Database API V3_ deberás crear una cuenta y luego una - llave en este [link](https://www.themoviedb.org/settings/api). - + Para _OMDB_ la llave la generas en este - [link](http://www.omdbapi.com/apikey.aspx) llenando el formulario con la - versión gratuita (_free_) seleccionada y luego revisando tu _email_ para - activarla y poder usarla. -- Recuerda que GitHub Pages sirve sus páginas con un certificado - [SSL](https://es.wikipedia.org/wiki/Seguridad_de_la_capa_de_transporte) por lo - que las peticiones a las APIs deben incluir `https` en la URL. -- Recuerda que tienes un máximo de 1.000 peticiones diarias a la APIs por cada - [IP](https://es.wikipedia.org/wiki/Direcci%C3%B3n_IP), creemos que es - suficiente, pero te recomendamos hacer un uso responsable de este recurso - gratuito. - -## Contenido de referencia - -- [Fetch API](https://developer.mozilla.org/es/docs/Web/API/Fetch_API) - -Trata de divertirte. ¡a empezar esta aventura 🎬! +## 4. Consideraciones generales + +Este proyecto se debe "resolver" de manera individual. + +El rango de tiempo estimado para completar el proyecto es de 2 a 3 Sprints. + +Los tests unitarios deben cubrir un mínimo del 90% de _statements_, _functions_, +_lines_ y _branches_. + +Por otro lado, deberás definir la estructura de carpetas y archivos que consideres +necesaria. Puedes guiarte de las convenciones del _framework_ elegido. Por ende, +los _tests_ y el _setup_ necesario para ejecutarlos, serán hechos por ti. + +## 5. Consideraciones técnicas + +La aplicación debe ser un _Single Page App_. + +La aplicación no debe ser _responsive_. + +Para poder usar la API de +[_The Movie Database API V3_](https://developer.themoviedb.org/docs) +deberás crear una cuenta, luego +una llave (_key_) de acceso y usarla en cada petición +que hagas al servidor. Recuerda que tienes un máximo +de 1.000 peticiones diarias a la APIs por cada +[IP](https://es.wikipedia.org/wiki/Direcci%C3%B3n_IP), +creemos que es suficiente, pero te recomendamos hacer un uso +responsable de este recurso gratuito. + +Uno de los mayores objetivos de este proyecto es aprender a usar una librería o +framework popular para desarrollar una web app. +Debes elegir entre [React](https://es.react.dev/) o [Angular](https://angular.io/). + +Ten en cuenta que si eliges Angular, tienes la obligación de usar [TypeScript](https://www.typescriptlang.org/). +_Typescript_ es un lenguaje de programación fuertemente tipado basado en +javascript. + +Si eliges React, la decisión de usar Typescript es opcional (pero te lo +recomendamos!). Aquí puedes encontrar más información en relación a cómo iniciar +tu proyecto con [Typescript y React](https://itnext.io/create-react-v18-typescript-project-with-vite-d0d602e4a60e). + +La aplicación debe hacer uso de `npm-scripts` y contar con scripts `start`, +`test`, `build` y `deploy`, que se encarguen de arrancar, correr las pruebas, +empaquetar y desplegar la aplicación respectivamente. + +## 6. Criterios mínimos de aceptación del proyecto + +### Prototipo de baja fidelidad + +El [_Product Owner_](https://www.youtube.com/watch?v=r2hU7MVIzxs&t=202s) +nos entrega una primera iteración del prototipo de baja fidelidad +de la aplicación en [esta imagen](./docs/movie-list.png) y esta [otra](./docs/movie-detail.png). + +### Definición del producto + +El [_Product Owner_](https://www.youtube.com/watch?v=r2hU7MVIzxs&t=202s) +nos presenta este _backlog_ que es el resultado de su trabajo con el clientx +hasta hoy. + +--- + +#### [Historia de usuario 1] Listado de películas + +Yo como usuaria quiero visualizar en un tabla (filas y columnas) el catálogo de películas + +##### Criterios de aceptación + +- Se debe usar el _endpoint_ [/discover/movie](https://developer.themoviedb.org/reference/discover-movie). +- La aplicación cuenta con una paginación para explorar el catálogo por páginas. +- Para cada película se debe mostrar como mínimo: +poster, título original y año de lanzamiento. + +##### Definición de terminado + +- Los componentes desarrollados deben contar con test unitarios. + +--- + +#### [Historia de usuario 2] Filtro y ordenamiento + +Yo como usuaria quiero filtrar y ordenar el catálogo de películas usando +los criterios soportados por _TheMovie Database API V3_ + +##### Criterios de aceptación + +- Para filtrar se debe usar el _endpoint_ +[/discover/movie](https://developer.themoviedb.org/reference/discover-movie), +y alguno de sus parámetros como por ejemplo _with_genres_. +- Para ordenar se debe usar el _endpoint_ +[/discover/movie](https://developer.themoviedb.org/reference/discover-movie), +y alguno de sus parámetros como por ejemplo _sort_by_. +- La paginación debe conservar el filtro y ordenamiento +- Para cada película se debe mostrar como mínimo: +poster, título original y año de lanzamiento. + +##### Definición de terminado + +- Los componentes desarrollados deben contar con test unitarios. + +--- + +#### [Historia de usuario 3] Detalle de una película + +Yo como usuaria quiero consultar los detalles de una película + +##### Criterios de aceptación + +- Se debe usar el _endpoint_ +[/movie/{movie_id}](https://developer.themoviedb.org/reference/movie-details). +- Para la película se debe mostrar como mínimo: poster, título original, +año de lanzamiento, géneros, promedio de votación y total de votos. +- La interfaz debe permitir retornar al listado de películas conservando +el filtro y ordenamiento. + +##### Definición de terminado + +- Los componentes desarrollados deben contar con test unitarios. + +--- + +## 7. Despliegue + +Puedes elegir el proveedor (o proveedores) que prefieras junto +con el mecanismo de despligue y estrategia de alojamiento. +Te recomendamos explorar las siguientes opciones: + +- [Vercel](https://vercel.com/) es una plataforma de _despliegue_ que +nos permite desplegar nuestra aplicación web estática (HTML, CSS y +JavaScript) y también nos permite desplegar aplicaciones web que se +ejecutan en el servidor (Node.js). +- [Netlify](https://www.netlify.com/) al igual que Vercel, es una +plataforma de _despliegue_ que nos permite desplegar nuestra aplicación +web estática (HTML, CSS y JavaScript) y también nos permite desplegar +aplicaciones web que se ejecutan en el servidor (Node.js). + +## 8. Consideraciones para pedir tu Project Feedback + +Antes de agendar tu Project Feedback con un coach, asegúrate que tu proyecto: + +- [ ] Protipo de alta fidelidad en Figma +- [ ] Cumple con todos los [criterios mínimos de aceptación](#6-criterios-mínimos-de-aceptación-del-proyecto) +- [ ] Está subido a GitHub +- [ ] Esta [desplegado](#7-despliegue) +- [ ] Tiene un README con la definición del producto. + +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. Pistas, tips y lecturas complementarias + +Súmate al canal de Slack +[#project-movie-challenge-fw](https://claseslaboratoria.slack.com/archives/C04A0GS1WJX) +para conversar y pedir ayuda del proyecto. + +### Prototipo de alta fidelidad + +Tomando como base el prototipo de baja fidelidad entregado, crea uno de alta +fidelidad en Figma. Define una paleta de colores y un diseño grafico. Procura +que esto te tome entre 1 o 2 días. + +### Explora y consume The Movie Database API + +Explora la +[documentación](https://developer.themoviedb.org/docs) +de The Movie Database API. Inicia leyendo la sección +[_Getting Started_](https://developer.themoviedb.org/docs/getting-started), +luego +[_AUTHENTICATION_ --> _Application_](https://developer.themoviedb.org/docs/authentication-application) +y finalmente las referencias de endpoints +[/discover/movie](https://developer.themoviedb.org/reference/discover-movie) +y +[/movie/{movie_id}](https://developer.themoviedb.org/reference/movie-details). + +Luego crear una cuenta y genera una llave +(key) de acceso para consumir la API. + +Finalmente, realiza peticiones HTTP de prueba a la API usando herramientas como +[Postman](https://www.postman.com/) +o +[REST Client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client). +Identifica los headers, body, verbos, códigos de respuesta y encodings las peticiones. + +### Explora la documentacion del framework elegido + +La comunidad de desarrolladoras de cada framework se ha forzado mucho por crear +documentaciones amigables para quienes inician con cada tecnología. Por lo tanto, +date la oportunidad de explorar la documentación y probar sus ejemplos y tutoriales. + +### Planifica la implementación de la primera historia de usuaria + +Toma la primera historia de usuaria y +divídela en tareas más pequeñas. Identifica +el orden y prioridad de cada tarea. +Documenta tu planificacion en Trello o Github Project. + +### Implementa tu primer componente + +Toma la primera vista de prototipo de alta e implementala. +Te sugerimos seguir los siguientes +pasos independiente del framework que uses: + +- Paso 1: Separa la UI en una jerarquía de componentes +- Paso 2: Construye una versión estática de la UI sin añadir ninguna +interactividad aún +- Paso 3: Encuentra la representación mínima pero completa del estado de la UI. +Piensa en el estado como el conjunto mínimo de datos cambiantes que +la aplicación necesita recordar. +- Paso 4: Después de identificar los datos mínimos de estado de tu aplicación, +debes identificar qué componente es responsable de cambiar este estado, +o posee el estado. +- Paso 5: Identifica el flujo de comunicación entre cada componente: +padre a hijo o hijo a padre. Implementa la estrategia identificada tal como +te sugiere el framework. + +### Frameworks / libraries + +- [React](https://react.dev/) +- [Angular](https://angular.io/) +- [ViteJs](https://vitejs.dev/) diff --git a/projects/05-movie-challenge-fw/README.pt.md b/projects/05-movie-challenge-fw/README.pt.md index 9d8f6f649..d4045a921 100644 --- a/projects/05-movie-challenge-fw/README.pt.md +++ b/projects/05-movie-challenge-fw/README.pt.md @@ -1,116 +1,291 @@ -# Desafio de Filmes com Framework +# Movie Challenge con Framework ## Índice -- [1. Preâmbulo](#1-preambulo) -- [2. Resumo do projeto](#2-resumo-do-projeto) -- [3. Considerações gerais](#3-considerações-gerais) -- [4. Objetivos de aprendizagem](#4-objetivos-de-aprendizagem) -- [5. Critérios mínimos de aceitação do projeto](#5-criterios-de-aceitacao-minimos-do-projeto) -- [6. Considerações técnicas](#6-consideracoes-tecnicas) +- [1. Preâmbulo](#1-preâmbulo) +- [2. Resumo do Projeto](#2-resumo-do-projeto) +- [3. Objetivos de Aprendizagem](#3-objetivos-de-aprendizagem) +- [4. Considerações Gerais](#4-considerações-gerais) +- [5. Considerações Técnicas](#5-considerações-técnicas) +- [6. Critérios mínimos de aceitação do projeto](#6-critérios-mínimos-de-aceitação-do-projeto) +- [7. Deploy](#7-deploy) +- [8. Considerações para solicitar seu feedback do projeto](#8-considerações-para-solicitar-seu-feedback-do-projeto) +- [9. Dicas, guias e leituras complementares](#9-dicas-guias-e-leituras-complementares) --- ## 1. Preâmbulo -A forma como assistimos filmes mudou radicalmente nos últimos anos, em parte -devido ao surgimento dos serviços de -[_streaming_](https://pt.wikipedia.org/wiki/Streaming), que nos permitem -fazê-lo de onde quer que estejamos e a qualquer momento. O melhor reflexo desse -fenômeno é o sucesso da Netflix, HBO, Disney+ e outros. +A forma como assistimos à filmes mudou radicalmente nos últimos anos devido, +em parte, ao surgimento dos serviços de +[_streaming_](https://pt.wikipedia.org/wiki/Streaming) +que nos permitem fazê-lo de onde estivermos e a qualquer momento. O melhor +reflexo desse fenômeno é o sucesso da Netflix, HBO, Disney+ e outros. Acreditamos que há uma grande oportunidade de propor produtos/experiências -inovadoras de todos os tipos usando dados de filmes (diretorxs, atorxs, sagas, -sequências, datas, etc.). Poderíamos pensar em jogos, comunidades, catálogos, -recomendações baseadas em gostos pessoais, etc. -(apenas para mencionar algumas ideias óbvias). +inovadoras de todos os tipos usando dados de filmes +(diretores, atores, sagas, sequências, datas, etc.). Podemos pensar em jogos, +comunidades, catálogos, recomendações com base em preferências pessoais, etc. +(apenas para citar algumas ideias óbvias). ![Filmes](https://live.staticflickr.com/117/257368762_38bf6fcf9f_h.jpg) ## 2. Resumo do projeto -A ideia deste projeto é que, usando uma API com informações de filmes, você -possa planejar, organizar e desenvolver uma aplicação web que utilize esses -dados e tenha uma proposta de valor atraente para lxs usuárixs. +Neste projeto, você criará uma página da web destinada a visualizar, filtrar e +ordenar o catálogo de filmes da +[_The Movie Database API V3_](https://developer.themoviedb.org/docs). +Esta página pode servir como um catálogo de filmes geral, mas também, se você +quiser, pode considerar a possibilidade de projetá-la para um público específico +com preferências como "filmes western" ou "filmes dos anos 80", por exemplo. -Embora a decisão do que fazer seja totalmente sua, há algumas considerações -gerais apresentadas a seguir. Você pode atender a esses requisitos em projetos -muito diferentes, dependendo da sua criatividade e entendimento de seus -potenciais usuárixs! - -Para implementar este projeto, você deverá escolher um framework entre +Para implementar este projeto, você deve escolher um framework entre [React](https://pt-br.reactjs.org/) e [Angular](https://angular.io/). -Ao escolher um _framework_ ou _biblioteca_ para nossa interface, apoiamo-nos -em uma série de convenções e implementações _testadas_ e _documentadas_ para +Ao escolher um framework ou biblioteca para nossa interface, baseamo-nos em +uma série de convenções e implementações comprovadas e documentadas para resolver um problema comum a todas as interfaces da web: -[_manter a interface sincronizada com o estado_](https://medium.com/dailyjs/the-deepest-reason-why-modern-javascript-frameworks-exist-933b86ebc445). -Isso nos permite concentrar-nos melhor (dedicar mais tempo) nas características -_específicas_ de nossa aplicação. - -Quando escolhemos uma dessas tecnologias, não só importamos um pedacinho de -código para reutilizá-lo (o que é um grande valor por si só), mas adotamos uma -**arquitetura**, uma série de **princípios de design**, um **paradigma**, umas -**abstrações**, um **vocabulário**, uma **comunidade**, etc. - -Como desenvolvedora Front-end, esses kits de desenvolvimento podem ser de grande -ajuda para implementar rapidamente recursos dos projetos em que você trabalha. - -## 3. Considerações gerais - -- Este projeto deve ser resolvido em equipes de no máximo 3 pessoas. -- Você deve escolher e justificar qual problema ou necessidade está resolvendo - com o produto que está projetando e desenvolvendo. -- Você deve utilizar os dados da API do - [The Movie Database API V3](https://developers.themoviedb.org/3/getting-started/introduction) - ou - [OMDB](http://www.omdbapi.com/) (The Open Movie Database) ou qualquer - outra API que encontrar. -- Para implementar este projeto, você deve escolher um framework entre - React ou Angular. -- Tente pensar em um escopo que, considerando sua complexidade e a quantidade de - pessoas na equipe, permita concluir o projeto em 3 ou 4 semanas. - -## 4. Objetivos de aprendizagem - -> ℹ️ Esta seção será automaticamente gerada no idioma pertinente, a partir dos -> objetivos de aprendizagem declarados em [`project.yml`](./project.yml), ao -> criar o repositório do projeto para uma coorte em particular usando -> [`./scripts/create-cohort-project.js`](../../scripts#create-cohort-project-coaches). +[manter a interface sincronizada com o estado](https://medium.com/dailyjs/the-deepest-reason-why-modern-javascript-frameworks-exist-933b86ebc445). +Isso nos permite nos concentrar melhor (dedicar mais tempo) nas características +específicas de nossa aplicação. + +Quando escolhemos uma dessas tecnologias, não estamos apenas importando um +pedaço de código para reutilizá-lo (o que por si só é um grande valor), +mas também adotando uma **arquitetura**, uma série de **princípios de design**, +um **paradigma**, **abstrações**, um **vocabulário**, uma **comunidade**, etc... + +Como desenvolvedora Front-end, esses kits de desenvolvimento podem ser de +grande ajuda para implementar rapidamente características nos projetos em +que você trabalha. + +## 3. Objetivos de Aprendizagem + +> ℹ️ Esta seção será gerada automaticamente no idioma apropriado, a partir dos +objetivos de aprendizagem declarados em [`project.yml`](./project.yml), ao criar +o repositório do projeto para uma turma específica, usando +[`./scripts/create-cohort-project.js`](../../scripts#create-cohort-project-coaches). > -> Aqui você pode ver uma [lista de todos os objetivos de aprendizagem](../../learning-objectives/data.yml) -> cobertos em nosso currículo. - -## 5. Critérios mínimos de aceitação do projeto - -- Utilizar a _The Movie Database API V3_ ou _OMDB_ ou qualquer outra API - através de _fetch_ para obter e mostrar uma interface baseada nos dados - de cada resposta. -- Sua solução deve ser _responsiva_. Deve se adaptar a telas de desktop, - tablets e celulares. -- Você deve implantar sua aplicação em qualquer serviço na nuvem. - Algumas opções são [GitHub Pages](https://pages.github.com/) - ou [Vercel](https://vercel.com/) - ou [Netlify](https://www.netlify.com/) - -## 6. Considerações técnicas - -- Para poder usar a API do _The Movie Database API V3_ ou _OMDB_ você deverá criar - uma chave (_key_) de acesso e adicioná-la em cada solicitação que fizer ao servidor. - + Para _The Movie Database API V3_ você deverá criar uma conta e depois uma - chave neste [link](https://www.themoviedb.org/settings/api). - + Para _OMDB_ a chave é gerada neste - [link](http://www.omdbapi.com/apikey.aspx) preenchendo o formulário com a - versão gratuita (_free_) selecionada e depois verificando seu _e-mail_ para - ativá-la e poder usá-la. -- Lembre-se que o GitHub Pages serve suas páginas com um certificado - [SSL](https://pt.wikipedia.org/wiki/SSL) então as solicitações às APIs - devem incluir `https` na URL. -- Lembre-se que você tem um máximo de 1.000 solicitações diárias às APIs por cada - [IP](https://pt.wikipedia.org/wiki/Endere%C3%A7o_IP), acreditamos que seja - suficiente, mas recomendamos que você faça um uso responsável deste recurso gratuito. - -## Conteúdo de referência - -- [Fetch API](https://developer.mozilla.org/pt-BR/docs/Web/API/Fetch_API) - -Tente se divertir. Vamos começar esta aventura 🎬! +> Aqui está uma +[lista de todos os objetivos de aprendizado](../../learning-objectives/data.yml) +contemplados em nosso currículo. + +## 4. Considerações Gerais + +Este projeto deve ser resolvido individualmente. + +O prazo estimado para concluir o projeto é de 2 a 3 Sprints. + +Os testes unitários devem cobrir no mínimo 90% de _statements_, +_functions_, _lines_ e _branches_. + +Além disso, você deve definir a estrutura de pastas e arquivos que +considerar necessária. Você pode seguir as convenções do framework +escolhido. Portanto, os testes e a configuração necessária para executá-los +serão de sua responsabilidade. + +## 5. Considerações Técnicas + +A aplicação deve ser uma _Single Page App_. + +A aplicação não precisa ser _responsiva_. + +Para poder usar a API da +[_The Movie Database API V3_](https://developer.themoviedb.org/docs), +você deve criar uma conta e, em seguida, uma chave de acesso (_key_) +e usá-la em cada solicitação que fizer ao servidor. Lembre-se de que +você tem um limite máximo de 1.000 solicitações diárias à API por cada +[IP](https://pt.wikipedia.org/wiki/Endere%C3%A7o_IP), portanto, aconselhamos +a fazer um uso responsável desse recurso gratuito. + +Um dos principais objetivos deste projeto é aprender a usar uma biblioteca +ou framework popular para desenvolver um aplicativo da web. Você deve escolher +entre [React](https://pt-br.reactjs.org/) ou [Angular](https://angular.io/). + +Lembre-se de que, se escolher o Angular, é obrigatório usar o +[TypeScript](https://www.typescriptlang.org/). O TypeScript é uma linguagem +de programação fortemente tipada baseada em JavaScript. + +Se escolher o React, a decisão de usar o TypeScript é opcional +(mas recomendada!). Aqui você pode encontrar mais informações sobre +como iniciar seu projeto com +[TypeScript e React](https://itnext.io/create-react-v18-typescript-project-with-vite-d0d602e4a60e). + +A aplicação deve usar `npm-scripts` e deve incluir scripts `start`, `test`, +`build` e `deploy` para iniciar, executar testes, empacotar e implantar a +aplicação, respectivamente. + +## 6. Critérios mínimos de aceitação do projeto + +### Protótipo de Baixa Fidelidade + +O [_Product Owner_](https://www.youtube.com/watch?v=r2hU7MVIzxs&t=202s) +nos fornece uma primeira iteração do protótipo de baixa fidelidade da +aplicação nesta [imagem](./docs/movie-list.png) e nesta +[outra](./docs/movie-detail.png). + +### Definição do Produto + +O +[_Product Owner_](https://www.youtube.com/watch?v=r2hU7MVIzxs&t=202s) +nos apresenta +este _backlog_ que é o resultado de seu trabalho com o cliente até +o momento. + +--- + +#### [História do Usuário 1] Lista de Filmes + +Eu, como usuária, quero visualizar um catálogo de filmes em uma tabela +(linhas e colunas). + +##### Critérios de aceitação + +- Deve ser utilizado o _endpoint_ +[/discover/movie](https://developer.themoviedb.org/reference/discover-movie). +- A aplicação deve incluir paginação para explorar o catálogo por páginas. +- Cada filme deve exibir pelo menos: pôster, título original e ano de lançamento. + +##### Definição de Pronto + +- Os componentes desenvolvidos devem ter testes unitários. + +--- + +#### [História do Usuário 2] Filtro e Ordenação + +Eu, como usuária, quero filtrar e ordenar o catálogo de filmes usando os +critérios suportados pela _TheMovie Database API V3_. + +##### Critérios de Aceitação + +- Para filtrar, deve ser usado o _endpoint_ +[/discover/movie](https://developer.themoviedb.org/reference/discover-movie), +e um ou mais de seus parâmetros, como, por exemplo, _with_genres_. +- Para ordenar, deve ser usado o _endpoint_ +[/discover/movie](https://developer.themoviedb.org/reference/discover-movie), +e um ou mais de seus parâmetros, como, por exemplo, _sort_by_. +- A paginação deve manter o filtro e a ordenação. +- Cada filme deve exibir pelo menos: pôster, título original e ano de lançamento. + +##### Definição de Pronto + +- Os componentes desenvolvidos devem ter testes unitários. + +--- + +#### [História do Usuário 3] Detalhes de um Filme + +Eu, como usuária, quero consultar os detalhes de um filme. + +##### Critérios de Aceitação + +- Deve ser usado o _endpoint_ +[/movie/{movie_id}](https://developer.themoviedb.org/reference/movie-details). +- Para o filme, devem ser exibidos pelo menos: pôster, título original, ano +de lançamento, gêneros, média de votação e total de votos. +- A interface deve permitir retornar à lista de filmes, mantendo o filtro +e a ordenação. + +##### Definição de Pronto + +- Os componentes desenvolvidos devem ter testes unitários. + +--- + +## 7. Deploy + +Você pode escolher o provedor (ou provedores) que preferir, juntamente com +o mecanismo de deploy e estratégia de hospedagem. Recomendamos explorar +as seguintes opções: + +- [Vercel](https://vercel.com/) é uma plataforma que permite +fazer deploy da nossa aplicação web estática (HTML, CSS e JavaScript) e também +permite fazer deploy de aplicativos da web que são executados no servidor (Node.js). +- [Netlify](https://www.netlify.com/) é semelhante ao Vercel, sendo uma +plataforma que permite fazer deploy da nossa aplicação web estática +(HTML, CSS e JavaScript) e também permite fazer deploy de aplicativos +da web que são executados no servidor (Node.js). + +## 8. Considerações para solicitar seu feedback do projeto + +Antes de agendar seu feedback do projeto com um coach, certifique-se de que seu projeto: + +- [ ] Tenha protótipo de alta fidelidade no Figma +- [ ] Atende a todos os [critérios mínimos de aceitação](#6-criterios-minimos-de-aceitacao-do-projeto) +- [ ] Está hospedado no GitHub +- [ ] Está com o [deploy](#7-Deploy) realizado +- [ ] Possui um README com a definição do produto + +Lembre-se de fazer uma autoavaliação dos objetivos de aprendizagem e habilidades +pessoais em seu painel de estudante. + +Se você não concluiu todos os itens acima, não consideramos que você está pronto +para sua sessão de feedback do projeto. + +## 9. Dicas, guias e leituras complementares + +Junte-se ao canal do Slack +[#project-movie-challenge-fw](https://claseslaboratoria.slack.com/archives/C04A0GS1WJX) +para conversar e pedir ajuda sobre o projeto. + +### Protótipo de Alta Fidelidade + +Com base no protótipo de baixa fidelidade fornecido, crie um protótipo de alta +fidelidade no Figma. Defina uma paleta de cores e um design gráfico. Tente concluir +isso em 1 ou 2 dias. + +### Explore e consuma a API do The Movie Database + +Explore a [documentação](https://developer.themoviedb.org/docs) da API do +The Movie Database. Comece lendo a seção +[Getting Started](https://developer.themoviedb.org/docs/getting-started), +depois +[AUTHENTICATION --> Application](https://developer.themoviedb.org/docs/authentication-application) +e, finalmente, as referências dos endpoints +[/discover/movie](https://developer.themoviedb.org/reference/discover-movie) +e +[/movie/{movie_id}](https://developer.themoviedb.org/reference/movie-details). + +Em seguida, crie uma conta e gere uma chave (key) de acesso para consumir a API. + +Finalmente, faça solicitações HTTP de teste à API usando ferramentas como +[Postman](https://www.postman.com/) ou +[REST Client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client). +Identifique os cabeçalhos, corpo, verbos, códigos de resposta +e codificações das solicitações. + +### Explore a documentação do framework escolhido + +A comunidade de desenvolvedores de cada framework se esforçou muito para +criar documentações amigáveis para aqueles que estão começando com cada +tecnologia. Portanto, dê a si mesma a oportunidade de explorar a documentação +e experimentar seus exemplos e tutoriais. + +### Planeje a implementação da primeira história de usuário + +Pegue a primeira história de usuário e divida-a em tarefas menores. Identifique +a ordem e a prioridade de cada tarefa. Documente seu planejamento no Trello ou +Github Project. + +### Implemente seu primeiro componente + +Pegue a primeira visualização do protótipo de alta fidelidade e a implemente. +Sugerimos seguir os seguintes passos, independentemente do framework que você +estiver usando: + +- Passo 1: Separe a interface do usuário em uma hierarquia de componentes. +- Passo 2: Crie uma versão estática da interface do usuário sem adicionar +nenhuma interatividade ainda. +- Passo 3: Encontre a representação mínima, mas completa, do estado da interface +do usuário. Pense no estado como o conjunto mínimo de dados em constante mudança +que a aplicação precisa lembrar. +- Passo 4: Depois de identificar os dados mínimos de estado de sua aplicação, +identifique qual componente é responsável por alterar esse estado ou possui o estado. +- Passo 5: Identifique o fluxo de comunicação entre cada componente: de pai +para filho ou de filho para pai. Implemente a estratégia identificada conforme +sugerido pelo framework. + +### Frameworks / bibliotecas + +- [React](https://pt-br.reactjs.org/) +- [Angular](https://angular.io/) +- [ViteJs](https://vitejs.dev/) diff --git a/projects/05-movie-challenge-fw/docs/movie-challenge-fw.bmpr b/projects/05-movie-challenge-fw/docs/movie-challenge-fw.bmpr new file mode 100644 index 0000000000000000000000000000000000000000..9a76acfdd4b4048cf5a0d4e64c0a065bec6813ea GIT binary patch literal 73728 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 H8vy?Y529jz literal 0 HcmV?d00001 diff --git a/projects/05-movie-challenge-fw/docs/movie-detail.png b/projects/05-movie-challenge-fw/docs/movie-detail.png new file mode 100644 index 0000000000000000000000000000000000000000..5a9970b6d9826b23423a2bd3d3a34b88fd53d098 GIT binary patch literal 44363 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 LLybpjc47Yolb#o| literal 0 HcmV?d00001 diff --git a/projects/05-movie-challenge-fw/docs/movie-list.png b/projects/05-movie-challenge-fw/docs/movie-list.png new file mode 100644 index 0000000000000000000000000000000000000000..907b8c858b54dab84989790d283321254062df70 GIT binary patch literal 40935 zcmd>mRali<7p`=dNJ!&SP(r#}N~BS`8tt-60{}b>?F4{r~&F zJ2&U*@I2gn&-&&ZbB=n)JH}c;3UZQI=p^V59z4L3dM&2(-~oIo_-8^z22TRLxyc_q zpn4!BCi2cnXU83@oKU&pmgY^3^rP3uaf%0DW9ODLyfl!X&99*hq2wRBgwJjJp(_YJ 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