- O prazo de entrega do teste é de até 7 dias, a partir do momento que acordarmos o início do desenvolvimento mediante contato.
- O mais importante é desenvolver todos os requisitos listados aqui. Você também pode desenvolver funcionalidades adicionais para agregar valor ao seu teste.
- Leia todo este arquivo README.md para entender o teste;
- Inicie um novo repositório público em sua conta no github;
- Para o back-end utilize:
- PHP 7.2+, ou superior;
- MySQL 5.6+, ou superior;
- Framework Laravel, versão 8, ou superior;
- Para o front-end utilize:
- React JS v17+, ou superior;
- Você pode desenvolver o front-end integrado ao Laravel, através dos seguintes recursos:
- Compilação JS do Laravel (recomendado)
- OU
- Create React App;
- Lembre apenas de manter as duas aplicações no mesmo repositório para facilitar análise do teste;
- Realize as comunicações entre Front e Back desenvolvendo uma API JSON minimalista dentro do Laravel;
- Não há necessidade de desenvolver recursos de Autenticação, Login, ou quaisquer sistemas de segurança;
- O objetivo principal é desenvolver um feed simples de rede social;
- Busque criar um código bem estruturado, seguindo um padrão e as melhores práticas da comunidade. Sinta-se livre para acrescentar comentários, lembretes, anotações no meio do código, etc. Em um ambiente de desenvolvimento corporativo é fundamental que a equipe compreenda todos os códigos desenvolvidos;
- Após finalizar, publique no repositório do seu projeto um arquivo completo com o SQL do seu banco utilizado (dump do banco);
- Não é necessário publicar o projeto em algum servidor.
- Insira no seu
README.mdtodas as instruções / documentação necessária para executarmos localmente seu projeto para avaliação; - Você pode basear o visual da sua aplicação no visual do Feed do LinkLei, basta cadastrar-se no sistema, efetuar login e navegar.
- Desenvolva o front-end o mais próximo possível das imagens de modelo em anexo disponibilizadas aqui.
- Ao finalizar o teste responda à mesma conversa de email onde enviamos o link do desafio. Inclua na sua resposta o link do seu repositório no github.
- Todos os recursos gráficos como imagens e ícones, estão disponíveis no diretório graphics;
- Desenvolva de forma responsiva, para que toda a aplicação seja bem visualizada e funcional em diferentes dispositivos mobile, smartphones, tablets e desktops.
- Utilize o padrão de fonte 'Lato', como no exemplo abaixo:
font-family: Lato,'Source Sans Pro';- campo autor do post: preenchimento obrigatório, campo tipo texto, deve receber o nome do usuário que está publicando.
- campo Selecione a categoria: obrigatório, deve ser do tipo select, permitindo selecionar uma das categorias disponíveis, sendo elas:
- Post
- Artigo
- Grupo
- Campo Escrever publicação: obrigatório, deve ser do tipo textarea, permitindo multiplas linhas de texto. Utilize um componente que faça o campo crescer verticalmente quando acrescentadas mais linhas de texto.
- Botão imagem: preenchimento opcional, deve permitir inserir uma imagem no post. Deve aceitar somente imagens no formato jpg ou png.
- Botão publicar envia todo o conteúdo da criação do post para a API, salvando a categoria, texto e imagem na respectiva tabela do post.
- Após enviar o conteúdo do post, a modal deve ser fechada automaticamente.
- Realize as validações necessárias, exibindo mensagens de erro quando algum campo não estiver preenchido ou for inválido. Use sua sabedoria para decidir como, onde e quando exibir estas mensagens de erro/validações.
- Não há necessidade e validar o tamanho da imagem quando enviada.
-
O front-end do feed deve estar de acordo com o modelo abaixo;

-
O feed deve exibir todos os posts criados, em ordem Decrescente (primeiro o post mais recente).
-
A imagem do usuário deve ser o avatar_default;
-
Limite a exibição do texto do post para no máximo 500 caracteres, caso exceda este limite, exiba o link "Leia mais..." que ao ser clicado deve expandir a caixa e exibir por inteiro o texto do post. Caso o limite não seja excedido, não exibir o "Leia mais...".
-
Utilize recursos de rolagem infinita, para carregar mais posts quando a rolagem do usuário chegar no fim da página.
-
Siga as boas práticas de desenvolvimento React, procure utilizar componentes disponíveis em comunidades open source (como npm), repositórios no github, etc.
-
Cria recursos para Deletar e Editar o post.
-
Estas funções devem estar em um menu suspenço (estilo dropdown), no canto superior direito do post no feed, como um botão, seguindo o modelo na imagem abaixo.
Recursos adicionais não obrigatórios que podem agregar valor ao seu teste.
- Criar um ambiente em docker para executar a aplicação e o banco de dados;
- Melhores práticas e uso dos padrões de código aceitos pela comunidade Laravel/PHP/React;
- Recomendamos a utilização do framework front-end React Bootstrap, para facilitar a utlização de componentes React;
- Seja criativo! Recursos adicionais como melhorias no designe, novos componentes ou ferramentas também agregam ao seu teste.
Bom trabalho ;)


