Sistema completo de agendamento para barbearia desenvolvido em Flutter com Firebase Firestore
Aplicativo mobile Android para gerenciamento de agendamentos da barbearia "Ricardo Sidney Barbeiro". Sistema completo com área administrativa para criação de horários e área do cliente para reservas, com integração WhatsApp e lembretes automáticos.
✅ Versão Atual: Flutter (100% funcional - 12 telas) ❌ Versão Antiga: Python/Kivy (depreciada - apenas referência)
# Instalar dependências
flutter pub get
# Executar em modo debug
flutter run
# Build APK para produção
flutter build apk --releaseAPK de produção estará em: build/app/outputs/flutter-apk/app-release.apk
- ✅ Login e cadastro com CPF
- ✅ Visualização de horários disponíveis (agrupados por dia da semana)
- ✅ Agendamento de horários (máximo 1 ativo por cliente)
- ✅ Confirmação via WhatsApp com mensagem pré-preenchida
- ✅ Visualização de meus agendamentos
- ✅ Cancelamento de agendamentos
- ✅ Lembretes automáticos (0-3 dias antes do horário)
- ✅ Recuperação de senha com código de 6 dígitos
- ✅ Aceite de política de privacidade (LGPD)
- ✅ Login exclusivo do dono (CPF e senha fixos)
- ✅ Criação de horários em lote (selecionar dias + horários)
- ✅ Visualização da agenda completa
- ✅ Cancelamento de agendamentos de clientes
- ✅ Horários em intervalos de 30min (7:00 às 23:30)
- 🔥 Firebase Firestore - Banco de dados em tempo real
- 📱 WhatsApp - Confirmação automática de agendamentos
- 🔐 SHA-256 - Hash de CPF para IDs únicos
- 🎨 Material Design 3 - Interface moderna e profissional
- Flutter 3.x - Framework mobile
- Dart - Linguagem de programação
- Provider - Gerenciamento de estado
- Material Components - UI components
- Firebase Firestore - Banco de dados NoSQL
- Firebase Auth (opcional) - Autenticação
firebase_core: ^2.24.2 # Firebase base
cloud_firestore: ^4.14.0 # Firestore database
provider: ^6.1.1 # State management
url_launcher: ^6.2.2 # WhatsApp integration
crypto: ^3.0.3 # SHA-256 hashing
intl: ^0.18.1 # Date formattinglib/
├── core/
│ ├── constants/ # Cores e configurações
│ └── utils/ # Validadores e utilitários
├── services/
│ └── firebase_manager.dart # Serviço Firebase (Singleton)
├── providers/ # State management
├── widgets/ # Componentes reutilizáveis
├── screens/
│ ├── loading_screen.dart
│ ├── home_screen.dart
│ ├── admin/ # 3 telas admin
│ └── client/ # 6 telas cliente
└── main.dart # Entry point + rotas
| Cor | Hex | Uso |
|---|---|---|
| Dourado | #D4AF37 |
Botões cliente, destaques |
| Vinho | #8A1438 |
Botões admin |
| Azul Escuro | #1A2433 |
Background principal |
| Card Escuro | #1F2A3D |
Cards e containers |
Document ID: SHA-256 hash do CPF
{
"nome": "João Silva",
"senha": "hash_sha256",
"cpf_ultimos_digitos": "8901",
"data_criacao": "2025-10-25T10:00:00Z",
"agendamentos_ativos": 0
}
Document ID: YYYY-MM-DD_HHMM (ex: 2025-10-26_1430)
{
"data": "26/10/2025",
"data_iso": "2025-10-26",
"dia_semana": "Segunda",
"hora": "14:30",
"status": "livre" | "agendado",
"cliente_cpf": "hash_sha256",
"cliente_nome": "João Silva"
}
Document ID: SHA-256 hash do CPF
{
"codigo": "123456",
"usado": false,
"criado_em": "2025-10-25T10:00:00Z"
}
- Flutter SDK 3.0+
- Android Studio ou VS Code
- Firebase CLI (para configuração)
- Conta Firebase
git clone https://github.com/seu-usuario/barbearia-app.git
cd barbearia-appflutter pub get# Instalar FlutterFire CLI
dart pub global activate flutterfire_cli
# Configurar Firebase (cria firebase_options.dart automaticamente)
flutterfire configure# Em emulador ou dispositivo físico
flutter run
# Ou especificar dispositivo
flutter run -d <device_id>flutter build apk --debugflutter build apk --releaseflutter build appbundle --release- Criar keystore:
keytool -genkey -v -keystore ~/barbearia-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias barbearia- Configurar
android/key.properties:
storePassword=SUA_SENHA
keyPassword=SUA_SENHA
keyAlias=barbearia
storeFile=/caminho/para/barbearia-key.jks- Build assinado:
flutter build apk --release- CPF:
13681715670 - Senha:
971409
- Criar novo usuário com qualquer CPF de 11 dígitos
- Senha mínima de 4 caracteres
Para popular o Firestore rapidamente com usuários e horários de teste:
- Execute o app:
flutter run - Navegue para a rota
/admin/populate-data - Use os botões para:
- Criar 3 usuários de teste (João, Maria, Carlos)
- Criar horários livres para os próximos 7 dias
- Limpar todos os agendamentos (com confirmação)
Documentação completa: Ver POPULATE_DATA_DEBUG.md
IMPORTANTE: Remover esta rota em produção!
| Aspecto | Python/Kivy | Flutter |
|---|---|---|
| Tamanho APK | ~70MB | ~15MB |
| Startup | ~3-5s | ~0.8s |
| Performance | 30-40 FPS | 60 FPS |
| Hot Reload | ❌ Não | ✅ Sim (~1s) |
| Play Store | Limitado | Completo |
| iOS Support | Difícil | Fácil |
flutter clean
flutter pub get
flutter runConfigure Firestore Rules (desenvolvimento):
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true; // ⚠️ Apenas para dev!
}
}
}Adicione ao android/app/src/main/AndroidManifest.xml:
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https" />
</intent>
</queries>- CLAUDE.md - Instruções para Claude Code (AI assistant)
- MIGRACAO_COMPLETA.md - Detalhes da migração Python→Flutter
- POPULATE_DATA_DEBUG.md - Tela de debug para popular dados de teste
- lib/screens/ - Documentação inline em cada tela
Embora este seja um projeto privado para a barbearia, sugestões são bem-vindas:
- Fork o projeto
- Crie uma branch (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Adiciona MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
Barbearia Ricardo Sidney
- 📧 Email: kris.alexandre2018@gmail.com
- 📱 WhatsApp: +55 31 8538-2104
Este projeto é propriedade privada de Kristian Alexandre. Todos os direitos reservados.
Desenvolvido com ❤️ usando Flutter Migração Python→Flutter assistida por Claude Code (Anthropic)