Descrição:
Permitir o envio e recebimento de arquivos multimídia diretamente no chat, mantendo histórico e exibição inline.
Funcionalidades previstas:
📎 Upload e envio de imagens (.jpg, .png, .gif) com visualização direta no chat
🎙️ Gravação de áudio via microfone (com permissão do navegador) e envio
📥 Visualização de imagens e player de áudio integrado na área de mensagens
💾 Armazenamento em diretório protegido no servidor
🔒 Controle de tamanho e tipo de arquivo para segurança
Descrição:
Permitir chamadas de voz e vídeo entre os usuários diretamente pela interface do chat.
Funcionalidades planejadas:
📞 Chamadas de voz peer-to-peer via WebRTC
📹 Chamadas de vídeo com janela flutuante integrada
📊 Indicador de status de chamada ativa na interface
📴 Opção para silenciar microfone e/ou desligar câmera
📲 Notificação sonora e popup de chamada recebida
💾 Configuração para permitir ou bloquear chamadas
📥 Download de áudios e imagens recebidas
🎛️ Painel de configurações com permissões de mídia (permitir ou não receber mídias)
📦 Histórico de mídia separado (galeria pessoal dentro do chat)
🔒 Proteção de arquivos por tempo (auto-delete ou download único)
Upload e envio de imagens (.jpg, .png, .gif) com preview inline
→ Implementar formulário com input file + preview JS + backend para salvar no servidor protegido.
→ Validar tipo e tamanho do arquivo no cliente e servidor.
Gravação de áudio via microfone (Web Audio API)
→ Permitir gravação direto do navegador, enviar o arquivo para o backend e salvar.
→ Player de áudio HTML5 embutido para reprodução no chat.
Exibição inline na área de mensagens
→ Adaptar o frontend para renderizar mensagens com imagens e players de áudio.
WebRTC para chamadas P2P
→ Implementar sinalização (via WebSocket, por exemplo) para iniciar/aceitar chamadas.
→ Janela flutuante para vídeo com controles de mute, câmera e desligar.
→ Notificações sonoras e visuais para chamadas recebidas.
Configurações de permissão e controle
→ Permitir ao usuário bloquear/permitir chamadas, silenciar microfone etc.
Download de mídia recebida
→ Botões para baixar arquivos dentro do chat.
Painel de configurações
→ Controle granular de permissões para mídia e chamadas.
Histórico de mídia separado
→ Galeria pessoal, filtragem e busca.
Proteção e segurança
→ Auto-delete de arquivos após X tempo, ou downloads únicos.
Priorize primeiro as imagens (upload, preview e exibição no chat), pois é mais simples e melhora muito a experiência.
Implemente gravação e envio de áudio na sequência, usando APIs do navegador.
Planeje as chamadas de voz e vídeo para depois, pois o WebRTC e sinalização exigem arquitetura mais complexa (WebSocket).