Você já usa o GitHub diariamente para desenvolver os exercícios, certo? Agora, para desenvolver os projetos, você deverá seguir as instruções a seguir. Fique atento a cada passo, e se tiver qualquer dúvida, nos envie por Slack! #vqv 🚀
Aqui você vai encontrar os detalhes de como estruturar o desenvolvimento do seu projeto a partir deste repositório, utilizando uma branch específica e um Pull Request para colocar seus códigos.
Você vai refatorar parte de um CLI (command line interface) para que, ao invés de utilizar callbacks, utilize apenas Promises. Além disso, você vai implementar mais algumas funcionalidades, consumindo a mesma API que está sendo consumida. Você também adicionará testes para toda a funcionalidade desenvolvida por você.
O CLI mostra informações sobre o mundo de Game of Thrones, utilizando, como fonte dessas informações, uma API pública chamada An API of Ice And Fire.
O código deste repositório possui a funcionalidade de listar as personagens, e exibir os detalhes sobre uma personagem selecionada. Além de refatorar o código já existente, você deverá adcioinar a funcionalidade de buscar livros pelo nome, exibir os resultados, e mostrar os detalhes do livro selecionado.
Este repositório possui testes para toda a funcionalidade que já está desenvolvida. Ao refatorar o código, garanta que todos esses testes estão passando, para que você tenha certeza de que a funcionalidade continua a mesma.
Não pode haver nenhum tipo de código síncrono, ou que utilize callbacks.
Você pode trocar a biblioteca utilizada para fazer requisições HTTP, se preferir, mas a biblioteca atual já suporta Promises.
Você também pode utilizar async/await sempre que precisar manipular as promises, não sendo necessário consumi-las utilizando then
e catch
.
Ao selecionar essa opção, permitir que o usuário insira o nome do livro que deseja pesquisar.
4 - Utilizando o nome inserido, realizar uma requisição para o endpoint /books
da API, com o parâmetro ?name
contendo o nome digitado pelo usuário.
Você pode consultar a documentação deste endpoint para verificar qual o formato em que os dados serão retornados.
A lista deve exibir apenas o nome do livro, e permitir que o usuário escolha um dos livros para o qual deseja ver os detalhes.
Ambas as opções só devem ser exibidas quando de fato forem úteis, ou seja, se o usuário já estiver na primeira página, a opção "Página anterior" não deve ser exibida e, se o usuário já estiver na última página, a opção "Próxima página" não deve ser exibida.
Para entender como a paginação funciona, leia a documentação da API.
Atenção: As propriedades characters
e povCharacters
não deverão ser exibidas.
Em todos os menus, uma opção de "voltar" deve ser exibida. Essa opção deve levar o usuário para o menu anterior e, através dela, deve ser possível chegar de volta até o menu principal
Exibir, no menu principal, um menu "casas" e, dentro dele, uma opção "Listar casas".
O comportamento deve ser idêntico ao de listar personagens, inclusive a paginação, que deve atender ao requisito 6.
Atenção A propriedade swornMembers
não deve ser exibida ao selecionar uma casa.
- Clone o repositório
git clone git@github.com:tryber/sd-01-block28-a-cli-of-ice-and-fire.git
.- Entre na pasta do repositório que você acabou de clonar:
sd-01-block28-a-cli-of-ice-and-fire
- Instale as dependências
npm install
- Crie uma branch a partir da branch
master
- Verifique que você está na branch
master
- Exemplo:
git branch
- Exemplo:
- Se não estiver, mude para a branch
master
- Exemplo:
git checkout master
- Exemplo:
- Agora crie uma branch para 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-a-cli-of-ice-and-fire
- Você deve criar uma branch no seguinte formato:
- Para cada menu novo que você for adicionar, crie um diretório dentro de
lib/menus
, e adicione os arquivos do menu lá. Por exemplo, crie um menubooks
e adicione-o ao index da pastamenus
:
mkdir lib/menus/books
touch lib/menus/books/index.js
module.exports = function() {
console.log('Menu de livros')
}
// lib/menus/index.js
const books = require('./books');
const characters = require('./characters');
module.exports = {
books
characters
};
- 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
(deve aparecer listado o arquivo src/last.js em vermelho)
- Exemplo:
- Adicione o arquivo alterado ao stage do Git
- Exemplo:
git add .
(adicionando todas as mudanças - que estavam em vermelho - ao stage do Git)git status
(deve aparecer listado o arquivo src/last.js em verde)
- Exemplo:
- Faça o
commit
inicial- Exemplo:
git commit -m 'iniciando o projeto. VAMOS COM TUDO :rocket:'
(fazendo o primeiro commit)git status
(deve aparecer uma mensagem tipo nothing to commit )
- Exemplo:
- Adicione a sua branch com o novo
commit
ao repositório remoto
- Usando o exemplo anterior:
git push -u origin joaozinho-a-cli-of-ice-and-fire
- Crie um novo
Pull Request
(PR)
- Vá até a página de Pull Requests do repositório no GitHub
- 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
-
⚠ LEMBRE-SE DE CRIAR TODOS OS ARQUIVOS DENTRO DA PASTA COM O SEU NOME ⚠
-
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:
git status
(para verificar o que está em vermelho - fora do stage - e o que está em verde - no stage)git add
(para adicionar arquivos ao stage do Git)git commit
(para criar um commit com os arquivos que estão no stage do Git)git push -u nome-da-branch
(para enviar o commit para o repositório remoto na primeira vez que fizer opush
de uma nova branch)git push
(para enviar o commit para o repositório remoto após o passo anterior)
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 timetryber/students-sd-02
Se ainda houver alguma dúvida sobre como entregar seu projeto, aqui tem um video explicativo.
⚠⚠⚠
À medida que você e os outros alunos forem entregando os projetos, vocês serão alertados via Slack para também fazer a revisão dos Pull Requests dos seus colegas. Fiquem atentos às mensagens do "Pull Reminders" no Slack!
Os monitores também farão a revisão de todos os projetos, e irão avaliar tanto o seu Pull Request, quanto as revisões que você fizer nos Pull Requests dos seus colegas!!!
Use o material que você já viu sobre Code Review para te ajudar a revisar os projetos que chegaram para você.