Cada módulo conta com uma discussão sobre o assunto, uma meta de
estudos em horas de recursos como apostilas, vídeos, artigos e
tutoriais na sua respectiva seção dentro da Trilha de Estudos.
Este material foi elaborado com base em experiências pessoais e em
pesquisas de mercado e está em constante evolução.
Projeto #1 Primeiros Passos
Instalar o Git e o GitHub Desktop
Criar uma conta no GitHub
Criar um repositório
Baixar o repositório
Abrí-lo no VSCode
Fazer um commit pelo VSCode (e conferir se foi para o
GitHub)
Projeto #2 Bootstrap
Crie uma página utilizando HTML e
similar a esse
PDF.
Garanta que a página também esteja bem estruturada para versão mobile,
como neste
PDF.
Lembre-se: a versão mobile é em
geral o mais acessado.
Projeto #3.1 Beecrowd
O objetivo do primeiro projeto é te introduzir à criação e estruturação de pequenos
códigos.
Crie uma conta no Beecrowd e resolva os seguintes problemas:
O objetivo desse projeto é te trazer familiaridade com os comandos
Javascript
e como eles são estruturados em um site real.
Para isso, você deverá baixar o seguinte
repositório
que contém os seguintes projetos: calculadora, jogo da memória, jogo da velha, truco e
jokenpo.
Execute os projetos em seu computador e leia todos seus arquivos.
Projeto #3.3 Exercícios DOM
Interações no DOM.
O objetivo desse projeto é reproduzir as interações mais comuns em diferentes páginas web.
Essas interações se repetem nos diversos sistemas, não importando se são blogs, lojas ou jogos.
Resolva os exercícios contidos
nesta página
Projeto #4.1 Interação com CrudCrud usando Thunder Client
Em todas as atividades desta etapa você usará o serviço gratuito
CrudCrud,
que é uma API conveniente na criação de aplicações de teste ou protótipos.
Interação com CrudCrudusando Thunder Client.
O objetivo da primeira atividade é ambientar com o uso de uma API Client,
um software especializado em interagir com APIs.
O uso do Thunder Client é indicado por ser uma extensão do VSCode, nosso ambiente de desenvolvimento
escolhido.
Pegue o link disponibilizado em crudcrud.com
e faça um total de 6 requisições HTTP, sempre na rota "/pessoas"
Liste todos os registros.
Adicione um registro contendo o nome de uma pessoa.
Exiba exclusivamente o registro alterado.
Altere o nome do registro.
Liste todos os registros.
Delete o registro.
Projeto #4.2 Interação com CrudCrud usando Javascript
Nesta atividade, você realizará exatamente as mesmas requisições HTTP.
Portanto, ao listar todos os registros, também na rota "/pessoas", a resposta deve conter nenhum registro.
Utilize o método "fetch" para realizar essas requisições individualmente.
Você pode fazer de qualquer forma no Javascript: em uma página,
no playground ou mesmo diretamente no console do DevTools.
Projeto #4.3 Página web interagindo com CrudCrud
Agora finalmente crie uma página completa, que envie requisições para o link disponibilizado pelo
crudcrud.com na rota "/pessoas"
e trate as respostas recebida do servidor.
Agora finalmente crie uma página completa, contendo:
ao perder o foco (blur) envia uma requisição de listar
todas as pessoas e:
caso registros existam, criar a tabela descrita a
baixo;
caso nenhum registro exista, exibir a mensagem:
"Nenhuma pessoa cadastrada.";
um botão para adicionar pessoas;
uma modal que aparece ao clicar nesse botão;
um formulário para inserir a pessoa dentro da modal
contendo:
text para o Nome e Email;
radio button para o Tipo: Cliente, Fornecedor ou
Empregado, que:
deve mapear estes tipos para 1, 2 e 3;
botão para cancelar que fecha a modal;
botão para inserir a pessoa que faz:
valida se todos os campos estão preenchidos;
valida se é um email válido;
envia a requisição para criar a pessoa;
exibe a mensagem de sucesso ou erro;
uma tabela que lista todas as pessoas cadastradas e que
contém:
o nome de cada coluna (Nome, Email e Tipo);
os dados de cada pessoa em cada linha, onde:
tipo deve ser exibido por extenso, em vez de 1, 2 e
3
um botão de deletar que abre um diálogo de confirmação
que faz ao confirmar:
envia a requisição de deletar;
exibe a mensagem de sucesso ou erro;
um botão de editar que abre uma modal que:
conteḿ um formulário de edição, similar ao inserir;
os campos devem estarem preenchidos com os valores
da pessoa correspondente;
um botão de cancelar que fecha a modal
um botão de confirmar a edição que:
realiza as mesmas verificações que a inserção;
enviar a requisição de editar;
exibe mensagem de sucesso ou erro.
Como os dados são salvos no CrudCrud,
recarregar a página ou fechar e abrir novamente deve exibir os dados atuais.
Atenção! Você possui apenas 100 requisições diárias. Sua aplicação ficará indisponível ao atingir este
limite.
Confira essa página como exemplo
Projeto #4.4 Testando com Playwright
Agora que temos a página finalizada, você deve criar testes automatizados para ela usando o
playwright
O Playwright é uma ferramenta que simula o uso real de uma página web utilizando um navegador.
Com ela, você acessa páginas, clica em botões, lê textos e valores e mais.
Faça um código para o Playwright interagir com a sua página criada no projeto anterior. Ela deve pegar um
link do CrudCrud,
preencher no seu site e garantir o sucesso de cada operações possíveis e
também garantir que operações inválidas não funcionem.
Exemplos de casos de testes:
adicionar uma pessoa e verificar se os dados da
pessoa
estão sendo apresentados corretamente na tabela.
remover a pessoa criada e verificar que não
aparece
mais na tabela.
tentar adicionar uma pessoa sem seus dados
e garantir que seja exibido um erro.
Projeto #5.1 Manipulador de arquivos
Neste projeto, você deverá exibir, criar, alterar, remover e mover arquivos do seu sistema.
Além disso, seu código deverá ser capaz de receber argumentos pela linha de comando.
node meu_cli.js exibir arquivo_teste.txt
O conteúdo do arquivo deve aparecer integralmente na tela.
node meu_cli.js criar arquivo_teste.txt "Meu
texto a ser gravado no arquivo"
Deve criar um arquivo com o nome passado no segundo argumento (arquivo_teste.txt)
e contendo o texto que foi passado como terceiro argumento ("Meu texto a ser gravado no arquivo").
node meu_cli.js alterar arquivo_teste.txt
"Mudei o texto aqui" Deve alterar o arquivo de nome passado no segundo argumento
(arquivo_teste.txt) para que seu conteúdo
seja o texto que foi passado como terceiro argumento ("Mudei o texto aqui").
node meu_cli.js remover arquivo_teste.txt
Deve deletar o arquivo de nome passado no segundo argumento (arquivo_teste.txt)
node meu_cli.js mover arquivo_teste.txt
C:/pasta_destino/arquivo_teste.txt
Deve mover o arquivo de nome passado no segundo argumento (arquivo_teste.txt) para o caminho passado
no terceiro argumento (C:/pasta_destino/arquivo_teste.txt)
node meu_cli.js OU node meu_cli.js help
Deve exibir a lista de comandos possíveis e uma descrição de como usá-los.
Você deve validar todos os parâmetros, de forma que ao passar parâmetros inválidos,
seu programa deverá exibir uma mensagem de erro e exibir a lista de comandos e suas instruções de uso.
Uma outra ideia é fazer o programa renomear todos os arquivos de uma pasta conforme um dado critério.
Ou ainda, agrupar os arquivos em diferentes pastas conforme sua extensão.
Projeto #5.2 Backend para Frontend
Este projeto objetiva criar um backend que interaja com o
frontend (projeto 3) criado no módulo #3,
substituindo o crudcrud.com
Crie um servidor web utilizando Express.JS, com um banco de dados MySQL ou MongoDB
(sugiro que faça os dois, um de cada vez).
Para utilizar a sua API, coloque o endereço IP do seu backend no frontend, em vez do endereço do
crudcrud.com
Você pode utilizar tanto o próprio frontend quanto um API Client (como o Thunder Client)
para desenvolver e testar sua aplicação backend.
Após finalizá-la, garanta que o frontend esteja funcionando sem problemas com o backend criado.
crudcrud.com
Projeto #5.3 Testar com o Supertest
Agora que finalizamos a API, você deve criar testes automatizados para
ela usando o Supertest.
O Supertest é uma ferramenta que simula as interações que o frontend faria com o backend.
Faça um código que envie requisições HTTP para a aplicação backend que você construiu no projeto anterior.
Ela deve testar todas as rotas, simulando um uso real da aplicação.
Exemplos de casos de testes:
verificar que a
listagem de pessoas está vazia.
inserir uma nova
pessoa e conferir se foi adicionado na rota de listagem.
editar/deletar e
conferir.
editar/deletar um
usuário que não existe.
fazer requisições
inválidas que retornem erros (caso sua API tenha alguma validação).
Projeto #6.1 Segunda linguagem
Usar NodeJS para o backend é uma opção. Mas por que não aprender uma segunda? Melhora seu currículo.
E o que você vai aprender com ela é um conhecimento que você vai carregar caso volte para o NodeJS no
futuro.
Escolha uma das linguagens a seguir: C#, Java, PHP ou Python.
Tá em dúvida? Procure saber quais outras atividades essas linguagens são boas além de desenvolvimento web
e veja com o que você se identifica mais. Por exemplo: C# é usado para jogos,
Java é usado para desenvolver aplicativos Android,
PHP é realmente focada em web e Python é usado para ciência de dados.
Durante o processo de familiarização com a linguagem escolhida,
você deve implementar testes unitários para os códigos que está escrevendo.
Escolha uma ferramenta de teste unitário e utilize os projetos de Aprofundamento 3 do módulo Javascript
do terceiro módulo como conteúdo para o estudo da nova linguagem.
Projeto #6.2 Framework Backend
Aprenda o framework indicado: .NET para C#, Spring Boot para Java,
Laravel para PHP e Django para Python.
Todos eles são altamentes produtivos e possuem a maior quantidade de vagas de trabalho.
Todos eles possuem alguma desvantagem, mas apenas escolha um e vá até o fim.
Baixe o repositório
correspondente ao seu framework em CodebaseShow e se ambiente minimamente ao código.
Entre na documentação
oficial do framework e leia o máximo possível.
Reproduza alguns dos
exemplos mostrados.
Reproduza algum tutorial.
Estude o código do próprio framework.
Escolha algum conceito apresentado pela documentação (ex: o ciclo de vida de uma requisição) e procure
no código do
framework onde e como aquele comportamento foi programado.
Projeto #6.3 Framework Frontend
Aprenda ReactJS. Essa tecnologia realmente domina o mercado.
Apesar de outros frameworks também possuirem vagas e terem seus pontos positivos (ou simplesmente serem
melhores que React), você tem mais chances com ele.
A abordagem de estudos deve ser basicamente a mesma, exceto pela recomendação em aprender Typescript.
Typescript basicamente é Javascript com algumas funcionalidades a mais.
Ela está presente na maior parte dos projetos e depois de aprendê-lo com React, não será difícil usar
somente Javascript se necessário.
Baixe um repositório ReactJS com Typescript em
CodebaseShow
e se ambiente minimamente ao código.
Entre na documentação oficial do framework e
leia o máximo possível.
Reproduza alguns dos exemplos mostrados.
Reproduza algum tutorial.
Projeto #6.4 Adicionar novas funcionalidades a um software já existente
É aqui o ápice da Trilha de Estudos.
Se você ainda não grava vídeos ou escreve sobre os seus estudos, fortemente recomendo que comece agora. Não
apenas pessoas que podem te contratar saberão sobre você, mas também irá conseguir experiência para falar
sobre assuntos técnicos.
Quase como se você estivesse se preparando para uma entrevista.
Em uma entrevista vão te fazer perguntas difíceis. Treine com pessoas reais nas redes sociais.
Dê seu melhor criando um software que vá impressionar um recrutador.