Skip to content

fabriciosouza21/itexto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sobre   |    Desafio   |    Resolução   |    Tecnologias   |    Execução   |   

PRs welcome!

Itexto desafio tecnico

Sobre os Desafios

existem dois desafios um é criar uma api backend o outro é criar uma aplicação frontend para consumir os dados publicos api devall.

Backend:

  • GET /post – responsável por retornar os últimos posts do dev/All caso não seja fornecido um parâmetro de busca ou para buscar posts usando o parâmetro “search” ou “blog”, no caso da listagem de posts pertencentes a um blog. No seu caso a busca será feita apenas por texto, ou seja, pelo parâmetro “search”.

  • GET post/clique/{id} – os posts retornados pelo endpoint anterior não contém a URL para a qual você deverá direcionar seus usuários. Isto por que precisamos registrar quantas vezes o link foi acessado. Este endpoint executa duas ações: registra o clique do usuário e, dentre os valores retornados (atributo URL), está o endereço do post para o qual você deverá direcionar o usuário do seu cliente.

Frontend

  • Utilizar Os end Points do backend acima
  • No momento em que a página for carregada, os últimos posts cadastrados no dev/All deverão ser expostos.
  • Deve ser possível realizar a busca por posts no dev/All por assunto, tal como na interface padrão do site. Sendo assim, deve existir um formulário de pesquisa no seu cliente web. Neste formulário o usuário digitará um texto que será usado na busca por posts.
  • Na listagem dos posts apresentados deve haver um botão ou link que, uma vez clicado, direcione o usuário para o site representado.

Resolução

Backend

Database

🚧 implementação

Iniciei criando a estrutura basica de pacotes entities, repositories, services e controllers, baseados na implementação do banco de dados, utilizando o padrão em camadas para estrutura o projeto.

🚧 End point GET /post

- A busca textual pesquisa por similaridade (like) posts cujos campos titulo ou resumo correspondam ao valor fornecido. - Sobre o autor, não devem ser retornados os campos “avatar” e “miniBiografia”, até por que os mesmos não se encontram presentes no banco de dados que lhe foi fornecido. - Sobre a ordenação dos posts, estes devem vir ordenados pela data de publicação em ordemdescendente. - O campo “url” do post não deve retornar preenchido. Ele será retornado na implementação do seu outro endpoint.

🚧 End point GET post/clique/{id}

- Registra o clique no link. - Retorna a URL que representa o link para, aí sim, ser acessada diretamente.

Frontend

Desafio

Implemente um cliente do dev/All web usando as tecnologias que quiser que sejam baseadas nos padrões HTML 5.

🚧 implementação

Cliente – que pode ser implementado em qualquer tecnologia que permita acessar serviços disponibilizados através de padrões REST, utilizando a api do devall.

API do /dev/All

🚧 Organização de pastas do projeto

- Na listagem dos posts apresentados deve haver um botão ou link que, uma vez clicado,direcione o usuário para o site representado.

🚧 Home

- No momento em que a página for carregada, os últimos posts cadastrados no dev/All deverão ser expostos.

🚧 realizar busca

- Deve ser possível realizar a busca por posts no dev/All por assunto, com um botão com o link do post

🚀 Tecnologias

  • Java 11
  • Spring Boot
  • JPA
  • Maven
  • Mysql
  • Javascript
  • React js
  • Docker
  • bootstrap
  • css
  • html

🕹 Execução

Pré-requisitos backend-java maven: Java 11 e Postman (ou a API Client que preferir)

# Clonar repositório
git clone https://github.com/fabio21777/itexto
# Entrar na pasta abaixo
cd itexto-backend
# Executar o projeto
./mvnw spring-boot:run

Pré-requisitos frontend yarn: Node versão recentes

# Clonar repositório
git clone https://github.com/fabio21777/itexto
# Entrar na pasta abaixo
cd itexto-frontend
# Instalar yarn
npm install --global yarn
# Baixar dependências do projeto
yarn install
# Executar o projeto
 yarn start

Pré-requisitos backend-java docker: Docker e Postman (ou a API Client que preferir)

#Executar docker
docker run -d -p 8080:8080 --rm fabricio21777/itextospring

Pré-requisitos frontend-node docker: Docker

#Executar docker
docker run -d -p 3000:3000 --rm fabio21777/itextoreact