Projeto Aparatus

Agendamento inteligente para barbearias

Visão geral

O Aparatus é uma plataforma full-stack de agendamento para barbearias, com integração de pagamentos via Stripe e um assistente virtual com inteligência artificial (Agenda.ai) que permite ao usuário agendar serviços por meio de uma conversa natural.

Busca de Barbearias

  • Campo de busca por nome de serviço.
  • Botões de busca rápida por categoria (Cabelo, Barba, Acabamento, Sobrancelha, Pézinho).
  • Grid de resultados com cards informativos.

Página da Barbearia

  • Banner com imagem, nome, endereço e avaliação.
  • Descrição ("Sobre Nós").
  • Lista de serviços com nome, descrição e preço.
  • Telefones com botão de copiar para a área de transferência.

Agendamento via Interface

  • Seleção de serviço abre painel lateral.
  • Calendário interativo para escolha do dia.
  • Time slots disponíveis (09:00 às 18:00, intervalos de 45 minutos).
  • Filtragem automática de horários ocupados e já passados.
  • Resumo da reserva com preço em BRL antes da confirmação.
  • Redirecionamento para Stripe Checkout ao confirmar.

Chat com IA - Agenda.ai

  • Assistente virtual com GPT-4o-mini via Vercel AI SDK.
  • Interface de chat em tempo real com streaming de respostas.
  • A IA busca barbearias, consulta disponibilidade e inicia o pagamento.
  • Botão de pagamento renderizado automaticamente no chat após confirmação.
  • Ferramentas (tools) disponíveis para a IA: busca barbearias por nome, verifica horários disponíveis, inicia sessão de checkout no Stripe.

Pagamento via Stripe

  • Checkout Sessions em modo payment com moeda BRL.
  • Webhook (checkout.session.completed) cria o agendamento no banco automaticamente.
  • Verificação de idempotência para evitar duplicidade.

Cancelamento e Reembolso

  • Validações de propriedade, duplicidade e data.
  • Reembolso automático via Stripe quando aplicável.
  • Soft delete com campo "canceled_at".

Meus Agendamentos

  • Separação entre Confirmados (futuros) e Finalizados (passados ou cancelados).
  • Detalhes do agendamento com mapa, telefones e opção de cancelar.
  • Notificação de sucesso ao retornar do pagamento.

Autenticação

  • Login social via Google OAuth com Better Auth.
  • Avatar, nome e e-mail exibidos no menu lateral.
  • Proteção de rotas e server actions via sessão.

Fluxo de processamento

  1. Usuário acessa a plataforma e busca serviços ou barbearias.
  2. Sistema lista opções com base na busca/categoria.
  3. Usuário seleciona a barbearia e o serviço desejado.
  4. Escolhe data e horário disponíveis.
  5. (Opcional) Interage com o Agenda.ai para agendamento.
  6. Sistema valida disponibilidade e dados da reserva.
  7. Usuário é direcionado ao pagamento via Stripe.
  8. Webhook confirma pagamento e cria agendamento.
  9. Reserva aparece em "Meus Agendamentos".
  10. Usuário pode acompanhar, cancelar ou gerenciar a reserva.

Tecnologias

Next.js 16.1.1

Framework full-stack (App Router)

React 19.2.3

Biblioteca de UI

TypeScript ^5

Tipagem estática

Tailwind CSS ^4

Estilização utilitária

Prisma 7.1.0

ORM com adapter nativo para PostgreSQL

PostgreSQL 15

Banco de dados relacional (via Docker)

Better Auth 1.4.6

Autenticação (Google OAuth)

Stripe 18.4.0

Pagamentos e reembolsos

Vercel IA SDK 5.0.112

Chat com IA e streaming

@ai-sdk/openai 2.0.85

Provider OpenAI (GPT-4o-mini)

TanStack React Query 5.90.12

Data fetching e cache client-side

next-safe-action 8.0.11

Server actions type-safe

Radix UI

Componentes headless (Dialog, Avatar, Sheet)

react-day-picker ^9.13.0

Calendário interativo

Streamdown 1.6.10

Renderização de streaming markdown

date-fns ^4.1.0

Manipulação de datas

Sonner ^2.0.7

Toast notifications

Lucide React ^0.561.0

Ícones personalizáveis

Zod 4.1.13

Validação de schemas

ESLint ^9

Linting e formatação de código

Resumo Técnico

O Aparatus é uma aplicação full-stack construída com Next.js (App Router) e React, utilizando TypeScript para tipagem estática e Tailwind CSS para estilização. A arquitetura combina Server Components, Server Actions e consumo client-side com React Query. O backend é estruturado sobre Prisma ORM com PostgreSQL, garantindo consistência e escalabilidade dos dados. A autenticação é gerenciada via Better Auth com suporte a Google OAuth. O sistema integra Stripe para processamento de pagamentos, utilizando Checkout Sessions e webhooks para confirmação automática e criação de agendamentos com idempotência. O módulo de IA (Agenda.ai) é implementado com Vercel AI SDK e OpenAI (GPT-4o-mini), utilizando ferramentas (tools) para busca de barbearias, verificação de disponibilidade e criação de sessões de pagamento. A aplicação segue boas práticas de organização em camadas (UI, actions, data, hooks, lib), com foco em performance, segurança e experiência do usuário.