Uma plataforma completa de tokenização de animais reais (RWAnimals) com sistema de batalhas, apostas PudgyEggs e curso educacional de desenvolvimento blockchain.
- Visão Geral
- Arquitetura do Projeto
- Tecnologias Utilizadas
- Estrutura de Pastas
- Configuração do Ambiente
- Banco de Dados
- Funcionalidades
- Componentes Principais
- Contextos e Estados
- Serviços
- Deploy
- Personalização
O Pudgy Farms é uma plataforma Web3 que permite:
- Tokenização de Animais Reais (RWAnimals): Digitalização de animais físicos em NFTs
- Sistema de Batalhas: Combates entre NFTs com apostas PudgyEggs
- Curso Educacional: Inscrições para curso de desenvolvimento blockchain
- Whitelist: Sistema de aprovação para acesso exclusivo
- Fazenda Digital: Interface para gerenciar coleções de animais
- React 18 com TypeScript
- Vite como bundler
- Tailwind CSS para estilização
- shadcn/ui para componentes
- React Router para navegação
- Context API para gerenciamento de estado
- Supabase como backend-as-a-service
- PostgreSQL como banco de dados
- Row Level Security (RLS) para segurança
- Real-time subscriptions para dados dinâmicos
- Wagmi para integração Ethereum
- Viem para interações com blockchain
- Smart contracts personalizáveis
- ABIs modulares para diferentes contratos
- React 18.2.0 - Framework principal
- TypeScript 5.0+ - Tipagem estática
- Vite 4.4+ - Build tool e dev server
- Tailwind CSS 3.3+ - Framework CSS
- shadcn/ui - Componentes reutilizáveis
- Lucide React - Ícones
- Framer Motion - Animações (opcional)
- React Router DOM 6.8+ - Roteamento
- React Context API - Estado global
- React Query - Cache e sincronização
- Wagmi 1.4+ - Hooks para Ethereum
- Viem 1.0+ - Cliente Ethereum
- @tanstack/react-query - Cache de dados
- Supabase - Backend completo
- @supabase/supabase-js - Cliente JavaScript
- Sonner - Notificações toast
- React Hook Form - Formulários
- Zod - Validação de schemas
src/
├── components/ # Componentes reutilizáveis
│ ├── ui/ # Componentes base (shadcn/ui)
│ ├── Header.tsx # Cabeçalho principal
│ ├── Footer.tsx # Rodapé com newsletter
│ ├── Hero.tsx # Seção hero da home
│ ├── BattleArena.tsx # Arena de batalhas
│ ├── BattleLobby.tsx # Lobby de batalhas
│ ├── FarmCollection.tsx # Formulário RWAnimals
│ └── ...
├── pages/ # Páginas da aplicação
│ ├── Index.tsx # Home page
│ ├── Battle.tsx # Página de batalhas
│ ├── Farm.tsx # Página da fazenda
│ ├── Whitelist.tsx # Página de whitelist
│ └── Details.tsx # Página de detalhes
├── contexts/ # Contextos React
│ ├── LanguageContext.tsx # Internacionalização
│ ├── BattleContext.tsx # Estado das batalhas
│ └── Web3Provider.tsx # Provider Web3
├── services/ # Serviços externos
│ ├── supabase.ts # Cliente Supabase
│ └── web3.ts # Configurações Web3
├── lib/ # Utilitários e configurações
│ ├── abi/ # ABIs dos contratos
│ ├── utils.ts # Funções utilitárias
│ └── constants.ts # Constantes
├── assets/ # Recursos estáticos
│ ├── images/ # Imagens
│ ├── icons/ # Ícones
│ └── ...
└── App.tsx # Componente raiz
# Node.js 18+ e npm
node --version # v18.0.0+
npm --version # 9.0.0+# Clone o repositório
git clone <repository-url>
cd on-chicken
# Instale as dependências
npm install
# Configure as variáveis de ambiente
cp env.example .env.local# Supabase
VITE_SUPABASE_URL=your-supabase-project-url
VITE_SUPABASE_ANON_KEY=your-supabase-anon-key
# Web3 (opcional)
VITE_WALLET_CONNECT_PROJECT_ID=your-project-id
VITE_CHAIN_ID=1
# Outras configurações
VITE_APP_NAME=Pudgy Farms
VITE_APP_DESCRIPTION=Web3 Agricultural Platform# Desenvolvimento
npm run dev
# Build para produção
npm run build
# Preview da build
npm run previewO painel de holders consome a Panel API local quando VITE_PANEL_API_KEY estiver configurada no ambiente local. Para deploy publico sem proxy em nuvem, gere o snapshot estatico antes do build:
npm run panel:snapshot
npm run buildAtalho:
npm run build:with-panelO script le PANEL_API_KEY do ambiente ou de ~/openclaw/.env.secrets e salva public/panel-snapshot.json. Nao configure VITE_PANEL_API_KEY no deploy publico.
- Criar projeto no Supabase
- Executar schema completo:
-- Execute o arquivo supabase_final_schema.sql no SQL Editor- Endereços de carteira aprovados
- Status de aprovação
- Links de redes sociais
- Dados do usuário
- Emails de inscrição no curso
- Status ativo/inativo
- Origem da inscrição
- Timestamps automáticos
- Informações das coleções
- Dados do proprietário
- Status de aprovação
- Links de imagens
- Dados auxiliares para formulários
- Regiões brasileiras
- Tipos de fazenda
-- Execute supabase_policies.sql para configurar RLS- Formulário de inscrição com validação
- Aprovação manual por administradores
- Status tracking (pending/approved/rejected)
- Integração com redes sociais
- Formulário completo para submissão de coleções
- Upload de imagens via links
- Seleção de região e tipo de fazenda
- Validação de dados robusta
- Status de aprovação para coleções
- Lobby de batalhas com lista de salas
- Criação de batalhas com NFTs
- Sistema de apostas PudgyEggs
- Arena de combate com animações
- Cálculo de vencedor baseado em atributos
- Inscrição por email no footer
- Validação de email em tempo real
- Feedback visual de sucesso/erro
- Integração com banco de dados
- Português e Inglês completos
- Troca dinâmica de idioma
- Traduções contextuais para todas as funcionalidades
// Navegação principal com:
// - Logo e branding
// - Menu responsivo
// - Seletor de idioma
// - Conectar carteira
// - Botão PudgyEggs// Seção principal com:
// - Título e subtítulo
// - Botões de ação
// - Estatísticas do projeto
// - Botão "Saiba Mais"// Arena de batalhas com:
// - Seleção de NFTs
// - Campo de batalha
// - Sistema de apostas
// - Cálculo de vencedor
// - Animações de combate// Formulário RWAnimals com:
// - Dados da coleção
// - Informações do proprietário
// - Validação completa
// - Preview em tempo real
// - Integração Supabase// Gerenciamento de idiomas:
// - Estado do idioma atual
// - Função de tradução t()
// - Troca dinâmica
// - Persistência no localStorage// Estado das batalhas:
// - Lista de batalhas ativas
// - Criação de batalhas
// - Entrada em batalhas
// - Sistema de apostas
// - Persistência local// Integração Web3:
// - Conexão de carteira
// - Estado da conexão
// - Interações com contratos
// - Gerenciamento de transações// Operações de banco:
// - Inscrições no curso
// - Submissão de RWAnimals
// - Busca de dados
// - Tratamento de erros// Interações blockchain:
// - Conexão de carteira
// - Leitura de contratos
// - Escrita de transações
// - Eventos de contratoO projeto está configurado para deploy automático no Vercel. Cada commit na branch main gera um novo deploy automaticamente.
- Conecte seu repositório GitHub ao Vercel: https://vercel.com/new
- Configure as variáveis de ambiente (veja
DEPLOY_QUICK_START.md) - Clique em "Deploy"
- ✅ Pronto! Deploys automáticos ativados
- Guia Rápido: Veja
DEPLOY_QUICK_START.md - Guia Completo: Veja
VERCEL_DEPLOY.md
# Fazer commit e push
git add .
git commit -m "feat: nova funcionalidade"
git push origin main
# ✅ Deploy automático será iniciado no Vercel!# Instalar Vercel CLI
npm i -g vercel
# Deploy
vercel --prod# Build
npm run build
# Deploy manual ou via Git// Adicione novas páginas em src/pages/
// Registre as rotas em App.tsx
// Atualize o Header.tsx para navegação// Edite componentes em src/components/
// Mantenha a estrutura de props
// Atualize as traduções se necessário// Substitua arquivos em src/lib/abi/
// Atualize as interfaces TypeScript
// Modifique os hooks Web3// Substitua imagens em src/assets/
// Atualize as importações
// Mantenha os nomes dos arquivos// Edite src/contexts/LanguageContext.tsx
// Adicione novas chaves de tradução
// Mantenha a estrutura de objetos-- Edite supabase_final_schema.sql
-- Adicione novas tabelas/colunas
-- Atualize as políticas RLS
-- Modifique os serviços Supabase- Supabase Dashboard - Métricas de banco
- Vercel Analytics - Performance frontend
- Google Analytics - Comportamento do usuário
- Console logs para debug
- Supabase logs para backend
- Error tracking com Sentry (opcional)
- Fork o repositório
- Crie uma branch para sua feature
- Commit suas mudanças
- Push para a branch
- Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
- Documentação: Este README
- Issues: GitHub Issues
- Comunidade: Discord/Telegram
- Email: suporte@exemplo.com
Desenvolvido com ❤️ pela equipe Omnes
Uma plataforma Web3 completa para a revolução agrícola digital 🚀🌾