Aula 16 - Projeto Final: Dashboard Interativo 🏆
Objetivo
Objetivo: Aplicar TODO o conhecimento técnico adquirido ao longo do curso (Lógica, DOM, Eventos, Requisições e ES6+) para construir uma aplicação real, funcional e com design profissional.
1. O Desafio Final: "TecPro Dashboard" 🔗
Você deve criar um painel interativo que consome dados reais e permite a interação do usuário. Escolha UM dos temas abaixo:
- Buscador de Repositórios GitHub: O usuário digita um nome, vê a lista de repositórios, pode filtrar por linguagem e ver detalhes de cada um.
- Monitor de Criptomoedas/Clima: Exibe preços ou temperaturas em tempo real, permite adicionar "favoritos" em uma lista e atualiza os dados automaticamente.
- Gerenciador de Inventário: Uma lista de produtos (simulada ou via API) onde é possível adicionar, remover e pesquisar itens dinamicamente.
2. Requisitos Técnicos Obrigatórios 📋
Seu projeto deve conter obrigatoriamente:
- [ ] Requisições (Fetch): Buscar dados de uma API externa (GitHub, PokeAPI, ViaCEP, etc).
- [ ] Manipulação de DOM: Criar elementos dinamicamente (cards, listas, alertas).
- [ ] Eventos: Pelo menos 2 tipos de eventos (clique, input, submit).
- [ ] ES6+: Uso de Desestruturação, Arrow Functions e Template Strings.
- [ ] Tratamento de Erros: Mensagens amigáveis para o usuário em caso de falha na API.
- [ ] Modularização: Dividir o código em pelo menos 2 arquivos JS (api.js e main.js).
3. Fluxo de Desenvolvimento 📊
graph TD
A[Planejamento: UI & API] --> B[HTML/CSS: Layout Profissional]
B --> C[JS: Módulo de API - Fetch]
C --> D[JS: Módulo de DOM - Renderização]
D --> E[Interação: Eventos e Filtros]
E --> F[Polimento: Loading e Erros]
F --> G[Entrega Final 🏆]
4. Dicas para um Portfólio de Sucesso ✨
Para que seu projeto chame a atenção de recrutadores:
1. README.md: Explique o que o projeto faz e como instalá-lo.
2. Design: Capriche nas cores e no alinhamento! Um site bonito passa muito mais confiança.
3. Loading States: Nunca deixe o usuário no vácuo. Use "Carregando..." ou spinners.
4. Limpeza: Remova console.log desnecessários antes da entrega de produção.
5. Prática Final no Terminal (Simulação) 💻
$ // Consolidando tudo em um único flow
$ const app = async () => {
$ const data = await api.get('/user/ricardo');
$ ui.render(data);
$ events.listen();
$ };
$ app();
> "🚀 Aplicação iniciada com sucesso!"
6. Mensagem de Conclusão 🌟
Parabéns, Desenvolvedor! Você completou a jornada de JavaScript Fundamentos e DOM. Você saiu do "Olá Mundo" e agora é capaz de construir interfaces inteligentes que conversam com o mundo real.
"A programação não é sobre o que você sabe; é sobre o que você pode descobrir." — Chris Pine
FIM DO CURSO 🚀🚀🚀 Desejamos muito sucesso na sua carreira tech!