Plataforma frontend para compartilhamento de fotos de cães, com autenticação, feed público, postagem de imagens, comentários e estatísticas de uso.
| Tecnologia | Uso no projeto |
|---|---|
| React 19 | Construção da interface com componentes e hooks |
| Vite | Ambiente de desenvolvimento e build |
| React Router DOM | Rotas públicas, privadas e navegação |
| Victory | Visualização das estatísticas |
| Vite Plugin SVGR | Importação de SVGs como componentes React |
| CSS Modules | Estilização modular e isolada por componente |
| PropTypes | Validação de props em componentes |
| Fetch API | Comunicação com a API do backend |
- Cadastro de usuário.
- Login com autenticação via JWT.
- Logout com limpeza de sessão local.
- Login automático com token salvo no
localStorage. - Recuperação e redefinição de senha.
- Feed público de fotos.
- Scroll infinito no feed.
- Visualização detalhada de fotos.
- Comentários em fotos.
- Upload de novas fotos na área logada.
- Exclusão de fotos do próprio usuário.
- Página de perfil por usuário.
- Página de estatísticas com gráficos.
- Rotas protegidas para área autenticada.
- Estados de carregamento e tratamento de erro.
| Rota | Tipo | Descrição |
|---|---|---|
/ |
Pública | Feed principal com fotos em destaque. |
/login |
Pública | Tela de login. |
/login/criar |
Pública | Cadastro de novo usuário. |
/login/perdeu |
Pública | Recuperação de senha. |
/login/resetar |
Pública | Reset de senha via token recebido por e-mail. |
/foto/:id |
Pública | Página de foto individual com comentários. |
/perfil/:user |
Pública | Perfil público de um usuário. |
/conta |
Protegida | Área logada com feed do usuário. |
/conta/postar |
Protegida | Formulário de envio de nova foto. |
/conta/estatisticas |
Protegida | Estatísticas e gráficos do usuário. |
* |
Fallback | Página 404 para rotas não encontradas. |
O menu autenticado inclui os atalhos:
Minhas fotos->/contaEstatísticas->/conta/estatisticasAdicionar fotos->/conta/postarSair-> realiza logout e redireciona para/login
Antes de rodar o projeto, você precisa ter instalado:
- Node.js 18+
- npm ou yarn
git clone git@github.com:ManoelReisDev/dogs-react.git
cd dogs-reactnpm installnpm run devAbra:
http://localhost:5173npm run buildnpm run previewO projeto lê a base da API pela variável de ambiente VITE_API_URL.
Para desenvolvimento local, você pode usar um arquivo .env ou .env.local com:
VITE_API_URL=https://dogsapi.origamid.dev/jsonPossíveis evoluções para o projeto:
- Adicionar testes automatizados com Vitest e React Testing Library.
- Implementar testes end-to-end com Playwright.
- Migrar a URL da API para variável de ambiente.
- Melhorar a experiência de carregamento com skeletons.
- Incluir mensagens toast para feedback de ações.
- Adicionar acessibilidade refinada para formulários e modais.
- Criar documentação de componentes.
Este projeto está sob a licença MIT.
Agradecimentos: projeto desenvolvido com apoio do conteúdo e da metodologia do Origamid, que serviu como base de aprendizado e referência técnica.
Autor: ManoelReisDev
GitHub: ManoelReisDev
Repositório: dogs-react
Feito com foco em performance, organização e uma experiência de uso simples para compartilhar fotos de cães. 🐾