/alura-stickers

Projeto desenvolvido na imersão Java da Alura, realizada entre os dias 27/03/2023 e 31/03/2023. Trata-se de um programa em Java para baixar imagens de algumas APIs e gerar figurinhas para redes sociais.

Primary LanguageJava

Alura-Stickers

Projeto desenvolvido na imersão Java da Alura, realizada entre os dias 27/03/2023 e 31/03/2023. Trata-se de um programa em Java para baixar imagens de algumas APIs e gerar figurinhas para redes sociais.

Clique na imagem abaixo para assistir o vídeo.

Watch the video

  • Aula 01 | 27/03/2023 | Consumindo uma API de filmes com o Java.

    • Objetivo: Obter o título, poster e rating dos 250 melhores filmes do IMDB. Uma vez que a API do IMDB estava apresentando instabilidades, não foi possível utilizar a API oficial. Em vez disso, foram utilizados links alternativos oferecidos pelos instrutores da imersão.
    • Desafios:
      • Consumir o endpoint de filmes mais populares da API do IMDB. Procure também, na documentação da API do IMDB, o endpoint que retorna as melhores séries e o que retorna as séries mais populares: Esta etapa foi realizada, mas como o link foi exportado para um arquivo separado, então optou-se por colocar todos os links solicitados e fazer o teste em uma única execução, exibindo o resultado dos 4 links.
      • Usar sua criatividade para deixar a saída dos dados mais bonitinha: usar emojis com código UTF-8, mostrar a nota do filme como estrelinhas, decorar o terminal com cores, negrito e itálico usando códigos ANSI, e mais: Desafio realizado, mas notou-se que a estrela é exibida de forma diferente no cmd do windows. Além das cores e do emoji de estrela para exibir o rating do filme, também foi inserido um símbolo de like se o rating do filme for maior ou igual a 5 e um emoji de deslike se o rating for inferior a 5.
      • Colocar a chave da API do IMDB em algum lugar fora do código como um arquivo de configuração (p. ex, um arquivo .properties) ou uma variável de ambiente: Não foi possível obter a chave devido à instabilidade da API do IMDB. Deste modo, foram colocados os links em um arquivo de configuração somente para concluir o desafio. Os links ficaram no arquivo Link.txt.
    • Resultados:
      Top Movies Most Popular Movies & Top Tvs Top Tvs & Most Popular Tvs
  • Aula 02 | 28/03/2023 | Gerando figurinhas para WhatsApp.

    • Objetivo: Gerar figurinhas para WhatsApp a partir das imagens fornecidas pela API da IMDB. Mais uma vez, devido à instabilidade do IMDB, foram utilizados os links alternativos oferecidos pelos instrutores. Foi percebido que as figurinhas de alguns filmes não eram geradas devido a presença de dois pontos (:) no nome do arquivo. Para resolver este problema os dois pontos (:) foram substituídos por traço (-).
    • Desafios:
      • Criar diretório de saída das imagens, se ainda não existir: Desafio realizado.
      • Centralizar o texto na figurinha: Desafio realizado.
      • Colocar outra fonte como a Comic Sans ou a Impact, a fonte usada em memes: Desafio Realizado. Foi colocado a Comic Sans.
      • Colocar contorno (outline) no texto da imagem: Desafio Realizado.
      • Colocar uma imagem de você que está fazendo esse curso sorrindo, fazendo joinha e fazer com que o texto da figurinha seja personalizado de acordo com as classificações do IMDB: Desafio Realizado. Entretanto, nos links fornecidos só há filmes com rating superior a 5 e por isso apenas a mensagem Recomendo e sua respectiva imagem foram exibidos.
    • Resultados:
  • Aula 03 | 29/03/2023 | Ligando as pontas: Refatoração e orientação a objetos.

    • Objetivo: Obter imagens da API da Nasa e refatorar o código utilizando orientação à objetos. Obs: Para manter a compatibilidade e utilizar tanto a API do IMDB como a API da Nasa, foram removidos os emojis do terminal e os links foram colocados no código. Foi necessário refazer a classe JSonParser, pois não estava obtendo os dados corretamente, sendo que para isso foi utilizado Google GSON e a classe JsonParser foi modificada para MyJSonParser a fim de evitar conflitos.
    • Desafios:
      • Transformar a classe que representa os conteúdos em um Record, disponível a partir do Java 16: Desafio realizado.
      • Criar as suas próprias exceções e usá-las na classe que implementa o cliente HTTP: Desafio realizado.
      • Usar recursos do Java 8 e posterior, como Streams e Lambdas, para mapear uma lista em uma outra: Desafio Realizado.
      • Criar uma Enum que une, como configurações, a URL da API e o extrator utilizado: Desafio Realizado.
    • Resultados:
  • Aula 04 | 30/03/2023 | Criando nossa própria API com Spring.

  • Aula 05 | 31/03/2023 | Publicando nossa API no Cloud.