Terminal Cargueiro Monte Névoa
Crie uma interface e validação de carga para o bonde de uma estação
- Nível
- fácil
- Categoria
- Programação
- Tecnologias
- HTML, CSS, JS
Posto Avançado Monte Névoa
A estação de pesquisas geológicas de Monte Névoa depende de um bonde cargueiro suspenso por cabos para receber suprimentos, equipamentos e correspondências durante as tempestades de inverno. Como único operador da estação, você precisa criar uma página web completa para monitorar a estação, registrar manifestos de carga e processar dados técnicos de rota.
Conceitos Praticados Neste Desafio
Este projeto exige a aplicação direta dos seguintes conhecimentos técnicos:
- Como a Web funciona: Compreensão do fluxo cliente-servidor, requisições HTTP e resolução DNS na entrega do documento HTML/CSS ao navegador.
- Estrutura básica do HTML: Declaração correta do documento com tags estruturais principais (
head,bodye metadados). - Tags semânticas: Organização do layout usando
header,nav,main,section,articleefooter. - Formulários em HTML: Construção de controles de despacho com
input,select,textarea,labele validações nativas do HTML5. - Introdução ao CSS: Vinculação de folha de estilo externa, seletores de classe/elemento e estilização base.
- Box Model: Controle rigoroso de dimensões, espaçamentos internos (
padding), externos (margin) e bordas do painel. - Cores, fontes e texto: Paleta em hexadecimal/RGB, hierarquia tipográfica e importação de tipografia via Google Fonts.
- Flexbox: Alinhamento e distribuição espacial dos módulos da estação via
display: flex. - Introdução ao JavaScript: Declaração de variáveis, tipos de dados e operadores matemáticos/lógicos.
- Estruturas de controle em JS: Aplicação de condicionais (
if,else,switch) e laços de repetição (for,while) no processamento dos dados do bonde.
Requisitos de Interface e Marcação
1. Arquitetura Semântica
Estruture a aplicação em uma única página HTML dividida em blocos bem definidos:
- Cabeçalho (
header): Identificação da estação, indicador visual de status do cabo (Ativo/Interrompido) e navegação rápida (nav). - Conteúdo Principal (
main): Dividido em duas seções principais (section): o painel estatístico do bonde e o formulário de despacho de carga. - Cartões de Dados (
article): Cada indicador de telemetria (Ex: Altitude, Capacidade Atual, Velocidade do Vento) deve ser um artigo isolado. - Rodapé (
footer): Informações do operador de turno, dados do servidor local e notas de segurança.
2. Formulário de Despacho de Carga
Crie um formulário funcional contendo as seguintes entradas com suas respectivas labels vinculadas:
- Identificador do Contêiner: Campo de texto obrigatório com limite mínimo de caracteres.
- Categoria de Carga: Caixa de seleção (
select) com as opções: Alimentos/Mantimentos, Equipamento Científico, Combustível e Aposentadoria de Material. - Peso Estimado (kg): Campo numérico com limites estipulados via atributos
minemax. - Turno de Envio: Botões de opção ou seleção para definir envio matutino, vespertino ou noturno.
- Observações de Risco: Área de texto (
textarea) para notas do despachante.
Estilização e Layout com CSS
Aplique regras visuais para garantir que o painel pareça um terminal técnico robusto e funcional:
- Tipografia do Terminal: Importe e aplique uma fonte monoespaçada do Google Fonts (como Share Tech Mono ou Roboto Mono).
- Cores e Visibilidade: Defina uma paleta escura industrial usando valores HEX ou HSL, destacando alertas com cores quentes de alto contraste.
- Ajuste por Box Model: Garanta que os cartões de telemetria utilizem limites de largura bem definidos, bordas industriais estilizadas e espaçamento interno proporcional sem quebrar a grade.
- Organização em Flexbox: Monte o layout dos cartões de métricas e dos campos do formulário em alinhamentos flexíveis, usando
flex-direction,gapejustify-content.
Módulo de Lógica e Validação (JavaScript)
Construa um script interno ou externo que execute a análise de dados do manifesto de carga diretamente nas estruturas de controle do JavaScript:
Regras de Processamento
- Validação de Capacidade com Condicionais: Declare variáveis com o limite máximo suportado pelo bonde (ex: 850 kg) e o peso atual carregado. Use
if/elsepara determinar se um novo contêiner pode ser adicionado ou se excede o limite. - Classificação por Código de Carga (Switch): Crie uma estrutura
switchbaseada no código da categoria selecionada para aplicar um fator de risco ou prioridade de transporte no console. - Varredura de Lote com Laços: Crie um array fictício de pesos de contêineres aguardando no pátio. Utilize um laço
forouwhilepara somar o peso total do lote e exibir quantos contêineres conseguirão subir na viagem atual antes do limite ser atingido.
Critérios de Aceite
- O código HTML deve passar na validação estrutural sem erros de abertura/fechamento de tags ou labels órfãs.
- Todas as seções do documento devem utilizar tags semânticas apropriadas ao contexto.
- O visual deve refletir um design responsivo básico e organizado exclusivamente com Flexbox e regras de Box Model.
- A lógica em JavaScript deve rodar sem erros de sintaxe no console do navegador, atendendo às três regras de processamento.
Expansões Opcionais para Evolução
- Alertas Visuais CSS: Utilizar seletores CSS de estado como
:focuse:invalidpara destacar os campos do formulário preenchidos incorretamente. - Simulação de Sensores: Criar um laço de repetição no JavaScript que gere leituras simuladas de temperatura da montanha para os últimos 5 dias e calcule a média de congelamento dos cabos.
- Temas de Interface: Criar uma classe CSS alternativa representando "Modo de Tempestade" que altera completamente as cores do painel para tons de alerta extremo.
Comentários
0Participe da conversa
Faça login com sua conta para deixar dúvidas, sugestões e trocar ideias com outros estudantes.
Nenhum comentário ainda. Seja o primeiro a participar da discussão!