O ConnectUS é uma plataforma social gamificada educacional que integra blockchain e smart contracts para recompensar estudantes com tokens VEXA reais ao completar missões educacionais.
- Framework: FastAPI (Python 3.13)
- Database: SQLite com SQLAlchemy ORM
- IA: Sistema VEXA com OpenAI (dual key system)
- Autenticação: JWT + bcrypt
- Missões: Sistema verificável com QR codes e ações in-app
- Framework: React 18 + Vite
- Styling: TailwindCSS
- State: Zustand + Context API
- Web3: ethers.js + MetaMask integration
- Token: VEXAToken (ERC-20)
- Network: Sepolia Testnet
- Features: Mint restrito ao owner, eventos de rastreamento
- Smart Contract VEXAToken.sol (ERC-20)
- Integração MetaMask (conexão/desconexão)
- Leitura de saldo de tokens
- Mint automático ao completar missões
- Interface Web3 no dashboard
- Sistema de fallback para demonstração
- Configuração de rede Sepolia
- Deploy do contrato na Sepolia
- Deploy do frontend no Vercel
- Testes de integração completos
- Node.js 18+
- Python 3.13+
- MetaMask instalado
- Conta na Sepolia Testnet
cd backend
pip install -r requirements.txt
python -m uvicorn app.main:app --host 127.0.0.1 --port 8000 --reloadcd frontend
npm install
npm run dev- Abra Remix IDE
- Cole o código de
smart-contract/VEXAToken.sol - Compile com Solidity 0.8.19+
- Deploy na Sepolia Testnet
- Copie o endereço do contrato
# frontend/.env
VITE_CONTRACT_ADDRESS=0x... # Endereço do contrato deployado
VITE_NETWORK_ID=11155111 # Sepolia Testnet- Acesse o dashboard
- Clique em "Conectar MetaMask"
- Aprove a conexão na MetaMask
- Verifique se está na rede Sepolia
- Navegue para "Missões do Dia"
- Complete missões educacionais
- Receba VEXA tokens automaticamente na blockchain
- Veja seu saldo atualizado em tempo real
- Seu saldo de VEXA tokens aparece no dashboard
- Transações são registradas na blockchain
- Histórico disponível no Etherscan
contract VEXAToken is ERC20, Ownable {
event TokenMinted(address indexed to, uint256 amount);
function mint(address to, uint256 amount) external onlyOwner {
_mint(to, amount);
emit TokenMinted(to, amount);
}
}- Rede: Sepolia Testnet
- Gas: ~2,000,000
- Owner: Endereço da plataforma ConnectUS
- Verificação: Etherscan (opcional)
# Build para produção
npm run build
# Deploy no Vercel
vercel --prod# Configurar variáveis de ambiente
OPENAI_API_KEY=sk-...
OPENAI_API_KEY_TEST=sk-...
# Deploy
git push heroku main- Endereço:
0x...(será atualizado após deploy) - Etherscan: https://sepolia.etherscan.io/address/0x...
- ABI: Disponível em
frontend/src/web3/abi/VEXAToken.json
- URL: https://connectus-hackathon.vercel.app (será atualizado)
- Rede: Sepolia Testnet
- MetaMask: Necessário para interação
- MetaMask instalado e configurado
- Rede Sepolia selecionada
- Saldo de test ETH (Sepolia Faucet)
- Contrato VEXAToken.sol pronto
- Upload no Remix IDE
- Compilação com Solidity 0.8.19+
- Deploy na Sepolia Testnet
- Verificação no Etherscan
- Endereço copiado
- VITE_CONTRACT_ADDRESS configurado
- ABI do contrato atualizado
- Scripts NPM funcionando
- Checklist automatizado: 6/6 ✅
- Conexão MetaMask: ✅
- Leitura de saldo: ✅
- Mint de tokens: ✅
- Completar missões: ✅
- Interface responsiva: ✅
- Frontend no Vercel
- Repositório GitHub público
- Documentação completa
- Links funcionais
- FastAPI (Python 3.13)
- SQLite + SQLAlchemy ORM
- OpenAI (dual key system)
- JWT + bcrypt
- React 18 + Vite
- TailwindCSS + Framer Motion
- ethers.js (Web3)
- MetaMask integration
- Solidity 0.8.19+
- OpenZeppelin (ERC-20 + Ownable)
- Sepolia Testnet
- Etherscan verification
- MetaMask detectado
- Rede Sepolia selecionada
- Saldo de VEXA tokens exibido
- Missão verificada no backend
- XP e tokens concedidos
- Integração Web3 ativada
- Contrato VEXAToken chamado
- Tokens mintados na blockchain
- Saldo atualizado em tempo real
- Transação registrada no Etherscan
- Histórico de transações
- Saldo atualizado
- Missões completadas
- Ranking atualizado
- MetaMask instalado
- Rede Sepolia selecionada
- Saldo de test ETH (use Sepolia Faucet)
- Abrir Remix: https://remix.ethereum.org
- Upload do Contrato: File → Upload Files →
smart-contract/VEXAToken.sol - Compilar: Solidity Compiler → versão 0.8.19+ → Compile
- Deploy: Deploy & Run → Environment: Injected Provider - MetaMask → Sepolia
- Selecionar: VEXAToken → Deploy → Confirmar na MetaMask
- Copiar Endereço: Salvar o Contract Address (0x...)
- Verificar: Clique no endereço → Verify & Publish no Etherscan
# frontend/.env
VITE_CONTRACT_ADDRESS=0xSEU_ENDERECO_AQUI
VITE_API_URL=http://127.0.0.1:8000# 1. Build para produção
npm run build
# 2. Deploy no Vercel
vercel --prod
# 3. Configurar variáveis de ambiente no Vercel:
# VITE_CONTRACT_ADDRESS=0x...
# VITE_API_URL=https://seu-backend.railway.app# 1. Configurar variáveis de ambiente
OPENAI_API_KEY=sk-...
OPENAI_API_KEY_TEST=sk-...
DATABASE_URL=postgresql://...
# 2. Deploy
git push heroku main
# ou
railway deploy# Verificar se está pronto para o hackathon
node scripts/hackathon-checklist.js# Verificar conexão Web3
npm run web3:check
# Demonstração de mint
npm run web3:mint:demo- Iniciar aplicação:
npm run dev - Abrir dashboard: Navegar para a página principal
- Conectar MetaMask:
- Clicar em "Conectar MetaMask"
- Aprovar conexão na MetaMask
- Verificar se está na rede Sepolia
- Verificar token info:
- Nome: VEXA Token
- Símbolo: VEXA
- Decimais: 18
- Total Supply: Atualizado automaticamente
- Testar mint:
- Preencher quantidade (ex: 1000)
- Preencher endereço destinatário
- Clicar "Executar Mint"
- Deve falhar com "onlyOwner" se não for owner
- Verificar atualizações:
- Saldo atualiza automaticamente
- Total Supply atualiza ao escutar TokenMinted
- Conexão MetaMask: ✅ Funcional
- Leitura de Saldo: ✅ Funcional
- Mint de Tokens: ✅ Funcional (apenas owner)
- Completar Missões: ✅ Funcional
- Interface Responsiva: ✅ Funcional
- Conexão MetaMask: ✅ Funcional
- Leitura de Saldo: ✅ Funcional
- Mint de Tokens: ✅ Funcional (simulação)
- Completar Missões: ✅ Funcional
- Interface Responsiva: ✅ Funcional
- Deploy real na Sepolia
- Mint real de tokens
- Verificação no Etherscan
- Teste de rede incorreta
- Teste sem MetaMask
- ✅ Apenas owner pode mintar
- ✅ Validação de endereços
- ✅ Proteção contra overflow
- ✅ Eventos para auditoria
- ✅ Validação de rede
- ✅ Tratamento de erros
- ✅ Fallback para demonstração
- ✅ Não exposição de chaves privadas
- Smart Contract básico
- Integração MetaMask
- Interface Web3
- Sistema de missões
- Deploy público
- Testes de stress
- Otimizações de gas
- Documentação completa
- Staking de tokens
- Marketplace de NFTs
- Governança DAO
- Integração com outras redes
- Fork o repositório
- Crie uma branch para sua feature
- Faça commit das mudanças
- Abra um Pull Request
- Backend: PEP 8 (Python)
- Frontend: ESLint + Prettier
- Smart Contract: Solidity Style Guide
- Commits: Conventional Commits
- MetaMask não conecta: Verifique se está na rede Sepolia
- Tokens não aparecem: Aguarde confirmação da transação
- Erro de rede: Verifique conexão com internet
- Contrato não encontrado: Verifique endereço no .env
- GitHub: connectus-hackathon
- Email: hackathon@connectus.com
- Discord: ConnectUS Community
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para detalhes.
- OpenZeppelin: Contratos seguros
- ethers.js: Biblioteca Web3
- MetaMask: Carteira Web3
- Sepolia Testnet: Rede de testes
- Vercel: Deploy do frontend
Desenvolvido com ❤️ para o Hackathon ConnectUS 2024
Transformando educação através da tecnologia blockchain 🚀