O Canteiro é um aplicativo mobile desenvolvido especificamente para o mercado brasileiro de construção civil, oferecendo uma solução completa para gestão de ferramentas e equipamentos em canteiros de obra.
- 📊 Dashboard Inteligente - Visão geral com estatísticas em tempo real
- 🔧 Gestão de Ferramentas - Cadastro, listagem e controle completo
- 📝 Atividades Recentes - Histórico detalhado de movimentações
- 👥 Controle de Usuários - Sistema de perfis e permissões
- 🏢 Multi-empresa - Suporte a múltiplas construtoras
- 📱 Interface Moderna - Design responsivo e intuitivo
- 🔍 Busca e Filtros - Localização rápida de ferramentas
- ⚡ Tempo Real - Sincronização instantânea entre dispositivos
- React Native - Framework para desenvolvimento mobile
- Expo - Plataforma de desenvolvimento e deploy
- TypeScript - Tipagem estática para JavaScript
- Expo Router - Navegação baseada em arquivos
- NativeWind - Tailwind CSS para React Native
- React Hook Form - Gerenciamento de formulários
- Zod - Validação de schemas
- Supabase - Backend-as-a-Service
- PostgreSQL - Banco de dados relacional
- Row Level Security (RLS) - Segurança a nível de linha
- Real-time Subscriptions - Atualizações em tempo real
- Node.js 18+
- npm ou yarn
- Expo CLI (
npm install -g @expo/cli) - Conta no Supabase (gratuita)
git clone https://github.com/GersonRocha9/canteiro-app.git
cd canteiro-appyarn install
# ou
npm install- Crie um projeto no Supabase
- Crie um arquivo
.envna raiz do projeto - Adicione suas credenciais do Supabase:
EXPO_PUBLIC_SUPABASE_URL=https://seu-projeto.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=sua_chave_anonima_aqui💡 Dica: Encontre essas informações em Settings > API no painel do Supabase
Execute o arquivo SQL no Supabase SQL Editor:
# Copie o conteúdo de canteiro_setup_completo.sql
# Cole no SQL Editor do Supabase e executeyarn start
# ou
npm startcanteiro-app/
├── app/ # Telas do aplicativo (Expo Router)
│ ├── (protected)/ # Área protegida (logado)
│ │ ├── (tabs)/ # Navegação por abas
│ │ │ ├── index.tsx # Dashboard
│ │ │ ├── tools.tsx # Listagem de ferramentas
│ │ │ └── profile.tsx # Perfil do usuário
│ │ ├── add-tool.tsx # Cadastro de ferramentas
│ │ ├── activities.tsx # Atividades recentes
│ │ ├── tool-details.tsx # Detalhes da ferramenta
│ │ └── modal.tsx # Tela modal
│ ├── welcome.tsx # Tela de boas-vindas
│ ├── sign-up.tsx # Cadastro
│ └── sign-in.tsx # Login
├── components/ # Componentes reutilizáveis
│ ├── ui/ # Componentes de UI base
│ └── safe-area-view.tsx # SafeAreaView customizado
├── hooks/ # Hooks customizados
│ ├── useDashboard.ts # Hook do dashboard
│ ├── useProfile.ts # Hook do perfil
│ ├── useTools.ts # Hook das ferramentas
│ └── useActivities.ts # Hook das atividades
├── context/ # Contextos React
│ └── supabase-provider.tsx # Provider de autenticação
├── types/ # Tipos TypeScript
│ └── database.types.ts # Tipos do banco de dados
├── config/ # Configurações
│ └── supabase.ts # Cliente Supabase
└── canteiro_setup_completo.sql # Setup do banco de dados
O app utiliza um design system consistente baseado em:
- Cores: Paleta profissional para construção civil
- Tipografia: Hierarquia clara e legível
- Componentes: Biblioteca reutilizável de UI
- Ícones: Material Icons para consistência
- Espaçamento: Sistema baseado em múltiplos de 4px
- 👨💼 Admin - Acesso total ao sistema
- 👷♂️ Encarregado - Gestão de ferramentas e equipe
- 🔨 Mestre de Obras - Supervisão e controle
- 📦 Almoxarife - Controle de estoque
- ⚒️ Operário - Uso básico de ferramentas
- Autenticação via Supabase Auth
- Row Level Security (RLS) no banco de dados
- Políticas de acesso por empresa e role
- Validação de dados no frontend e backend
- Criptografia de dados sensíveis
- Estatísticas em tempo real
- Gráficos de utilização
- Atividades recentes
- Ações rápidas
- Cadastro completo com fotos
- QR Code para identificação
- Controle de localização
- Histórico de movimentações
- Status em tempo real
- Log completo de ações
- Filtros por tipo e período
- Busca avançada
- Exportação de relatórios
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
- Email: gersonrocha9@gmail.com
- Issues: GitHub Issues
- Documentação: Wiki do Projeto