Um aplicativo de chatbot em tempo real para agendamento de serviços de barbearia. Este projeto utiliza Socket.io para comunicação bidirecional em tempo real, Express para o backend, Prisma para persistência de dados (SQLite por padrão) e React para o frontend.
A aplicação diferencia usuários novos e usuários de retorno. Usuários registrados (cujo cadastro foi salvo localmente) iniciam diretamente o fluxo de agendamento, enquanto novos usuários passam pelo fluxo de cadastro.
- Agendamento de Serviços: Permite agendar serviços (ex.: Corte, Barba, Corte e Barba, Coloração) especificando dia e horário.
- Fluxo Personalizado: Fluxo de conversa diferente para novos usuários e usuários de retorno.
- Comunicação em Tempo Real: Implementada com Socket.io para uma experiência de chat interativo.
- Persistência de Dados: Agenda armazenada no banco de dados via Prisma (SQLite).
- Interface Moderna: Frontend em React com layout responsivo e estilizado (ex.: Tailwind CSS).
- Backend: Node.js, Express, Socket.io, Prisma, SQLite, TypeScript
- Frontend: React, Socket.io-client, TypeScript, Tailwind CSS (ou seu framework CSS preferido)
-
Clone o repositório e navegue até o diretório do backend:
git clone https://github.com/seu-usuario/chatbot.git cd chatbot/backend
-
Instale as dependências:
npm install
-
Configure o Prisma:
Crie um arquivo
.env
na raiz do backend e defina a variávelDATABASE_URL
:DATABASE_URL="file:./dev.db"
-
Execute a migração inicial e gere o Prisma Client:
npx prisma migrate dev --name init npx prisma generate
-
Inicie o servidor:
npm run dev
O servidor rodará na porta
3000
(ou conforme configurado).
-
Navegue até o diretório do frontend:
cd ../frontend
-
Instale as dependências:
npm install
-
Inicie o aplicativo React:
npm start
O aplicativo será iniciado, geralmente em
http://localhost:5173
ou em outra porta definida pelo Vite/CRA.
-
Usuário Novo:
- O chatbot solicita as informações: primeiro nome, sobrenome e telefone.
- Em seguida, pergunta qual serviço deseja agendar, o dia e o horário.
- Após o agendamento ser confirmado, ele é salvo no banco de dados.
- O usuário pode, então, optar por realizar um novo agendamento clicando no botão "Novo Agendamento".
-
Usuário de Retorno:
- Se os dados do usuário já estiverem salvos (via localStorage), o frontend os envia automaticamente na conexão.
- O chatbot inicia o fluxo diretamente no agendamento, solicitando somente o serviço, o dia e o horário.
chatbot/
├── backend/
│ ├── src/
│ │ ├── server.ts # Lógica do backend com Express, Socket.io e Prisma
│ │ └── utils/
│ │ └── prisma.ts # Configuração do Prisma Client
│ ├── .env # Variáveis de ambiente (DATABASE_URL)
│ ├── package.json
│ └── tsconfig.json
└── frontend/
├── src/
│ ├── ChatBot.tsx # Componente principal do chat
│ └── index.tsx
├── package.json
└── tsconfig.json
Contribuições são bem-vindas! Para contribuir:
-
Faça um fork do projeto.
-
Crie uma branch com a sua feature:
git checkout -b minha-feature
-
Realize as alterações e faça commit:
git commit -m 'Minha nova feature'
-
Envie sua branch:
git push origin minha-feature
-
Abra um Pull Request explicando suas alterações.
Este projeto está licenciado sob a MIT License.
Para dúvidas ou sugestões, entre em contato via aerickidev@gmail.com.