
Dogs Desenvolvimento Web
O projeto Dogs é uma aplicação frontend desenvolvida com React e Vite, focada no compartilhamento de fotos de cães.
Feito com
- React
- Vite
- React Router DOM
- Victory
- Vite Plugin SVGR
- CSS Modules
- PropTypes
- Fetch API
Contexto
O principal objetivo foi desenvolver uma aplicação frontend funcional e organizada para compartilhar fotos de cães, oferecendo autenticação segura via JWT, um feed público e dinâmico, área logada para postagem e exclusão de fotos, perfis por usuário e uma página de estatísticas com gráficos, tudo mantendo foco em performance, organização do código e uma experiência de uso simples e agradável.
Objetivo
O objetivo foi reunir autenticação, navegação pública e privada, publicação de imagens, perfis de usuário e estatísticas em uma interface simples e responsiva.
Processo
desenvolvimento foi organizado em torno de funcionalidades progressivas, começando pela estrutura base do projeto com React e Vite, seguida da implementação da autenticação (cadastro, login, logout, login automático com token no localStorage e recuperação de senha).
Em seguida, foram construídos o feed público com scroll infinito, a visualização detalhada das fotos com comentários, a área autenticada para upload e exclusão de imagens, os perfis públicos e, por fim, a página de estatísticas com gráficos via Victory. As rotas foram divididas entre públicas, protegidas e fallback, garantindo o correto fluxo de navegação da aplicação.
Decisões técnicas
Entre as principais decisões, estão o uso do Vite como bundler e ambiente de desenvolvimento pela sua velocidade e simplicidade; o React Router DOM para gestão de rotas públicas, protegidas e fallback; a estilização isolada por componente com CSS Modules para evitar conflitos de escopo; o uso de PropTypes para validação de props; a integração de SVGs como componentes React por meio do Vite Plugin SVGR; e a comunicação com o backend via Fetch API nativa, sem dependências extras. Além disso, a URL da API foi migrada para variável de ambiente (VITE_API_URL), tornando a aplicação mais flexível entre os diferentes ambientes.
Desafios
Entre os desafios enfrentados, destacam-se o gerenciamento seguro da autenticação e da sessão do usuário, incluindo o login automático com token persistido no localStorage e o logout com limpeza da sessão.
Lidei também pela primeira vez com o controle de rotas protegidas para impedir acesso não autorizado à área logada. Além disso, foram desenvolvidos a implementação de estados de carregamento e tratamento de erro em todos os fluxos, garantindo uma experiência consistente mesmo diante de falhas de comunicação com a API.
Resultados e aprendizados
O projeto resultou em uma aplicação completa e funcional de compartilhamento de fotos de cães, consolidando conhecimentos importantes de React, como componentização, hooks, gerenciamento de estado e integração com APIs.
O desenvolvimento reforçou boas práticas de organização de rotas e autenticação, além de demonstrar a importância de variáveis de ambiente na configuração da aplicação.
Galeria
2 imagens
Modal das imagens, estilo instagram. Campo de login do projeto Dogs.