Skip to content

Latest commit

 

History

History
245 lines (158 loc) · 10.1 KB

FAQ.md

File metadata and controls

245 lines (158 loc) · 10.1 KB

Dúvidas frequentes

Abaixo estão algumas orientações e dúvidas comuns ao desenvolvimento do projeto.

Se houver qualquer outra dúvida ou problema, é só procurar a monitoria ou postar uma thread no slack. Estamos juntos! 👍

Git e GitHub

‼️ Antes de começar a desenvolver
  1. Clone o repositório

    • Copie o endereço SSH do repositório e use-o para cloná-lo em sua máquina:

      • Por exemplo: git clone git@github.com:tryber/sd-0x-project-x.git.
      Local do endereço SSH na página inicial do repositório:

      endereço SSH do repositório

    • Entre na pasta do repositório que você acabou de clonar:

      • cd <diretório-do-projeto>
  2. Crie uma branch a partir da branch master

    • Verifique que você está na branch master
      • Exemplo: git branch
    • Se não estiver, mude para a branch master
      • Exemplo: git checkout master
    • Agora crie uma branch à qual você vai submeter os commits do seu projeto
      • Você deve criar uma branch no seguinte formato: nome-de-usuario-nome-do-projeto
      • Exemplo: git checkout -b joaozinho-project-x
  3. Para cada etapa do desenvolvimento, adicione as mudanças ao stage do Git e faça um commit

    • Verifique que as mudanças ainda não estão no stage
      • Exemplo: git status (devem aparecer listadas as alterações realizadas em vermelho)
    • Adicione o novo arquivo ao stage do Git
      • Exemplo:
        • git add . (adicionando todas as mudanças - que estavam em vermelho - ao stage do Git)
        • git status (devem aparecer listadas as alterações realizadas em verde)
    • Faça o commit inicial
      • Exemplo:
        • git commit -m 'Iniciando o projeto X! #VQV 🚀' (fazendo o primeiro commit)
        • git status (deve aparecer uma mensagem tipo nothing to commit )
  4. Adicione a sua branch com o novo commit ao repositório remoto

    • Usando o exemplo anterior: git push -u origin joaozinho-sd-0x-project-x
  5. Crie um novo Pull Request (PR)

    • Vá até a página de Pull Requests do repositório no GitHub.

      Local da página de Pull Requests no repositório:

      endereço SSH do repositório

    • Clique no botão verde "New pull request"

    • Clique na caixa de seleção "Compare" e escolha a sua branch com atenção

    • Clique no botão verde "Create pull request"

    • Adicione uma descrição para o Pull Request e clique no botão verde "Create pull request"

    • Não se preocupe em preencher mais nada por enquanto!

    • Volte até a página de Pull Requests do repositório e confira que o seu Pull Request está criado

⌨️ Durante o desenvolvimento
  • Faça commits das alterações que você fizer no código regularmente

  • Lembre-se de sempre após um (ou alguns) commits atualizar o repositório remoto

  • Os comandos que você utilizará com mais frequência são:

    1. git status (para verificar o que está em vermelho - fora do stage - e o que está em verde - no stage)
    2. git add (para adicionar arquivos ao stage do Git)
    3. git commit (para criar um commit com os arquivos que estão no stage do Git)
    4. git push -u origin nome-da-branch (para enviar o commit para o repositório remoto na primeira vez que fizer o push de uma nova branch)
    5. git push (para enviar o commit para o repositório remoto após o passo anterior)
🤝 Depois de terminar o desenvolvimento (opcional)

Para "entregar" seu projeto, siga os passos a seguir:

  • Vá até a página DO SEU Pull Request, adicione a label de "code-review" e marque seus colegas
    • No menu à direita, clique no link "Labels" e escolha a label code-review
    • No menu à direita, clique no link "Assignees" e escolha o seu usuário
    • No menu à direita, clique no link "Reviewers" e digite students, selecione o time tryber/students-sd-xx onde xx é o número da sua turma

Se ainda houver alguma dúvida sobre como entregar seu projeto aqui tem um video explicativo.

🕵🏿 Revisando um pull request

Use o conteúdo sobre Code Review para te ajudar a revisar os Pull Requests.

Node e NPM

⚠️ Não rode o comando npm audit fix!
  • Ele atualiza várias dependências do projeto, e essa atualização gera conflitos com o avaliador.

Rodando o projeto com Docker Compose

⚠️ Rode comandos do NPM de dentro do container Node
  • Caso opte por utilizar o Docker, TODOS os comandos disponíveis no package.json (npm start, npm test, npm run dev, ...) devem ser executados DENTRO do container, ou seja, no terminal que aparece após a execução do comando docker exec citado acima.
⚠️ Rode comandos do Git fora do container Node
  • O git dentro do container não vem configurado com suas credenciais. Ou faça os commits fora do container, ou configure as suas credenciais do git dentro do container.
⚠️ Use a versão 1.29 do Docker Compose
  • Para que você consiga rodar o seu projeto com docker e o avaliador funcione é fundamental que o seu docker compose esteja na versão 1.29.

    • Verifique sua versão:
    docker-compose --version

    Se não for a versão 1.29, faça os seguintes comandos para atualizar a versão:

    sudo rm /usr/local/bin/docker-compose
    sudo curl -L "<https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname> -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose

Dicas

✨ Desenvolvendo o projeto no VS Code de dentro do container
  • A extensão Dev - Containers (que estará na seção de extensões recomendadas do VS Code) é indicada para que você possa desenvolver sua aplicação no container Docker direto no VS Code, como você faz com seus arquivos locais.

    Extensão Dev - Containers do VS Code

Rodando o projeto com apenas um container MySQL

⚠️ Use a versão 8.0.23 do MySQL
  • O avaliador espera que a versão do MySQL seja a 8.0.23. Em caso de erro nos testes, verifique se essa é a versão que está sendo usada por você.
🖥️ Usando variáveis de ambientes
  • Caso queira utilizar Docker apenas para um container MySQL, basta executar o comando:

    docker run -p 3306:3306 --name mysql_8 -e MYSQL_ROOT_PASSWORD=password --platform=linux/amd64 -d mysql:8.0.23 mysqld --default-authentication-plugin=mysql_native_password
    
    O que está sendo feito
    ideia geral Baixa e executa uma imagem docker do MySQL na versão 8.0.23
    flag --name Define um nome para o nosso container: mysql_8
    flag -e Define a variável de ambiente MYSQL_ROOT_PASSWORD com o valor password
    flag -d Define que o container rode em segundo plano
    flag -p Mapeia a porta local 3306 à porta 3306 do container, no formato porta-local:porta-do-container
    mysql:8.0.23 Define qual versão da imagem mysql queremos, no caso, a 8.0.23, que é a esperada pelo avaliador
    mysqld Comando a ser iniciado no container que inicia a instância do MySQL
    --default-authentication-plugin=mysql_native_password Parâmetro passado para o comando mysqld que configura a forma de autenticação usada pela instância do MySQL

    Utilizando o comando acima, para executar os testes localmente basta digitar no terminal:

    MYSQL_USER=root MYSQL_PASSWORD=password MYSQL_HOSTNAME=localhost npm test

Rodando os testes do projeto

🧪 O avaliador pode testar os requisitos fora da ordem que aparecem no README
  • O avaliador automático não necessariamente avalia seu projeto na ordem em que os requisitos aparecem no readme. Isso acontece para deixar o processo de avaliação mais rápido. Então, não se assuste se isso acontecer, ok?
🧪 Rodando os testes de forma individual

Você pode acrescentar ao comando npm test um sufixo para rodar apenas um requisito da seguinte forma: -- -t "<número-do-requisito>", por exemplo:

npm test -- -t "01"

ou, usando variáveis de ambiente na linha de comando:

MYSQL_USER=root MYSQL_PASSWORD=password MYSQL_HOSTNAME=localhost npm test -- -t "01"

Depois de completar o projeto

🗂 Compartilhe seu portfólio!

Após finalizar os requisitos, chegou a hora de mostrar ao mundo que você aprendeu algo novo! 🚀

Siga esse guia que preparamos com carinho para disponibilizar o projeto finalizado no seu GitHub pessoal.

Esse passo é super importante para ganhar mais visibilidade no mercado de trabalho, mas também é útil para manter um back-up do seu trabalho.

E você sabia que o LinkedIn é a principal rede social profissional e compartilhar o seu aprendizado lá é muito importante para quem deseja construir uma carreira de sucesso? Compartilhe esse projeto no seu LinkedIn, marque o perfil da Trybe (@trybe) e mostre para a sua rede toda a sua evolução.