A aplicação alura-stickers tem como principal funcionalidade gerar stickers que podem, por exemplo, ser compartilhados no whatsapp. Enquanto o projeto Spring - linguagens.api - a principal funcionalidade é o CRUD (Create, Read, Update and Delete) das principais linguagens de programação escolhidas. Meu objetivo em participar do projeto foi a revisão de conceitos e recursos do mundo Java, estudar e ampliar meus conhecimentos! 😄
- Descrição do Projeto
- Como executar
- [Aula 1] - Consumindo uma API de Filmes com Java
- [Aula 2] - Gerando Figurinhas para Whatsapp
- [Aula 3] - Ligando as Pontas, Refatoração e Orientação a Objetos
- [Aula 4] - Criando nossa própria API com Spring
- [Aula 5] - Publicando nossa API no Cloud
- Tecnologias
- Agradecimento
A cada aula foi desenvolvido uma parte do sistema que envolveu: conceitos de Orientação a Objetos, Java, API REST, Bibliotecas (como exemplo: Java Awt, Java Io, Java Util), Ecossistema Spring e Cloud.
Na linha de comando execute:
# Clone o repositório
$ git clone https://github.com/vgerace/imersaojavastickers
[Spring]
# Entre no diretório
$ cd imersaojavastickers/target
# Execute o comando abaixo para startar o app
$ java -jar linguagens.api-0.0.1-SNAPSHOT.jar
[Java]
# Entre no diretório
$ cd alura-stickers/src
# Escolha na classe App a API que prefira (disponíveis da NASA e IMDB)
# Ajuste a key com as variáveis de ambiente de acordo com sua IDE/OS, no exemplo: (nasaApiKey, imdbApiKey...)
$ Execute a classe APP
- Consumir o endpoint de filmes mais populares da API do IMDB. Além de também, o endpoint que retorna as melhores séries e o que retorna as séries mais populares.
- 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!
- 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..
- Criar diretório de saída das imagens, se ainda não existir.
- Centralizar o texto na figurinha.
- Colocar outra fonte como a Comic Sans ou a Impact, a fonte usada em memes.
- Colocar contorno (outline) no texto da imagem.
- Colocar outra fonte como a Comic Sans ou a Impact, a fonte usada em memes.
- 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.!
- Transformar a classe que representa os conteúdos em um Record, disponível a partir do Java 16.
- Criar as suas próprias exceções e usá-las na classe que implementa o cliente HTTP.
- Usar recursos do Java 8 e posterior, como Streams e Lambdas, para mapear uma lista em uma outra.
- Criar uma Enum que une, como configurações, a URL da API e o extrator utilizado.
- CRUD
- Criação de collection utilizando Mongo Db Cloud
- Deploy
- Adicionalmente, foi criado dockerfile e imagem docker
- Adicionalmente, foi implementado o Swagger para documentação da API
API disponível em: https://imersaojavastickers-production.up.railway.app/linguagens
Imagem Docker disponível em: https://hub.docker.com/r/geracevitor/linguagensapi/
Swagger Ui
- [Java-JDK] (https://www.oracle.com/java/technologies/downloads/)
- [Maven] (https://maven.apache.org/download.cgi)
- [Spring Boot] (https://start.spring.io/)
- [Docker] (https://www.docker.com/)
- [Railway] (https://railway.app/)
- [Mongo Db Atlas] (https://www.mongodb.com/cloud/atlas/register)
- [Swagger] (https://swagger.io/)
Quero registrar meu agradecimento a todos envolvidos da equipe Alura e sua comunidade, que impulsionaram e colaboraram para a realização desse projeto. Em especial também ao meu colega e amigo @durvalprintes, por sempre se dispor a colaborar em dúvidas, compartilhar conhecimento e incentivar a nos tornarmos profissionais/devs melhores!