🌍 Projeto 8: Around The U.S. (Versão PT) 🚀 Desenvolvimento Web – TripleTen | JavaScript + DOM + Modais + Templates
Este projeto apresenta uma galeria interativa de cartões com fotos, onde o utilizador pode:
Editar o perfil
Adicionar novos cartões
Remover cartões
Curtir cartões
Abrir imagens em tamanho maior
Fechar pop-ups de várias formas (botão, overlay e tecla ESC)
Tudo implementado com JavaScript puro, manipulando diretamente o DOM, aplicando template HTML, e usando uma abordagem modular e clara no código.
✨ Funcionalidades 🧑💼 Editar perfil
Atualiza o nome e a descrição diretamente na página
Formulário abre e fecha com modal
Preenchimento automático dos campos com os valores atuais
🖼️ Cartões dinâmicos
Os cartões iniciais são renderizados via JavaScript a partir do array initialCards
Usa a tag para criar novos cartões
Cada cartão possui:
Imagem
Título
Botão de curtir
Botão de excluir
Clique para abrir modal de imagem grande
➕ Adicionar novos cartões
Formulário no popup “Novo Local”
Cria um cartão no topo da lista com:
Nome inserido
Link da imagem
Fecha automaticamente após criar
❤️ Like nos cartões
Alterna o estado visual do coração ao clicar
Feito via classList.toggle()
🗑️ Excluir cartões
Remove o cartão completamente do DOM
Funciona para cartões iniciais e novos
🔍 Visualização ampliada da imagem
Ao clicar em qualquer imagem do cartão, abre-se um modal com:
Imagem em tamanho maior
Legenda correspondente ao nome do cartão
❌ Fechamento de modais
Botão de fechar (X)
Clicar no overlay (zona escura ao redor)
Tecla ESC
🛠️ Tecnologias utilizadas
HTML5
CSS3 (BEM Methodology)
JavaScript (ES6+)
Manipulação do DOM
Eventos e Forms
Estrutura modular
Template HTML
Git / GitHub Pages
📁 Estrutura do Projeto
. ├── index.html ├── pages/ │ └── index.css ├── scripts/ │ └── index.js ├── blocks/ │ ├── card.css │ ├── cards.css │ ├── popup.css │ ├── profile.css │ ├── header.css │ ├── footer.css │ └── (outros ficheiros BEM) ├── images/ ├── vendor/ │ ├── normalize.css │ └── fonts.css └── README.md
Este projeto faz parte do curso de Desenvolvimento Web da TripleTen.
O objetivo é implementar funcionalidades interativas usando JavaScript moderno, incluindo:
type="url")/ ├── index.html ├── pages/ │ └── index.css ├── blocks/ │ └── (arquitetura BEM) ├── images/ ├── scripts/ │ └── index.js └── README.md
Este projeto faz parte do curso de Desenvolvimento Web da TripleTen e corresponde ao Projeto 10 — Introdução à Programação Orientada a Objetos.
O objetivo principal deste sprint foi refatorar o código existente, aplicando os princípios de Programação Orientada a Objetos (POO) e JavaScript modular, sem alterar o comportamento visual ou funcional da aplicação.
Neste sprint, toda a funcionalidade já estava implementada.
O foco foi organizar e estruturar o código, aplicando boas práticas de JavaScript moderno.
O código JavaScript foi dividido em módulos, cada um com uma responsabilidade específica:
scripts/ ├── Card.js ├── FormValidator.js ├── utils.js └── index.js
Card.jsCardFormValidator.jsFormValidatorutils.jsindex.jsEste projeto utiliza JavaScript Modules, portanto deve ser executado através de um servidor local.
Passos:
index.htmlimport e exportProjeto de refatoração com programação orientada a objetos (POO), implementando classes para popups, formulários, renderização de cartões e informações do usuário.
src/ — arquivos principais do projeto (HTML/CSS/JS/assets)src/components/ — classes JavaScript (Card, Section, Popup, etc.)src/pages/ — entry point (index.js) e estilos (index.css)src/index.html no navegadorindex.js contém apenas criação de instâncias e listeners de UIProjeto desenvolvido por Pedro Faustino
Curso de Desenvolvimento Web — TripleTen
https://p3drofaustino-lang.github.io/web_project_around_pt/
Este projeto é uma aplicação web interativa onde os usuários podem criar um perfil, adicionar cartões com imagens, curtir/descurtir cartões, excluir cartões próprios e atualizar a foto de perfil.
O projeto utiliza JavaScript orientado a objetos e integra-se com uma API REST para persistência de dados.
O projeto segue uma arquitetura modular baseada em classes:
Api — responsável por todas as requisições ao servidorCard — criação e gerenciamento dos cartõesSection — renderização de listas de cartõesPopup — classe base para todos os pop-upsPopupWithForm — pop-ups com formulárioPopupWithImage — visualização de imagensPopupWithConfirmation — confirmação de exclusãoFormValidator — validação de formuláriosUserInfo — gerenciamento das informações do usuárioTodas as requisições ao servidor são centralizadas na classe Api.
O carregamento inicial dos dados utiliza Promise.all() para garantir que os cartões só sejam renderizados após o carregamento das informações do usuário.
https://p3drofaustino-lang.github.io/web_project_around_pt/
O layout foi desenvolvido com base no design fornecido no Figma pela Tripleten, seguindo princípios de responsividade e usabilidade.
✅ Concluído
✅ Atende a todos os requisitos do Projeto 12 da Tripleten
Projeto desenvolvido por Pedro Faustino
Curso de Desenvolvedor Web — Tripleten