Skip to content

victorcapile/cade-meu-bloco-mobile

Repository files navigation

Cadê Meu Bloco

Aplicativo mobile para localizar e acompanhar blocos de carnaval em tempo real, construído com React Native e Expo.

Sobre o Projeto

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.

Funcionalidades

Mapa Interativo

  • Visualização de todos os blocos no mapa em tempo real
  • Navegação intuitiva pelo mapa com gestos

Lista de Blocos

  • 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

Sistema de Favoritos

  • Marque blocos favoritos tocando na estrela
  • Visualize rapidamente seus blocos preferidos
  • Contador de favoritos por bloco

Sistema de Amigos

  • Adicione amigos pelo username
  • Veja quais amigos estão indo para cada bloco
  • Acompanhe a localização de amigos no mapa

Perfil Personalizado

  • Status de presença (no carnaval / offline)

Estrutura do Projeto

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

Instalação

  1. Clone o repositório:
git clone <url-do-repositorio>
cd cademeubloco
  1. Instale as dependências:
npm install
  1. Configure as variáveis de ambiente:

Copie o arquivo .env.example para .env:

cp .env.example .env

Edite 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-aqui

Para obter suas credenciais:

  1. Acesse https://supabase.com/dashboard

  2. Selecione seu projeto

  3. Vá em Settings → API

  4. Copie a Project URL e a anon/public key

  5. Configure o banco de dados:

Execute os scripts SQL na pasta supabase/ no SQL Editor do Supabase, na seguinte ordem:

  1. SETUP_MINIMO.sql - Estrutura básica das tabelas
  2. RECREATE_BLOCOS_2026.sql - Dados dos blocos
  3. SECURITY_POLICIES.sql - Políticas de segurança
  4. Outros scripts conforme necessário

Executando o Projeto

Desenvolvimento

npm start

Android

npm run android

iOS

npm run ios

Web

npm run web

Scripts Disponíveis

  • npm start - Inicia o servidor de desenvolvimento
  • npm run android - Compila e roda no Android
  • npm run ios - Compila e roda no iOS
  • npm run web - Roda versão web
  • npm run lint - Executa o linter

Estrutura do Banco de Dados

Tabelas Principais

  • profiles - Perfis de usuários
  • blocos - Blocos de carnaval
  • favorites - Favoritos dos usuários
  • attendances - Presença em blocos
  • friendships - Relacionamentos de amizade

Funções RPC

  • get_my_friends() - Retorna lista de amigos
  • get_friends_going_to_bloco(bloco_id) - Amigos indo para um bloco
  • get_my_favorite_blocos() - Blocos favoritos do usuário
  • search_users_by_username(term) - Busca usuários
  • accept_friend_request(friendship_id) - Aceita solicitação
  • reject_friend_request(friendship_id) - Rejeita solicitação

Recursos de Segurança

  • 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

Customização

Cores

As cores principais podem ser ajustadas nos arquivos de estilo:

  • Primária: #f97316 (laranja)
  • Background: #18181b (cinza escuro)
  • Texto: #f4f4f5 (branco off)

Ícones e Imagens

Substitua os arquivos em assets/images/:

  • icon.png - Ícone do app (1024x1024)
  • splash-icon.png - Logo da splash screen
  • favicon.png - Favicon para web

Contribuindo

  1. Faça fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/nova-feature)
  3. Commit suas mudanças (git commit -m 'Adiciona nova feature')
  4. Push para a branch (git push origin feature/nova-feature)
  5. Abra um Pull Request

Licença

Este projeto é privado e proprietário.

Suporte

Para dúvidas ou problemas:

  1. Consulte a documentação do Expo: https://docs.expo.dev
  2. Documentação do Supabase: https://supabase.com/docs
  3. Abra uma issue no repositório

Roadmap

  • 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

About

Carnaval in real time.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors