Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

🎯 Objetivo do Desafio

Avaliar sua habilidade de desenvolver uma aplicação com React, utilizando JavaScript (ou TypeScript, se desejar), consumindo uma API pública real e aplicando boas práticas de estruturação de componentes, manipulação de estado e interações com o usuário.

📜 Descrição

Você deverá desenvolver uma aplicação que consome a API pública do Studio Ghibli e exibe uma lista de filmes do estúdio com suas respectivas informações e algumas opções de filtro/ações nessa lista, conforme especificado a seguir:

⚠️ O desafio deve ser implementado utilizando a versão mais recente do React com javascript ou typescript. Busque desenvolver uma interface agradável e legível (não precisa ser um design incrível, mas bem organizada)

🔎 Requisitos Funcionais

✅ Obrigatórios

  • Listar filmes com as seguintes informações
    • Imagem do filme
    • Título
    • Ano de lançamento
    • Duração
    • Sinopse
    • Diretor e Produtor
    • Nota de avaliação (campo rt_score)
  • Marcar o filme como assistido
  • Marcar o filme como favorito
  • Filtrar os filmes por título através de um campo de texto
  • Buscar palavras do filtro de texto na sinopse do filme
    • Ao selecionar a opção “Incluir sinopse na busca**”,** além de filtrar os filmes, também deve destacar o texto buscado na sinopse com alguma cor.
  • Adicionar anotações de texto a um filme
  • Adicionar, junto à anotação, uma avaliação pessoal de 1 a 5 estrelas
  • Filtrar os filmes por:
    • Assistido
    • Favorito
    • Com anotação.
    • Número de estrelas
  • Ordenar filmes (de forma crescente e decrescente) por:
    • Título
    • Duração
    • Avaliação pessoal
    • Nota de avaliação (campo rt_score)

✨ Desejáveis

  • Utilizar TypeScript
  • Implementar responsividade básica
  • Persistir os seguintes dados no LocalStorage:
    • Lista de filmes e suas características (assistido / favorito / anotação / avaliação)
    • Filtros selecionados
    • Opção de ordenação selecionada
  • Adicionar mensagens toast para as operações
    • Marcar/desmarcar o filme como assistido, favorito;
    • Adicionar/editar/remover anotação;
  • Escrever pelo menos 1 teste unitário (ex: botão de favorito ou função de marcação)
  • Separação clara de responsabilidades (componentes, serviços de API, etc.)
  • Utilizar biblioteca de estilo (Styled-components, Tailwind, Shadcn-ui, etc.)
  • Utilizar Context API ou uma solução de estado global (Redux, zustand, etc.)
  • Utilizar solução para gerenciar estado assíncrono (axios, tanstack query, etc.)

💻 Sugestão de interface

Segue o deploy abaixo com uma sugestão de interface para a implementação do desafio. Mas claro, sinta-se à vontade para imprimir seu estilo próprio durante a implementação: Versão online


📦 Entrega

  1. Inclua um README.md com:

    • Instruções de instalação e execução.

    • Ferramentas utilizadas.

    • Quais requisitos foram implementados.

    • Se aplicável, como rodar os testes.



💡 Nota: O foco está na organização, clareza e qualidade do código — não necessariamente na completude ou complexidade. Explique suas decisões, use commits claros, e divirta-se com o desafio!

About

This a coodesh challenge

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors