Skip to content

Laboratoria/SAP007-trivia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trivia

Índice


1. Preâmbulo

Trivia é um tipo de jogo, geralmente no âmbito de uma competição, no qual se coloca uma série de perguntas cujas respostas devem ser escolhidas entre diferentes opções pré-determinadas.

Atualmente, existem muitas possibilidades de participar de uma trivia online. Com uma busca rápida na internet, você poderá perceber que existem trivias sobre diversos temas (ciências, séries, televisão etc.).

TRIVIA

2. Resumo do projeto

O que devo fazer exatamente? Obviamente, você vai criar o aplicativo web de uma trivia. Não tenha medo, você vai aprender muito nesses dias.

O objetivo principal deste projeto é que você tenha uma primeira experiência no desenvolvimento de aplicativos Web que interajam com as usuárias através do navegador, utilizando HTML, CSS e JavaScript.

O tema é livre, decida rapidamente e depois pense em como deve ser a experiência para suas usuárias. Pense nas telas, no fluxo, nas mensagens, cores etc.

3. Objetivos de aprendizagem

Reflita e depois enumere os objetivos que quer alcançar e aplique no seu projeto. Pense nisso para decidir sua estratégia de trabalho.

HTML

CSS

Web APIs

JavaScript

  • Uso de identificadores descritivos (Nomenclatura | Semântica)

UX (User eXperience)

  • Desenhar a aplicação pensando e entendendo o usuário

  • Criar protótipos para obter feedback e iterar

4. Considerações gerais

  • Concluir o projeto não é um requisito para ser admitida no bootcamp.
  • Este projeto deve ser feito em dupla.
  • Certifique-se de que ambas possam fazer e aprender tudo. Não se trata de "dividir" o trabalho para fazer "mais". O objetivo é aprender colaborativamente, e não "terminar e entregar".
  • Queremos que você aprenda o que ainda não sabe. Seja transparente para que possamos entender seu processo de aprendizagem. Estamos interessados no processo e não apenas no resultado final.

5. Recomendações

5.1. Protótipo

Algo que sempre ajuda a "concretizar" o que você tem em mente é fazer um protótipo simples de todo o projeto no papel. Desenhar é um processo rápido que permite entender como, quando e onde as coisas acontecem; onde exatamente você deve dizer isso ou aquilo, o que acontece se a usuária fizer A ou B, onde ela deve clicar, quais informações exatamente você deseja mostrar a ela etc. Gaste um máximo de duas horas nisso antes de começar a programar.

5.2. Não adie o que você não sabe fazer, comece por aí

Não gaste horas discutindo o tema da trivia ou fazendo logotipos com a sensação de que você está "avançando". É natural que você tenha o impulso de fazer isso - é o seu cérebro pedindo um pouco de satisfação imediata. Não se deixe enganar pela "ilusão" de avanço; seu objetivo é aprender. Enfrente o mais rápido possível o que você não sabe, pois essa é a única maneira de alcançá-lo.

5.3 Aprender acima de concluir o projeto

Evite a tentação de copiar e colar código que "funciona" para concluir o projeto sem entender como ou por que funciona. Prefira sempre fazer pouco, mas que seja algo que você entende e pode explicar, ao invés de fazer muito que funciona pela metade e/ou que você não sabe bem como ou por que funciona.

5.4 Divida o problema maior em problemas menores

Um "superpoder" que esperamos que você possa desenvolver durante o bootcamp é definir "microprojetos" que o levarão passo a passo, mas transversalmente, à solução do "grande projeto". Poderíamos dizer que é como começar montando um quebra-cabeça pelos cantos ou arestas sem necessariamente saber como eles vão se encaixar no final. Deixe-se levar e explore livremente. Você não precisa saber tudo antes de começar.

Posteriormente, daremos algumas sugestões como exemplo.

6. Escopo do projeto

Sabemos que cada uma de vocês sabe um pouco mais ou menos sobre Desenvolvimento Web. Não esquecemos que cada uma tem experiências de vida e motivações diferentes, personalidades diferentes, aprende no seu ritmo etc. Fingir que tudo isso não existe e pedir a todas que aprendam e concluam de forma idêntica seria um absurdo. Propomos que você trabalhe em marcos ou etapas incrementais de acordo com suas possibilidades. Não esperamos que todas completem os 3 marcos.

Não trabalhe como se fosse uma fábrica fazendo toooooooooooooooooodo o HTML e CSS de todas as telas que você imaginou para depois começar com tooooooooooooooooooooodo o JavaScript e a funcionalidade. O risco de trabalhar assim é que você obtenha muitas partes sem nenhuma ou meia funcionalidade e aprenda pouco; não faça o inverso também - muitas funcionalidades no console, mas sem uma interface que possa ser usada por uma usuária não desenvolvedora.

A metáfora a seguir pode ajudá-la a entender melhor a ideia.

AGILE

Essas etapas, do skate ao carro, são o que chamaremos de "marcos". Você é livre para seguir esta recomendação ou trabalhar como preferir. Pode ser útil se você está apenas começando a aprender Desenvolvimento Web - você decide.

Alerta de spoiler: vá praticando tomar suas próprias decisões de aprendizagem, pois assim serão os 6 meses de bootcamp.


Marco 1

A versão mais simples de uma trivia.

  • 1 única tela ou visualização.
  • 2 questões com pelo menos 3 alternativas de resposta cada.
  • 1 botão para responder e ver qual é a alternativa correta.

Não informa se você estava correto ou não, apenas informa qual alternativa estava correta.

Sugestão de microprojeto A

Somente o "esqueleto" estático

  • Duas perguntas com as suas respectivas alternativas de respostas em forma de radio buttons (🔘)
  • Um botão para “Responder e ver resultados”.

O que você aprenderá

Como construir uma página básica HTML com elementos de formulário.

Sugestão de microprojeto B

Experimente dar alguma interação

Quando a usuária der um click em algum dos radio button, mostre uma mensagem de alerta (alert) no navegador que contenha o valor (texto) do radio button clicado.

Dica: Para mostrar uma mensagem de alerta básica há uma função JavaScript chamada “alert”. Esta função pode “escutar” eventos do navegador como click e fazer algo quando isso acontecer, usando onclick ou addEventListener.

O que você aprenderá

  • Detectar eventos do navegador (os clicks da usuária) e fazer algo quando isso acontecer.
  • Identificar os elementos HTML que estão no navegador e obter seus valores e/ou estados.
Sugestão de microprojeto C

Experimente dar um pouco de interação mais parecida com o que você precisa

Ao invés de mostrar o valor de cada radio button quando se clica nele, a opção é apenas selecionada. O alert com os valores dos radio button selecionados é mostrado quando se tem o click no botão “Responder e ver resultados”.

O que você aprenderá

  • Detectar eventos no navegador (os clicks do usuário).
  • Identificar os elementos HTML que existem no navegador e obter seus valores/estados.

Marco 2

Adicione uma tela de boas-vindas simples com os seguintes elementos e características:

  • Uma caixa de texto (input text) na qual o jogador escreve seu nome.
  • Um botão "jogar" ou "começar" para ir para as perguntas.
  • Desta vez, deve haver pelo menos 3 perguntas com suas respectivas alternativas de resposta.
  • Antes das perguntas deve-se dizer "Olá, [o nome que foi inserido na tela de boas-vindas]"
  • O botão de resposta mostra a alternativa correta para cada pergunta e também mostra se cada uma das respostas estava correta ou incorreta.
  • Um botão para jogar novamente que retorna à tela inicial onde o nome é solicitado.
Sugestão de microprojeto A

Avaliando as respostas de seu usuário

Avalie se as respostas selecionadas estão corretas ou incorretas. Para fazer isso, escolha uma das alternativas da pergunta 1 como a resposta “correta”. Ao dar click no botão “Responder e ver resultados” mostra um alert
que diga “Resposta correta” ou “Resposta incorreta” conforme apropriado.

Dicas: Leia sobre condicionais e controle de fluxo (IF, ELSE).

O que você aprenderá

  • Identificar os elementos HTML que estão no navegador e obter seus valores e/ou estados.
  • Comparar os valores/estados dos elementos e fazer algo conforme o resultado obtido da comparação/avaliação.

Marco 3

  • Permite à usuária escolher entre 2 tipos de perguntas depois de escrever seu nome e antes de responder. Por exemplo, umas sobre comida e outras sobre cervejas.
  • Adiciona uma pontuação para respostas corretas e incorretas e exibe uma pontuação total no final.

Se você fez tudo acima e tem um pouco mais de tempo, decida o que mais gostaria de fazer para melhorar seu projeto. Você pode, por exemplo, adicionar uma contagem regressiva com um limite de tempo para responder às perguntas. Você pode enviar seu código para um repositório GitHub e publicar seu aplicativo Web no GitHub Pages e compartilhar a URL com quem você quiser.

Independentemente de quão longe você vá, certifique-se de documentar brevemente seu trabalho em um documento do Google ou no arquivo README.md do seu repositório (se você estiver trabalhando com um). Conte-nos um pouco sobre seu processo de design da experiência de uso e como você acha que ele resolve a necessidade (ou "problema") da sua usuária. Inclua algumas imagens de seus protótipos em papel para nos ajudar a entender o processo, não o resultado. Você mudou algumas coisas ao longo do caminho? Quais? Por quê?

7. Ambiente de trabalho e leitura complementar

Prepare o seu ambiente de trabalho

Se você está dando os primeiros passos no desenvolvimento Web

Talvez você prefira trabalhar com uma ferramenta de edição de código on-line, como Codepen ou Replit.

Se você já tem alguma experiência e vai trabalhar com um repositório de código

  1. Antes de tudo, certifique-se de ter um 📝 bom editor de texto, algo como Atom ou VSCode.
  2. Para executar os comandos a seguir você precisará de uma 🐚 UNIX Shell, que é um programa que interpreta linhas de comando (command-line interpreter) assim como ter o git instalado. Se você já utiliza um sistema operacional "UNIX-like", como GNU/Linux ou MacOS já terá uma shell (terminal) instalada por padrão (e provavelmente git também). Se seu sistema é Windows você poderá usar Git bash, mas indicamos testar 🐧 GNU/Linux.
  3. Faça seu próprio :forkand_knife: fork do repositório. Seus mentores vão compartilhar um _link para o repositório com acesso de leitura.
  4. :arrowdown: Clone seu_fork em seu computador (cópia local).

Recursos e tópicos relacionados

Design de experiência do usuário (User Experience Design)

Desenvolvimento Front-end

Ferramentas

Organização do trabalho

Entrega

  • Todo o seu projeto deve ser entregue em um link funcional. Pode ser o link do seu repositório github ou o link do seu projeto online Replit, Codepen ou CodeSandbox

8. Considerações técnicas

A lógica do projeto deve ser totalmente implementada em JS, HTML e CSS. Neste projeto não é permitido usar bibliotecas ou frameworks, somente vanilla JavaScript (Javascript puro).

Este boilerplate (modelo de projeto no repositório GitHub) contém três arquivos. Você é livre para adicionar ou remover arquivos/pastas. Se você usar um editor de código on-line como Codepen ou Replit, ignore este ponto.

src/index.html

Aqui vai a página que será mostrada para o usuário. Também nos serve para indicar que script será usado e unir tudo que fizemos.

Você encontrará uma tag inicial, que se desejar, pode excluir e começar do zero:

<div id="root"></div>

src/style.css

Este arquivo deve conter as regras de estilo. Queremos que escreva suas próprias regras, por isso pedimos que não use frameworks de CSS (Bootstrap, materialize, etc).

src/main.js

Aqui você escreverá todo o código que tenha a ver com a interação com o DOM (seleção, atualização e manipulação de elementos do DOM e eventos), entre outras funções que são necessárias para atualizar o resultado na tela (UI).

Pode começar a programar!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published