Plataforma com busca e oferta de vagas na área de T.I
https://borchardttt.github.io/TechJobs/
https://www.figma.com/file/VtfAueHtkTaCxxOIPgvuxq/TechJobs?node-id=0%3A1&t=ghSmdiBtFnLxnpMo-1
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
- Função com nome
- Função aninhada/local - declarar uma função dentro de outra
- Passagem de uma função como parâmetro
- 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 - onfocus e onblur
- Imprimir alguma propriedade do objeto event recebido como parâmetro
- 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
- 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
- Especificar o tratador de evento no carregamento da página HTML no modo tradicional - no onload
- Especificar o tratador de evento no carregamento da página HTML com a função addEventListener - no onload
- 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
Objetos
- Criar objeto usando função construtora ou notação literal
- Criar objetos a partir da definição de classes do ES6
- 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
-
Usar Module Pattern //dentro do escopo global, mas fora de qualquer objeto global, tornando-as privadas e acessíveis apenas dentro do escopo do módulo.
-
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
- Validação de formulário com HTML5 API
- Customizar as mensagens nos balões de mensagem
- Usar os atributos de validação dos inputs
- Usar expressões regulares
- 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 via jQuery
- 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).