Um sistema de chat moderno e responsivo desenvolvido em PHP com interface web para atendimento ao cliente. Este é um projeto de base de teste para aprendizado, criado para demonstrar conceitos de desenvolvimento web.
- Interface moderna e responsiva - Design limpo e adaptável a diferentes dispositivos
- Tempo real - Atualização automática de mensagens
- Upload de arquivos - Suporte para envio de imagens, PDFs e documentos
- Indicador de digitação - Mostra quando o suporte está digitando
- Emojis - Suporte para emojis nas mensagens
- Banco de dados MySQL - Armazenamento seguro das conversas
- Clean Code - Código organizado e bem estruturado
- PHP 7.4 ou superior
- MySQL 5.7 ou superior
- Servidor web (Apache/Nginx)
- Extensões PHP: PDO, PDO_MySQL, JSON
git clone [url-do-repositorio]
cd web-chat
- Crie um banco de dados MySQL chamado
chat_support
- Configure as credenciais no arquivo
api/config.php
:
define('DB_HOST', 'localhost');
define('DB_NAME', 'chat_support');
define('DB_USER', 'seu_usuario');
define('DB_PASS', 'sua_senha');
- Certifique-se de que o diretório
uploads/
tenha permissões de escrita - Configure o servidor para executar PHP
- Abra o navegador e acesse:
http://localhost/web-chat/
web-chat/
├── index.php # Página principal
├── assets/
│ ├── css/
│ │ └── style.css # Estilos CSS
│ └── js/
│ └── chat.js # Lógica JavaScript
├── api/
│ ├── config.php # Configurações
│ ├── send_message.php # Enviar mensagens
│ ├── get_messages.php # Buscar mensagens
│ └── upload_file.php # Upload de arquivos
├── uploads/ # Diretório para arquivos
└── README.md # Documentação
O sistema criará automaticamente as tabelas necessárias na primeira execução:
messages
- Armazena as mensagensusers
- Registra usuários ativosfile_uploads
- Registra uploads de arquivos
- Validação de entrada em todos os endpoints
- Sanitização de dados
- Validação de tipos de arquivo
- Limite de tamanho de arquivo (5MB)
Você pode personalizar:
- Cores: Edite as variáveis CSS no arquivo
style.css
- Respostas automáticas: Modifique o array de respostas em
chat.js
- Tipos de arquivo: Altere
ALLOWED_EXTENSIONS
emconfig.php
- Tamanho máximo: Modifique
MAX_FILE_SIZE
emconfig.php
- Envio de mensagens de texto
- Upload de arquivos (imagens, PDFs, documentos)
- Visualização de histórico de conversas
- Indicador de status do suporte
- Interface responsiva para mobile
- Visualização de todas as conversas
- Sistema de tickets automático
- Histórico completo de atendimentos
- Notificações em tempo real
Envia uma nova mensagem.
Parâmetros:
{
"id": 1234567890,
"text": "Mensagem do usuário",
"sender": "user",
"timestamp": "2024-01-01T10:00:00Z",
"userId": "user_abc123"
}
Busca mensagens de um usuário.
Parâmetros:
userId
(obrigatório): ID do usuáriolastId
(opcional): ID da última mensagem recebidalimit
(opcional): Número máximo de mensagens (padrão: 50)
Faz upload de um arquivo.
Parâmetros:
file
: Arquivo a ser enviadouserId
: ID do usuário
Edite as variáveis CSS no arquivo style.css
:
:root {
--primary-color: #667eea;
--secondary-color: #764ba2;
--success-color: #4CAF50;
--error-color: #f44336;
}
Modifique o array de respostas em chat.js
:
const responses = [
"Sua mensagem personalizada aqui",
"Outra resposta automática"
];
- Copie os arquivos para
htdocs/
- Configure o banco de dados
- Acesse via
http://localhost/web-chat/
- Faça upload dos arquivos via FTP
- Configure o banco de dados no servidor
- Ajuste as configurações em
api/config.php
- Todas as entradas são validadas e sanitizadas
- Proteção contra SQL Injection usando prepared statements
- Validação de tipos de arquivo
- Limite de tamanho de upload
- Headers de segurança configurados
O sistema é totalmente responsivo e funciona em:
- Desktop
- Tablet
- Smartphone
- Verifique as credenciais em
api/config.php
- Certifique-se de que o MySQL está rodando
- Verifique se o banco
chat_support
existe
- Verifique permissões do diretório
uploads/
- Confirme se o PHP tem extensão
fileinfo
habilitada - Verifique o limite de upload no
php.ini
- Verifique se o JavaScript está habilitado
- Confirme se as APIs estão respondendo corretamente
- Verifique o console do navegador para erros
Para dúvidas ou problemas:
- Verifique os logs de erro do PHP
- Confirme as configurações do banco de dados
- Teste as APIs individualmente
Este é um projeto de base de teste para aprendizado. Use para estudar conceitos de desenvolvimento web, APIs, banco de dados e interface de usuário.