Trilha de Projetos

Bem vindo(a)! Esta trilha de projetos te fornece gratuitamente os desafios que te fará um(a)
DEV.

A Trilha de Projetos é uma versão resumida da Trilha de Estudos.

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:

Projeto #3.2 Leitura de Codebases

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 CrudCrud usando 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"

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:

    • um campo para colocar o link do CrudCrud que:
      • 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:

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. 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:

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.

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.

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. Pratique responder às perguntas comuns de entrevistas de emprego. Anuncie que está buscando um emprego e candidate-se.