Projeto desenvolvido durante o bootcamp de frontend avançado JAMStack da Alura. Durante os módulos do bootcamp, passamos por estilizações dos componentes com styled-componentes, processo de integração e entrega contínua, validação de formulário, conceitos de arquitetura, vimos testes com Jest, Cypress e React Testing Library, como hospedar aplicações na vercel, como e o porquê de usar graphQL, como montar um design systems utilizando storybook, como trabalhar com monorepo configurando ambiente com yarn workspace, aprendemos a incluir typescript no projeto, fora inúmeras boas práticas que desenvolvemos ao longo desses módulos.
https://bootcamp-instalura.vercel.app/
Clone the project
git clone https://github.com/mayrazan/bootcamp-instalura.git
Go to the project directory
cd my-project
Install dependencies
yarn install
Start the server
yarn start
Execute create-next-app
with npm or Yarn to bootstrap the example:
npx create-next-app --example with-styled-components with-styled-components-app
# or
yarn create next-app --example with-styled-components with-styled-components-app
- React
- NextJS
- Styled-Components
- Framer-motion
- React Lottie
- Prop-Types
1) Criar a página /app/profile
-
Layout: figma
-
Criar o menu da área logado
-
Implementar em código React o layout da página de perfil usando toda a estrutura de componentes criada no módulo 1 e aprimorada ao longo do Curso (usando Grid, Text, Modal...)
2) Criar o registro de imagens
- No menu existe um botão "+" que ao ser clicado, deverá abrir um modal: Layout
- Esse modal deverá receber uma URL, após isso o botão avançar irá ser mostrado
- Após avançar, o usuário poderá clicar em um quadrado, estilo o próprio instagram, com o preview da URL que ele inseriu na etapa anterior. Layout
- Esse click vai uma classe CSS que aplica um filtro estilo instagram baseado nesse projeto
- Carrossel para mostrar as diversas opções
- Ao final, quando o usuário clicar em postar, deve ser enviado para esse endpoint: /api/posts/
- O post deve aparecer no feed do usuário
3) Criar a opção de dar like em uma foto do feed
- O botão de like por padrão não aparece, somente quando damos "focus" ou "hover" nas imagens
- Ao clicar, o coração deverá ficar vermelho (fazer efeito com lottie é um bônus)
- O número de likes deve incrementar ou decrementar
Obrigatório
- Criar um Teste no cypress fazendo o fluxo de adicionar uma imagem no Feed
Testes
- Fazer lazy loading nas imagens do feed
- Evite carregar todas na hora que a página carrega
- Fazer testes para todos os serviços criados para abstrair conexão com backend e guardar lógicas em cima disso
- Fazer testes para os componentes Criados
Typescript e Storybook
- Como desafio final supremo, você precisa migrar todos os componentes que temos no projeto para dentro do Storybook, além de mudar trechos da base de código que hoje é em javascript para typescript.
URL base da API: https://instalura-api.vercel.app/
Login URL: /api/login/ Body:
{
"username": "omariosouto",
"password": "senhasegura"
}
Feed do Usuário URL: /api/users/posts/
Headers: Lembrar de enviar o TOKEN do usuário em Authorization
Criar post URL: /api/posts/
Headers: Lembrar de enviar o TOKEN do usuário em Authorization
Body:
{
"photoUrl": "https://unavatar.now.sh/github/omariosouto",
"description": "Legenda do post",
"filter": "none" // Remember to add options as named here: https://picturepan2.github.io/instagram.css/
}
Like/Dislike URL: /api/posts//like (ID exemplo: 60649c6682bf5808e2b0d472)
Headers: Lembrar de enviar o TOKEN do usuário em Authorization
Body:
{}