Aplicativo mobile para localizar e acompanhar blocos de carnaval em tempo real, construído com React Native e Expo.
Cadê Meu Bloco é um app que permite aos foliões encontrar blocos de carnaval próximos, visualizar rotas, marcar favoritos, acompanhar amigos e descobrir qual bloco está acontecendo agora.
- Visualização de todos os blocos no mapa em tempo real
- Navegação intuitiva pelo mapa com gestos
- Lista completa de blocos com informações detalhadas
- Busca por nome, bairro ou gênero musical
- Filtros: Todos, Ao vivo, Favoritos
- Indicador de blocos acontecendo agora
- Marque blocos favoritos tocando na estrela
- Visualize rapidamente seus blocos preferidos
- Contador de favoritos por bloco
- Adicione amigos pelo username
- Veja quais amigos estão indo para cada bloco
- Acompanhe a localização de amigos no mapa
- Status de presença (no carnaval / offline)
cademeubloco/
├── app/ # Rotas do app (Expo Router)
│ ├── (tabs)/ # Navegação por tabs
│ │ ├── index.tsx # Mapa principal
│ │ ├── blocos.tsx # Lista de blocos
│ │ ├── friends.tsx # Lista de amigos
│ │ └── profile.tsx # Perfil do usuário
│ ├── login.tsx # Tela de login
│ ├── register.tsx # Tela de registro
│ ├── settings.tsx # Configurações
│ └── help.tsx # Ajuda
├── components/ # Componentes reutilizáveis
│ ├── BlocoCard.tsx # Card de bloco
│ ├── FriendCard.tsx # Card de amigo
│ ├── MapView.tsx # Componente de mapa
│ ├── Header.tsx # Header customizado
│ └── StageCard.tsx # Card de palco/evento
├── lib/ # Lógica de negócio
│ ├── api/ # Chamadas à API
│ ├── contexts/ # Contextos React
│ ├── hooks/ # Hooks customizados
│ ├── services/ # Serviços auxiliares
│ ├── types/ # Tipos TypeScript
│ └── utils/ # Funções utilitárias
├── supabase/ # Scripts SQL e configurações
└── assets/ # Imagens e recursos
- Clone o repositório:
git clone <url-do-repositorio>
cd cademeubloco- Instale as dependências:
npm install- Configure as variáveis de ambiente:
Copie o arquivo .env.example para .env:
cp .env.example .envEdite o arquivo .env e adicione suas credenciais do Supabase:
EXPO_PUBLIC_SUPABASE_URL=https://seu-projeto.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=sua-anon-key-aquiPara obter suas credenciais:
-
Selecione seu projeto
-
Vá em Settings → API
-
Copie a Project URL e a anon/public key
-
Configure o banco de dados:
Execute os scripts SQL na pasta supabase/ no SQL Editor do Supabase, na seguinte ordem:
SETUP_MINIMO.sql- Estrutura básica das tabelasRECREATE_BLOCOS_2026.sql- Dados dos blocosSECURITY_POLICIES.sql- Políticas de segurança- Outros scripts conforme necessário
npm startnpm run androidnpm run iosnpm run webnpm start- Inicia o servidor de desenvolvimentonpm run android- Compila e roda no Androidnpm run ios- Compila e roda no iOSnpm run web- Roda versão webnpm run lint- Executa o linter
- profiles - Perfis de usuários
- blocos - Blocos de carnaval
- favorites - Favoritos dos usuários
- attendances - Presença em blocos
- friendships - Relacionamentos de amizade
get_my_friends()- Retorna lista de amigosget_friends_going_to_bloco(bloco_id)- Amigos indo para um blocoget_my_favorite_blocos()- Blocos favoritos do usuáriosearch_users_by_username(term)- Busca usuáriosaccept_friend_request(friendship_id)- Aceita solicitaçãoreject_friend_request(friendship_id)- Rejeita solicitação
- Row Level Security (RLS) habilitado em todas as tabelas
- Autenticação via Supabase Auth
- Políticas de acesso granulares
- Validação de dados no backend
- HTTPS obrigatório para todas as requisições
As cores principais podem ser ajustadas nos arquivos de estilo:
- Primária:
#f97316(laranja) - Background:
#18181b(cinza escuro) - Texto:
#f4f4f5(branco off)
Substitua os arquivos em assets/images/:
icon.png- Ícone do app (1024x1024)splash-icon.png- Logo da splash screenfavicon.png- Favicon para web
- Faça fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -m 'Adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
Este projeto é privado e proprietário.
Para dúvidas ou problemas:
- Consulte a documentação do Expo: https://docs.expo.dev
- Documentação do Supabase: https://supabase.com/docs
- Abra uma issue no repositório
- Notificações push
- Avaliações e comentários de blocos
- Integração com redes sociais
- Modo offline com cache de dados
Desenvolvido com ❤️ para os foliões