Um aplicativo completo de agendamento de serviços de barbearia com funcionalidades profissionais, desenvolvido em React Native com Expo Router. Sistema integrado entre clientes e barbeiros com sincronização em tempo real.
barber.ia/
├── app.json # Configuração do Expo
├── package.json # Dependências e scripts
├── tsconfig.json # Configuração TypeScript
├── eas.json # Configuração de build EAS
├── INTEGRATION_SUMMARY.md # Resumo das integrações implementadas
├── LICENSE # Licença
├── assets/ # Imagens e recursos estáticos
│ └── images/
├── hooks/ # Custom hooks
│ ├── useFrameworkReady.ts
│ └── useMotionDetection.ts # Detecção de movimento facial
├── services/ # Serviços de dados e business logic
│ ├── database.ts # Sistema completo de dados integrados
│ └── exportService.ts # Serviços de exportação
├── app/ # Código principal do app
│ ├── _layout.tsx # Layout global
│ ├── index.tsx # Tela inicial (redirecionamento)
│ ├── landing.tsx # Página de apresentação
│ ├── booking.tsx # Sistema de agendamento
│ ├── +not-found.tsx # Tela de erro 404
│ ├── (auth)/ # Fluxo de autenticação
│ │ ├── _layout.tsx
│ │ ├── login.tsx # Login para clientes
│ │ ├── register.tsx # Cadastro de clientes
│ │ ├── welcome.tsx # Boas-vindas cliente
│ │ ├── barber-onboarding.tsx # Onboarding barbeiro
│ │ └── barber-welcome.tsx # Boas-vindas barbeiro
│ ├── (tabs)/ # Portal do Cliente
│ │ ├── _layout.tsx
│ │ ├── index.tsx # Home (lista de barbearias)
│ │ ├── bookings.tsx # Agendamentos do cliente
│ │ ├── profile.tsx # Perfil do cliente
│ │ ├── edit-profile.tsx # Edição de perfil
│ │ └── search.tsx # Busca de barbeiros
│ ├── (barbertabs)/ # Portal do Barbeiro
│ │ ├── _layout.tsx
│ │ ├── index.tsx # Dashboard do barbeiro
│ │ ├── agenda.tsx # Agenda de agendamentos
│ │ ├── clients-management.tsx # Gestão de clientes reais
│ │ ├── clients.tsx # Lista de clientes
│ │ ├── edit-profile.tsx # Edição perfil barbeiro
│ │ ├── new-appointment.tsx # Novo agendamento manual
│ │ ├── pricing.tsx # Gestão de preços
│ │ ├── products.tsx # Gestão de produtos
│ │ ├── services.tsx # Gestão de serviços
│ │ ├── barbershop-hours.tsx # Horários funcionamento
│ │ └── support.tsx # Suporte
│ ├── barber/ # Páginas dinâmicas barbeiro
│ │ └── [id].tsx # Perfil específico do barbeiro
│ └── barbershop/ # Páginas dinâmicas barbearia
│ └── [id].tsx # Perfil específico da barbearia
Instalação:
npm install
Iniciar desenvolvimento:
npx expo start --offline
-
Cadastro/Login:
- Cadastra-se com nome, e-mail, telefone e senha
- Senha criptografada e dados salvos localmente
- Login seguro com validação
-
Busca e Agendamento:
- Visualiza lista de barbeiros disponíveis
- Seleciona barbeiro específico
- Vê serviços e preços em tempo real
- Agenda serviço para o barbeiro escolhido
-
Gestão de Agendamentos:
- Visualiza todos seus agendamentos
- Pode cancelar ou marcar como concluído
- Recebe notificações de mudanças do barbeiro
-
Onboarding Profissional:
- Cadastro específico para barbeiros
- Configuração de perfil e serviços
-
Gestão da Agenda:
- Visualiza agendamentos de clientes reais
- Confirma, cancela ou conclui serviços
- Notificações automáticas para clientes
-
Gestão do Negócio:
- Atualiza serviços e preços (aparecem imediatamente para clientes)
- Gerencia horários de funcionamento
- Lista de clientes que realmente agendaram
- Gestão de produtos e suporte
- Cliente agenda → Aparece para barbeiro específico
- Barbeiro cancela → Cliente recebe notificação
- Cliente conclui → Barbeiro vê atualização
- Barbeiro atualiza preço → Cliente vê novo preço instantaneamente
- Clientes: Array armazenado em
barber_users
- Barbeiros: Array armazenado em
barber_barbers
- Sessão atual:
barber_current_user
(sem senha) - Contador de IDs:
barber_user_counter
ebarber_barber_counter
- Bookings (Cliente):
barber_bookings
- Agendamentos feitos pelos clientes - Appointments (Barbeiro):
barber_appointments
- Agendamentos recebidos pelos barbeiros - Sincronização automática: Status sincronizados bidirecionalmente
- Barbearias:
barber_barbershops
- Informações, serviços e preços - Clientes por Barbeiro: Extraídos automaticamente dos agendamentos
- Serviços e Preços: Atualizados em tempo real
Usuário/Cliente:
{
id: number,
name: string,
email: string, // único
phone: string,
password: string, // criptografada
type: 'client'
}
Barbeiro:
{
id: string, // prefixo real_ ou mock_
name: string,
email: string,
phone: string,
password: string,
type: 'barber',
barbershopId: string,
specialties: string[]
}
Agendamento:
{
id: string,
clientId: number,
barberId: string,
barbershopId: string,
service: string,
date: string,
time: string,
status: 'pending' | 'confirmed' | 'completed' | 'cancelled',
price: number
}
- React Native (Expo SDK 51+)
- Expo Router (navegação baseada em arquivos)
- TypeScript (tipagem estática)
- React Native Paper (componentes UI)
- Lucide React Native (ícones)
- EAS Build (compilação e distribuição)
- Expo Development Build
- Hot Reload para desenvolvimento rápido
- Sistema de IDs únicos (
real_
emock_
) - Agendamentos direcionados corretamente
- Rastreamento preciso por
barbershopId
- Cliente cancela → Barbeiro é notificado
- Barbeiro confirma → Cliente é notificado
- Status sincronizados em tempo real
- Função
updateBookingStatus()
integrada
- Lista apenas clientes que realmente agendaram
- Extração automática via
getClientsFromBookings()
- Atualização automática a cada novo agendamento
- Barbeiro atualiza preços → Cliente vê imediatamente
- Serviços sincronizados via
updateBarbershopServices()
- Dados sempre atualizados com
refreshBarbershopData()
- Faça seu cadastro na tela de registro
- Navegue pela lista de barbeiros
- Selecione um barbeiro específico
- Veja serviços e preços atualizados
- Agende seu serviço
- Acompanhe o status na aba "Agendamentos"
- Complete o onboarding de barbeiro
- Configure seus serviços e preços
- Gerencie agendamentos na agenda
- Veja clientes reais na aba "Clientes"
- Atualize informações (aparecem para clientes instantaneamente)
Build para Android (AAB):
npx eas build -p android --profile preview --aab
Build para iOS:
npx eas build -p ios --profile preview
Desenvolvimento local:
npx expo start --dev-client
Sinta-se à vontade para contribuir com o projeto
Este projeto está sob a licença especificada no arquivo LICENSE.
O Barber.ia é um aplicativo completo e profissional que oferece:
✅ Sistema integrado entre clientes e barbeiros
✅ Agendamentos inteligentes direcionados corretamente
✅ Sincronização em tempo real de dados e status
✅ Experiência profissional equivalente a apps comerciais
✅ Interface moderna e intuitiva
✅ Código bem estruturado e documentado