/roubank

Primary LanguageHTMLGNU General Public License v3.0GPL-3.0

GitHub Pages

https://utfpr-gp.github.io/roubank/

Checkist

Caixas de Diálogo

  • prompt
  • alert
  • confirm

Temporizadores

  • setInterval
  • setTimeout

Funções

  • Função anônima com argumento
  • Função anônima sem argumento
  • Função anônima com retorno
  • Função auto-executável - não será aceita a mesma do Module Pattern
  • Função com nome
  • Função aninhada/local - declarar uma função dentro de outra
  • Passagem de uma função como parâmetro para outra função - ambas as funções precisam ser implementadas pelo aluno
  • Função Flecha - Arrow Function

Eventos

  • Evento de carregamento do documento - onload
  • Evento de movimento do mouse
  • Evento de teclado - usar charCode ou keyCode
  • Eventos de formulário - usar onfocus e onblur
  • Imprimir alguma propriedade/atributo do objeto event recebido como parâmetro na função tratadora de evento
  • Propagação de eventos no modelo bolha (usar target e currentTarget, ou seja, disparar o evento em um elemento filho e capturar em um elemento pai)

Acesso aos elementos DOM do HTML

  • Via referência DOM pelo id do elemento HTML - acesso sem uso do getElementByID ou querySelector, o id do objeto DOM é o próprio nome da variável
  • Via getElementByID()
  • Via getElementsByName()
  • Via getElementsByTagName()
  • Via seletores CSS usados na função querySelector() ou querySelectorAll()

Tratadores de Evento

  • Especificar o tratador de evento inline - registro do evento no HTML
  • Especificar o tratador de evento no modo tradicional - registro do evento no JS com prefixo on via atributo de um objeto DOM
  • Especificar o tratador de evento com a função addEventListener - registro do evento no JS
  • Usar o operador this em funções tratadoras de eventos.

Objetos Nativos

  • Usar pelo menos 3 métodos de manipulação de array
  • Usar laço de repetição (for..in ou for..of ou forEach)
  • Usar pelo menos 3 métodos para manipulação de string
  • String Template - a String com crase e ${}
  • Manipulação do CSS de forma nativa via atributo style e classList

Objetos

  • Criar objeto usando função construtora ou notação literal
  • (Obrigatório) Criar objetos a partir da definição de classes do ES6 - a classe precisa ser definida em arquivo separado, sendo o nome do arquivo em letras minúsculas no estilo dashed-case e nome da classe em UpperCamelCase
  • Usar herança prototipal nativa ou herança de classes do ES6

Qualidade do código

  • Usar um Style Guide - apresentar o uso de pelo menos 10 regras do style escolhido (sugerido AirBnb)
  • Usar um lint - mostrar a correção de pelo menos 5 problemas informados pelo lint (sugerido JSHint - usar o arquivo .jshintrc disponível no moodle)
  • Usar strict mode - em todos os arquivos
  • Usar Module Pattern com função auto-executável ou o conceito de módulo do ES6 com operadores export e import
  • Usar pasta assets e subpastas resources e libraries para organizar o código
  • Usar let ou const ao invés de var
  • Nomes de arquivos minúsculos e separados por hífen (dashed-case)

Formulário

  • Validação de formulário com onsubmit usando os métodos tradicionais - é a fase executada após a validação via HTML5
  • Validação de formulário com HTML5 API
    • Customizar as mensagens nos balões de mensagem
    • Usar os atributos de validação dos inputs - required ou type="email" ou outros
    • Usar expressões regulares para validação - usar no atributo pattern do respectivo input
  • Ler e escrever em elementos input com a propriedade value
  • Alterar o conteúdo de elementos div ou p com a propriedade innerHTML ou textContent
  • Manipulação de elemento de listagem, como checkbox, radio ou select
  • Acesso aos elementos de um formulário via hierarquia (caminho) de objetos, ou seja, array forms e elements

jQuery

  • Uso de seletores CSS - id, classe e tag
  • Uso de seletores hierárquicos estáticos - ancestral/descendente, pai/filho, anterior/próximo
  • Uso de seletores hierárquicos dinâmicos - parent/children/next
  • Efeitos fade ou slide
  • Especificar o tratador de algum evento para um elemento DOM via jQuery - deve ser um evento diferente do ready
  • Manipulação do CSS via função css() e addClass()/removeClass()
  • Manipulação do conteúdo de um input e div usando jQuery
  • Aplicar um plugin do jQuery (por exemplo, jQuery Mask Plugin)

Web Storage

  • Leitura e escrita de dados simples - dados primivos como string, number, boolean
  • Leitura e escrita de JSON - dado transformado a partir de um objeto
  • Criar e atribuir um dado em um Cookie - opcionalmente, ler e apresentar o valor na tela

Requisições assíncronas

  • Requisições AJAX para uma implementação funcional do backend em ExpressJS na plataforma Node
  • (Obrigatório) Requisições AJAX para uma API Fake - JSON Server
  • Requisições AJAX para uma API Rest pública qualquer (Busca CEP API ou IBGE API ou outra).