Skip to content

Latest commit

 

History

History
209 lines (118 loc) · 9.75 KB

README.MD

File metadata and controls

209 lines (118 loc) · 9.75 KB

Boas vindas ao repositório do projeto WebChat!

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.


Instruções para entregar seu projeto:

🗒ANTES DE COMEÇAR A DESENVOLVER:

  1. Clone o repositório

    • git clone https://github.com/tryber/sd-0x-project-webchat.git.
    • Entre na pasta do repositório que você acabou de clonar:
      • cd sd-0x-project-webchat
  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 onde você vai guardar os commits do seu projeto
      • Você deve criar uma branch no seguinte formato: nome-de-usuario-nome-do-projeto
      • Exemplo: git checkout -b joaozinho-webchat-project
  3. Crie na raiz do projeto os arquivos que você precisará desenvolver:

    • Verifique que você está na raiz do projeto
      • Exemplo: pwd -> o retorno vai ser algo tipo /Users/joaozinho/code/sd-0x-project-webchat
    • Crie os arquivos index.html, style.css e script.js
      • Exemplo: touch index.html style.css script.js
  4. 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 listados os novos arquivos 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 listados os arquivos em verde)
    • 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 )
  5. Adicione a sua branch com o novo commit ao repositório remoto

    • Usando o exemplo anterior: git push -u origin joaozinho-webchat-project
  6. 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, um título claro que o identifique, 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

Entregáveis

Para entregar o seu projeto você deverá criar um Pull Request neste repositório.

Lembre-se que você pode consultar nosso conteúdo sobre Git & GitHub sempre que precisar!


Requisitos do projeto

👀 Observações importantes:

  • Você tem liberdade para adicionar novos comportamentos ao seu projeto, seja na forma de aperfeiçoamentos em requisitos propostos ou novas funcionalidades, desde que tais comportamentos adicionais não conflitem com os requisitos propostos.

    • Em outras palavras, você pode fazer mais do que for pedido, mas nunca menos.
  • Contudo, tenha em mente que nada além do que for pedido nos requisitos será avaliado. Esta é uma oportunidade de você exercitar sua criatividade e experimentar com os conhecimentos adquiridos.

Leia todo este documento e se inteire de tudo que o projeto pede antes de começar o desenvolvimento. Montar uma estratégia para construir o projeto e atender os seus requisitos faz parte do trabalho.


Requisitos Obrigatórios:

1 - Sua aplicação deverá ter um back-end que permite que várias pessoas se conectem simultâneamente e mandem mensagens em um chat

As seguintes verificações serão feitas:
  • A aplicação deverá permitir que vários clientes se conectem a um chat ao mesmo tempo;

  • Cada cliente conectado ao chat deverá receber todas as mensagens que já foram enviadas no chat;

  • Toda mensagem que um cliente recebe deve conter as informações acerca de quem a enviou, data-hora do envio e o conteúdo da mensagem em si. A data-hora das mensagens deve ser determinada pelo momento em que são salvas no banco de dados (ver requisito 3).

2 - Sua aplicação deverá ter um front-end em que quem usa consiga interagir com o chat

As seguintes verificações serão feitas:
  • O front-end deve exibir todas as mensagens já enviadas no chat, mantendo as mais recentes na parte debaixo da tela;

  • O front-end deve ter uma caixa de texto através da qual quem usa consiga enviar mensagens para o chat;

  • O front-end deve permitir a quem usa escolher um apelido (nickname) para si. Para que o cliente consiga escolher um apelido deve ter um campo de texto e um botão no front-end. O campo de texto será onde o cliente digitará o nickname que deseja. Após escolher o nickname, o cliente deverá clicar no botão para que o dado seja salvo no MongoDB.

3 - O histórico do chat deverá persistir mesmo que o servidor do chat seja fechado e reaberto

As seguintes verificações serão feitas:
  • Você deve configurar um banco de dados MongoDB, onde cada linha contém uma mensagem enviada;

  • O seu banco de dados deve salvar o nickname de quem enviou a mensagem, a mensagem em si e uma timestamp com precisão de segundos de quando ela foi salva no banco.

4 - Sua aplicação deve enviar uma push notification aos clientes quando uma nova mensagem chegar no chat

As seguintes verificações serão feitas:
  • Quando uma nova mensagem chegar no chat, todos os clientes deverão receber uma push notification com tal alerta.

5 - O seu back-end deve ter 100% de cobertura de testes automatizados

As seguintes verificações serão feitas:
  • A cobertura de testes do back-end deve ser de 100%;

  • Se qualquer uma das funções do seu back-end tiver o conteúdo apagado os seus testes devem quebrar.

Requisitos Bônus

6 - Sua aplicação deverá informar a todos os clientes quem está online num dado momento

As seguintes verificações serão feitas:
  • No front-end deve haver uma lista, na tela de cada cliente, que mostra quais clientes estão online em um dado momento. Um cliente é identificado pelo seu nickname.

7 - Sua aplicação deverá permitir a quem usa trocar mensagens particulares

As seguintes verificações serão feitas:
  • No front-end deve haver uma lista com todos os clientes e, ao lado de cada identificador, um botão. Um clique nesse botão deve direcionar as pessoas para um chat privado;

  • No front-end deve ser possível navegar entre os chats privados ou o chat geral numa mesma janela;

  • Mensagens particulares só devem ser visíveis para as partes pertinentes. Clientes terceiros não devem poder acessar seu conteúdo.

8 - O seu front-end deve ter 100% de cobertura de testes automatizados

As seguintes verificações serão feitas:
  • A cobertura de testes do front-end deve ser de 100%;

  • Se qualquer uma das funções do seu front-end tiver o conteúdo apagado os seus testes devem quebrar.


Dicas

  • Para colocar sua página no GitHub Pages, não é necessário remover o conteúdo que já está lá, você pode apenas adicionar essa nova página. Para isso, todo o conteúdo desse projeto deve ser colocado em uma pasta /projetos/todo-list;

  • Tomar decisões de projeto em prol do bom desenvolvimento faz parte do projeto! Interprete os requisitos, tome suas decisões e, em caso de dúvidas, valide-as conosco no Slack!


DURANTE O DESENVOLVIMENTO

  • RECOMENDAMOS QUE VOCÊ FIQUE ATENTO ÀS ISSUES DO CODE CLIMATE, PARA RESOLVÊ-LAS ANTES DE FINALIZAR 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 (o famoso git push);

  • 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 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 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 time tryber/students-sd-0x.

Caso tenha alguma dúvida, aqui tem um video explicativo.


REVISANDO UM PULL REQUEST

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

#VQV 🚀