App mobile · Flutter
Barbú, app de barbearia
App de agendamento para uma barbearia, feito em equipe de 4 pessoas: Flutter, Firebase Auth e Firestore, horários ocupados em tempo real e confirmação por e-mail via n8n.
- Grande parte do app: Firebase, telas iniciais, login, agendamento e n8n
- 2026 · disciplina de Dispositivos Móveis
- em andamento
- Flutter · Firestore · Firebase Auth · n8n · Dart
Resumo em 30 segundos
- Objetivo
- Um app para organizar e automatizar o agendamento de cortes de uma barbearia local, como projeto da disciplina de Dispositivos Móveis.
- Solução
- Login pelo Firebase Auth, agendamento em 3 etapas que consulta no Firestore os horários já ocupados, lembrete no celular 1 hora antes e um webhook para o n8n mandar a confirmação por e-mail.
- Resultado
- Protótipo com o fluxo completo de agendamento, histórico e avisos. Fidelidade e Produtos ficaram em desenvolvimento. Não há métricas de uso.
Contexto
O Barbú é um protótipo de app para uma barbearia local: o cliente cria a conta, escolhe o serviço, o barbeiro e um horário livre, e acompanha os agendamentos no próprio celular.
Foi um projeto em grupo da disciplina de Dispositivos Móveis, feito por Carlos, Gustavo Alves, Henrique e Kendy.
Minha função
Fiz grande parte do app: a integração com o Firebase (Auth e Firestore), as telas iniciais, o login, o agendamento e a integração com o n8n.
Como funciona
- LoginFirebase Auth com e-mail e senha
- AgendamentoServiço, barbeiro, dia e horário
- FirestoreLê os horários ocupados e grava em bookings
- LembreteNotificação local 1 hora antes
- n8nO webhook vira o e-mail de confirmação
- Conta. O cadastro cria o usuário no Firebase Auth e guarda nome e telefone em
users/{uid}. As regras do Firestore deixam cada pessoa ler e alterar só os próprios dados e agendamentos. - Horários em tempo real. Ao escolher o dia, o app consulta em
bookingsos agendamentos daquele barbeiro na data e mostra só os horários livres. - Ao confirmar. O app grava o agendamento em
bookings, cria um aviso emnotifications/{uid}/items(aparece na aba Avisos), agenda o lembrete local e envia ao webhook do n8n o nome, o e-mail, a data, o horário, o barbeiro e o serviço. - Depois. O histórico permite cancelar (o status muda para "cancelado"), e agendamentos que já passaram aparecem como concluídos.
Experimente
O app de agendamento que fizemos em Flutter e Firebase, recriado para o navegador. Entre como visitante, marque um horário e veja o que o app grava no Firestore, o lembrete que agenda e o webhook que manda para o n8n.
Protótipo web recriado a partir do app em Flutter · dados fictícios
O que é igual ao app e o que é simulado
- Igual ao app: as telas, as cores, os serviços, os barbeiros, os horários, o agendamento em 3 etapas e o formato do documento em bookings e do webhook do n8n.
- Simulado: o login aceita qualquer dado, os horários ocupados são sorteados por barbeiro e dia, e nada sai do seu navegador. Os dados somem quando a página recarrega.
- Diferente do app: na demo, os horários de hoje que já passaram ficam desativados, e os ocupados aparecem riscados em vez de sumir da grade.
- O e-mail de confirmação é uma prévia ilustrativa: o fluxo do n8n não está no repositório.
- Fidelidade e Produtos aparecem como em desenvolvimento, como no app.
Limites e próximos passos
- Fidelidade, Produtos e o painel de administração ficaram como "em breve" no app.
- O webhook aponta para um n8n local (
localhost), então o e-mail de confirmação só sai com o n8n rodando na mesma máquina. - A consulta de horários não filtra o status, então um horário cancelado continua aparecendo como ocupado. E a gravação não usa transação: dois clientes confirmando o mesmo horário no mesmo instante gravariam os dois. São os primeiros ajustes que eu faria.