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 desse repositório, utilizando uma branch específica e um Pull Request para colocar seus códigos.
- Clone o repositório
git clone https://github.com/tryber/sd-04-mongodb-dataflights.git
.- Entre na pasta do repositório que você acabou de clonar:
cd sd-04-mongodb-dataflights
- 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 à 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 seunome-mongodb-dataflights
- Você deve criar uma branch no seguinte formato:
- Para cada exercício você deve criar um novo arquivo JS dentro de uma pasta na raiz do seu projeto chamada
challenges
seguindo a seguinte estrutura:
- desafio1.js, desafio2.js, ..., desafioN.js
- 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 o arquivo que você alterou como desafio1.js)
- Exemplo:
- Adicione o novo arquivo ao stage do Git
- Exemplo:
git add .
(adicionando arquivo de solução challenges/desafio1.js para desafio 1)git status
(deve aparecer listado o arquivo challenges/desafio1.js em verde)
- Exemplo:
- Faça o
commit
inicial- Exemplo:
git commit -m 'iniciando o projeto MongoDB dataflights'
(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 seunome-mongodb-dataflights
- 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
Temos, neste projeto, uma série de desafios com diferentes níveis de complexidade que devem ser resolvidos cada um em seu arquivo próprio.
-
Leia a pergunta e crie no diretório
challenges
um arquivo chamadodesafioN.js
, em que N é o número do desafio. -
O arquivo deve conter apenas o código MQL (Mongo Query Language) do desafio resolvido. Não se esqueça de incluir o ponto e vírgula (";") no final de suas queries, como no exemplo a seguir:
db.voos.find();
⚠️ Restrições⚠️ :-
Não se deve usar aspas simples para especificar campos e/ou valores. Quando for necessário usar aspas, use somente aspas duplas;
-
Não se deve usar o comando
use dataFlights
, haja visto que os testes já se conectam automaticamente à basedataFlights
.
-
-
Faça isso até finalizar todos os desafios e depois siga as instruções de como entregar o projeto em Instruções para entregar seu projeto.
-
Para entregar o seu projeto você deverá criar um Pull Request neste repositório. Este Pull Request deverá conter no diretório
challenges
os arquivosdesafio1.js
,desafio2.js
e assim por diante até odesafio28.js
, que conterão seu códigoMQL
de cada desafio, respectivamente.
Qualquer dúvida, procure a monitoria. Lembre-se que você pode consultar nosso conteúdo sobre Git & GitHub sempre que precisar!
Hoje você fará um projeto com o codinome dataflights. Neste projeto, você praticará todos os conceitos de MongoDB já ensinados até aqui.
Porém, você usará um banco de dados diferente dos utilizados nos exemplos e exercícios vistos até agora. Chamaremos esse banco de dataFlights
. As instruções de como restaurar o banco podem ser lidas a seguir.
-
Abra o terminal e conecte-se à sua instância local do MongoDB. Se você receber uma mensagem de erro com uma mensagem como Connection refused, tente reiniciar sua instância (veja como fazer isso aqui).
-
Agora que você tem certeza de que a sua instância está no ar e que você está conectado a ela, digite
exit
. Você voltará ao terminal para iniciar a importação dos dados. -
Na raiz do diretório do projeto, execute o seguinte comando que fará a restauração da base de dados
dataFlights
:DBNAME=dataFlights ./scripts/resetdb.sh assets
- A execução desse script criará um banco de dados chamado
dataFlights
e importará os dados para a coleçãovoos
.
dataFlights
, se atente a salvar seu progresso nos arquivos de desafio!
Para executar localmente os testes, é preciso escrever o seguinte comando no seu terminal, estando na raiz do diretório do projeto:
./scripts/evaluate.sh
Esse script passará por todos os desafios e imprimirá um relatório indicando se passou ou não para cada desafio. Como a execução do script envolve restauração da base de dados dataFlights
de um teste para outro, recomenda-se esperar pela sua execução completa.
Retorne a quantidade de documentos inseridos na coleção voos
.
Retorne os 10 primeiros documentos com voos da empresa AZUL
.
Retorne a quantidade de voos da empresa AZUL
.
Retorne a quantidade de voos da empresa GOL
.
Retorne o vooId
do décimo ao décimo segundo documento da coleção voos
.
Retorne apenas os campos empresa.sigla
, empresa.nome
e passageiros
do voo com o campo vooId
igual a 756807
.
Retorne a quantidade de voos em que o ano seja menor do que 2017
.
Retorne a quantidade de voos em que o ano seja maior do que 2016
.
Retorne a quantidade de voos dos anos de 2017
e 2018
.
Retorne apenas os 10 primeiros documentos com voos da empresa GOL
do ano de 2017
. Exiba apenas os campos vooId
, empresa.nome
, aeroportoOrigem.nome
, aeroportoDestino.nome
, mes
e ano
.
Retorne a quantidade de documentos em que o campo aeroportoDestino.pais
não seja igual a ESTADOS UNIDOS
.
Conte os documentos em que o campo aeroportoDestino.pais
seja igual a BRASIL
, ARGENTINA
ou CHILE
.
Conte os documentos em que o campo aeroportoDestino.continente
não seja igual a EUROPA
, ÁSIA
e OCEANIA
.
Retorne o total de voos em que o país de origem não seja BRASIL
.
Retorne o total de voos com mais de 20 decolagens
.
Retorne o total de voos em que o campo natureza
possui o valor Internacional
.
Retorne o total de voos em que o campo natureza
possui o valor Doméstica
.
Retorne o vooId
, mes
e ano
do primeiro voo com mais de 7000
passageiros pagos.
Retorne o vooId
do primeiro voo em que o campo litrosCombustivel
exista.
Retorne o vooId
do primeiro voo em que o campo rtk
não exista.
Retorne o vooId
do primeiro voo em que o campo litrosCombustivel
seja maior ou igual a 1000
.
Retorne o vooId
do primeiro voo em que a empresa seja DELTA AIRLINES
ou AMERICAN AIRLINES
, a sigla do aeroporto de origem seja SBGR
e a sigla do aeroporto de destino seja KJFK
.
Retorne o vooId
e litrosCombustivel
do primeiro voo em que o campo litrosCombustivel
não seja maior do que 1000
e o campo litrosCombustivel
exista.
Retorne o vooId
, empresa.nome
e litrosCombustivel
do primeiro voo em que litrosCombustivel
não seja maior do que 600
e a empresa não seja GOL
ou AZUL
, e o campo litrosCombustivel
exista.
Remova todos os voos da empresa AZUL
em que a quantidade de combustível seja menor do que 400
. Informe a quantidade de documentos removidos.
Remova todos os voos da empresa GOL
em que a quantidade de passageiros pagos esteja entre 5
e 10
, incluindo os casos em que a quantidade é 5
e 10
. Informe a quantidade de documentos removidos.
Retorne a quantidade total de voos de natureza Doméstica
que a empresa PASSAREDO
possui, via uso de uma nova coleção chamada resumoVoos
.
Ou seja, a coleção resumoVoos
conterá documentos onde cada um indica para cada empresa a quantidade total de voos que ela possui de natureza Doméstica
.
Para isso, escreva no arquivo desafio27.js
duas queries, nesta ordem:
-
Conte quantos voos da empresa
PASSAREDO
cujo camponatureza
possua valor igual aDoméstica
e crie uma query que insira na coleçãoresumoVoos
um documento com os campos:empresa
(nome da empresa) etotalVoosDomesticos
(o total retornado anteriormente). -
Em uma segunda query, retorne a
empresa
e ototalVoosDomesticos
do primeiro documento presente na coleçãoresumoVoos
em que a empresa sejaPASSAREDO
.
Retorne a quantidade total de voos de natureza Doméstica
que a empresa LATAM AIRLINES BRASIL
possui, via uso de uma nova coleção chamada resumoVoos
.
Para isso, escreva no arquivo desafio28.js
duas queries, nesta ordem:
-
Conte quantos voos da empresa
LATAM AIRLINES BRASIL
cujo camponatureza
possua valor igual aDoméstica
e crie uma query que insira na coleçãoresumoVoos
um documento com os campos:empresa
(nome da empresa) etotalVoosDomesticos
(o total retornado anteriormente). -
Em uma segunda query, retorne a
empresa
e ototalVoosDomesticos
do primeiro documento presente na coleçãoresumoVoos
em que a empresa sejaLATAM AIRLINES BRASIL
.
-
⚠ LEMBRE-SE DE CRIAR TODOS OS ARQUIVOS DENTRO DA PASTA
challenges
⚠ -
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 sinalizar que o seu projeto está pronto para o "Code Review" dos seus colegas, faça o seguinte:
-
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-04
.
-
Caso tenha alguma dúvida, aqui tem um video explicativo.
Use o conteúdo sobre Code Review para te ajudar a revisar os Pull Requests.
#VQV 🚀