Este documento lista os próximos passos recomendados para evoluir a aplicação do Catálogo Aldeia Viva.
✅ Aplicação funcionando com Supabase CLI ✅ Autenticação implementada ✅ CRUD de produtos completo ✅ Carrinho de compras ✅ Checkout via WhatsApp ✅ Docker Compose configurado (opcional) ✅ Migrações e seeds do banco
Prioridade: Alta
Atualmente os produtos usam URLs externas para imagens. Implementar upload usando Supabase Storage.
Tarefas:
- Criar bucket público
product-imagesno Supabase - Adicionar componente de upload de imagem no formulário de produtos
- Implementar função para fazer upload via Supabase Storage
- Gerar URL pública da imagem após upload
- Adicionar validação de tipo e tamanho de arquivo
- Implementar compressão/resize de imagens (opcional)
Arquivos a modificar:
pages/admin/products.vue- adicionar input de upload- Criar composable
composables/useImageUpload.ts
Prioridade: Alta
Criar interface para visualizar e gerenciar pedidos recebidos.
Tarefas:
- Criar página
/admin/orders - Listar pedidos ordenados por data
- Mostrar detalhes do pedido (items, total, data)
- Adicionar status do pedido (pendente, processando, enviado, concluído)
- Implementar filtros (por data, status)
- Adicionar paginação
- Criar dashboard com métricas (total de vendas, produtos mais vendidos)
Arquivos a criar:
pages/admin/orders.vuepages/admin/index.vue(dashboard)
Prioridade: Média
Organizar produtos em categorias para facilitar navegação.
Tarefas:
- Criar tabela
categoriesno banco - Adicionar campo
category_idemproducts - Criar migração SQL
- Implementar CRUD de categorias
- Adicionar filtro por categoria no catálogo público
- Criar menu de navegação por categorias
Migration SQL necessária:
-- Criar tabela de categorias
create table public.categories (
id bigserial primary key,
created_at timestamp with time zone default now(),
name text not null unique,
slug text not null unique,
description text,
published boolean not null default true
);
-- Adicionar categoria aos produtos
alter table public.products
add column category_id bigint references public.categories(id);
-- Políticas RLS
alter table public.categories enable row level security;
create policy "Categories are viewable by anyone"
on public.categories for select using (true);
create policy "Categories write requires auth"
on public.categories for all
using (auth.role() = 'authenticated')
with check (auth.role() = 'authenticated');Prioridade: Média
Melhorar feedback visual durante operações assíncronas.
Tarefas:
- Adicionar skeletons/placeholders durante carregamento
- Implementar loading spinners em botões
- Adicionar transições suaves entre estados
- Mostrar toasts de sucesso/erro após operações
Prioridade: Média
Melhorar validação usando Zod schemas.
Tarefas:
- Criar schemas Zod para produtos
- Adicionar validação client-side
- Mostrar mensagens de erro claras
- Prevenir envio de formulários inválidos
Prioridade: Baixa
Melhorar funcionalidade de busca.
Tarefas:
- Implementar busca full-text no PostgreSQL
- Adicionar filtros (preço, categoria, estoque)
- Criar página de resultados de busca dedicada
- Adicionar ordenação (mais recente, preço, nome)
Prioridade: Alta
Tarefas:
- Revisar políticas RLS do banco
- Implementar rate limiting
- Adicionar validação server-side em todas as operações
- Implementar logs de auditoria
- Adicionar proteção CSRF
Prioridade: Média
Tarefas:
- Implementar cache de produtos
- Adicionar lazy loading de imagens
- Otimizar queries do banco (índices)
- Implementar paginação em listas grandes
- Configurar CDN para assets estáticos
Prioridade: Baixa
Tarefas:
- Adicionar meta tags dinâmicas por produto
- Implementar sitemap.xml
- Adicionar structured data (Schema.org)
- Configurar Open Graph para compartilhamento social
- Otimizar performance (Lighthouse score)
Prioridade: Média
Permitir produtos com variações (tamanho, cor, etc).
Tarefas:
- Criar tabela
product_variants - Implementar interface de gestão de variantes
- Atualizar carrinho para suportar variantes
- Ajustar controle de estoque por variante
Prioridade: Baixa
Tarefas:
- Criar tabela
coupons - Implementar validação de cupons
- Adicionar campo para cupom no checkout
- Calcular desconto no total
- Criar interface administrativa para cupons
Prioridade: Baixa
Tarefas:
- Implementar dashboard com métricas
- Gráficos de vendas por período
- Produtos mais vendidos
- Relatório de estoque baixo
- Exportação de dados (CSV, PDF)
Prioridade: Baixa
Tarefas:
- Configurar envio de emails transacionais
- Email de confirmação de pedido
- Notificação de estoque baixo para admin
- Integrar com serviço de email (SendGrid, Resend)
Prioridade: Média
Tarefas:
- Configurar GitHub Actions
- Testes automatizados
- Deploy automático
- Versionamento semântico
- Changelog automático
Prioridade: Média
Tarefas:
- Configurar logs estruturados
- Implementar error tracking (Sentry)
- Monitoramento de performance
- Alertas de erros críticos
- Healthcheck endpoints
Prioridade: Alta
Tarefas:
- Configurar backups automáticos do banco
- Testar processo de recuperação
- Documentar procedimentos de disaster recovery
- Implementar backup de arquivos (Storage)
Prioridade: Média
Tarefas:
- Configurar Vitest
- Testar composables (useCart, etc)
- Testar utilitários
- Atingir 80% de cobertura
Prioridade: Baixa
Tarefas:
- Configurar Playwright
- Testar fluxo de compra completo
- Testar autenticação
- Testar CRUD de produtos
-
Componentização
- Extrair formulários repetidos em componentes reutilizáveis
- Criar biblioteca de componentes UI (Button, Input, Modal, etc)
- Implementar design system consistente
-
Type Safety
- Gerar tipos TypeScript do schema do Supabase
- Adicionar validação de runtime com Zod
- Eliminar uso de
any
-
Estado Global
- Considerar Pinia para estado compartilhado mais complexo
- Persistir carrinho no localStorage
- Sincronizar estado entre tabs
-
Acessibilidade
- Adicionar ARIA labels
- Garantir navegação por teclado
- Testar com screen readers
- Melhorar contraste de cores
- Upload de imagens
- Gestão de pedidos básica
- Melhorias de segurança (RLS review)
- Categorias de produtos
- Loading states e validações
- Otimizações de performance
- Variações de produtos
- Dashboard com métricas
- Notificações por email
- Testes automatizados
- CI/CD
- Monitoramento
- SEO
- UI Components: HeadlessUI, Radix Vue
- Email: Resend, SendGrid
- Analytics: Plausible, Umami
- Monitoring: Sentry, LogRocket
- Testing: Vitest, Playwright
A aplicação já está funcional e pronta para uso básico. As melhorias acima são sugestões para torná-la mais robusta, escalável e com melhor experiência de usuário.
Priorize as funcionalidades de acordo com as necessidades do negócio e feedback dos usuários.